操作系统中的引导块


操作系统中的引导块,也称为引导扇区(Boot Sector)或主引导记录(Master Boot Record, MBR),是硬盘或其他存储设备上的一个特殊区域。它通常位于磁盘的第一个扇区(512字节),在计算机启动时扮演着至关重要的角色。以下是关于引导块的详细介绍:


主引导记录 (MBR)

对于使用传统的分区表的硬盘,引导块包含了主引导记录(MBR)。MBR 包含以下两个主要部分:

  1. 引导代码:这部分包含了一个小的操作系统加载程序(bootloader),它的任务是在计算机启动时加载操作系统。这个加载程序可能非常简单,只负责找到并加载另一个更复杂的加载器(如 GRUB 或 LILO),或者直接加载操作系统内核。

  2. 分区表:MBR 中还包括一个分区表,它描述了硬盘上的分区信息。标准的 MBR 分区表可以支持最多四个主分区,如果需要更多的分区,则可以通过设置一个扩展分区来实现,该扩展分区内可以创建多个逻辑分区。

MBR 的最后两个字节总是 0x55 和 0xAA,这是一个签名,用来标识这是一个有效的 MBR 扇区。


GUID 分区表 (GPT)

对于现代系统,特别是那些使用 UEFI(统一可扩展固件接口)而不是传统 BIOS 的系统,可能会使用 GUID 分区表(GPT)代替 MBR。GPT 提供了更大的灵活性和可靠性,包括支持大于 2TB 的硬盘、多达 128 个主分区以及冗余分区表信息以提高数据安全性。


引导过程

当计算机启动时,BIOS 或 UEFI 固件会执行 POST(上电自检)后,根据预设的启动顺序读取指定的存储设备的第一扇区,即 MBR 或 GPT。接着,它将执行此扇区中的引导代码。对于 MBR 系统,引导代码会解析分区表,并尝试从标记为活动(active)的分区加载进一步的引导加载程序;对于 GPT 系统,UEFI 固件通常会查找 EFI 系统分区(ESP)中的 EFI 应用程序来启动操作系统。


安全性

由于引导块对系统的启动至关重要,因此它也是恶意软件攻击的目标之一。例如,某些类型的病毒会感染 MBR,从而在每次系统启动时激活。为了防止这种情况,许多现代操作系统和硬件平台提供了安全启动(Secure Boot)功能,确保只有经过数字签名验证的引导加载程序才能被执行。


Linux系统启动流程

在Linux系统启动时,MBR(Master Boot Record)引导块的流程是操作系统启动过程中的关键步骤。以下是详细的启动流程:

  1. BIOS/UEFI 初始化
  • 硬件自检 (POST):当计算机接通电源后,BIOS或UEFI固件首先执行上电自检(Power-On Self Test),以检查硬件是否正常工作。
  • 加载固件设置:然后它会加载并应用存储在CMOS中的配置信息,比如日期、时间和启动顺序等。
  1. 加载 MBR
  • 读取 MBR:根据设定的启动顺序,BIOS/UEFI会选择一个存储设备作为启动盘,并从该设备的第一个扇区(512字节)读取MBR。
  • 验证 MBR 签名:MBR最后两个字节应该是0x55AA,这是有效MBR的标志。如果签名正确,BIOS/UEFI将把控制权交给MBR中的代码。
  1. 执行 MBR 中的引导代码
  • 解析分区表:MBR中的引导代码会解析硬盘上的分区表,找到标记为“活动”(Active)或“可启动”的分区。
  • 加载引导加载程序:通常情况下,MBR不会直接加载操作系统内核,而是加载位于活动分区上的初级引导加载程序(如GRUB Legacy 或 GRUB2)。这个引导加载程序被设计成可以处理更复杂的任务,例如提供多操作系统选择、参数传递给内核等。
  1. 引导加载程序阶段
  • GRUB 菜单:对于使用GRUB作为引导加载程序的情况,用户会在这一阶段看到一个菜单,可以选择要启动的操作系统版本或其他选项。
  • 加载内核和初始RAM磁盘:一旦选择了某个操作系统条目,GRUB将会加载相应的Linux内核(vmlinuz)和初始RAM磁盘(initrd/initramfs),它们会被加载到内存中准备执行。
  1. 内核初始化
  • 解压并启动内核:内核镜像通常是压缩格式的,因此需要先解压。之后,内核开始初始化硬件和核心子系统。
  • 挂载根文件系统:通过使用initrd/initramfs提供的临时文件系统,内核会尝试挂载真正的根文件系统。
  • 启动 init 进程:一旦根文件系统成功挂载,内核将启动/sbin/init进程(或等效进程,取决于具体的init系统,如systemd, SysVinit等),这标志着用户空间程序开始运行。
  1. 用户空间初始化
  • 启动服务和守护进程:init进程负责按照预定的顺序启动各种系统服务和守护进程,包括网络、图形界面、登录提示符等。
  • 提供登录界面:最终,系统准备好接受用户输入,显示登录提示符或图形登录界面。

注意事项

  • 安全启动:在支持UEFI的系统中,还可以启用Secure Boot功能,确保只有经过数字签名验证的引导加载程序才能被执行,从而增强系统的安全性。
  • 多重引导:如果机器上安装了多个操作系统,MBR中的引导加载程序可能会提供一个菜单让用户选择想要启动哪个操作系统。

以上就是Linux系统启动时MBR引导块的主要流程。每一步都至关重要,任何一步出现问题都可能导致启动失败。理解这些步骤有助于诊断和解决与启动相关的问题。

posted @ 2024-12-01 15:41  guanyubo  阅读(105)  评论(0编辑  收藏  举报