BIOS 搭配 MBR/GPT 的开机流程

MBR/GPT 的开机流程

目前主机系统在加载硬件驱动方面的程序主要有早期的 BIOS 与新的 UEFI两种机制。

BIOS是写入到主板的一个韧体(韧体就是写入到硬件上的一个软件程序)。

在开机时,计算机系统会主动执行BIOS这个程序,即BIOS是计算机主动执行的第一个程序。然后BIOS会读取硬盘第一个扇区的MBR位置,MBR位置中有 446 bytes硬盘容量中有放置着最基本的开机管理程序。BIOS工作结束,执行MBR中的开机管理程序,开机管理程序(boot loader)会加载(load)操作系统的核心文件。开机管理程序工作结束,操作系统开始工作,开机完成。

流程化:

  1. BIOS,开机主动执行的韧体,开机时第一个执行的程序
  2. MBR,第一个可开机装置的第一个扇区内的主要启动记录区块,内含开机管理程序(boot loader)
  3. 开机管理程序(boot loader),读取核心文件来执行的软件
  4. 核心文件,开始操作系统的功能

如果分区表为 GPT格式,BIOS 能够在 LBA0中读取开机管理程序代码(boot loader)。

BIOS 与 MBR 都是硬件本身会支持的功能, Boot loader 是操作系统安装在 MBR 上面的一套软件了,其作用如下:

  • 提供选择项单,用户可以选择不同的开机项目,这是多重引导的重要功能
  • 载入核心文件,直接指向可开机的程序区段来开始操作系统
  • 转交其他loader,将将开机管理功能转交给其他 loader 负责(多系统)

开机管理程序(boot loader)除了安装在MBR中,还可以安装在每个分区槽中的启动扇区(boot sector),这是上述转交loader功能实现的基础。

假设一块硬盘中安装了windows 和 Linux双系统如图,则开机流程为:

开机管理程序的工作执行示意图

如图中 MBR 的开机管理程序提供两个选项单,选项单一(M1)可以直接加载 Windows 的核心文件来开机; 选项单二(M2)则是将开机管理工作交给第二个分区槽的启动扇区(boot sector)。当使 用者在开机的时候选择选项单二时, 那么整个开机管理工作就会交给第二分区槽的开机管理程序了。 当第二个开机管理程序启动后,该开机管理程序内(上图中)仅有一个开机选项单,因此就使用 Linux 的核心文件来开机。这就是多重引导的工作情况。

总结:

  • 每个分区槽都拥有自己的启动扇区(boot loader)
  • 途中的系统槽为第一第二分区槽
  • 实际可开机的核心文件放置到各分区槽内
  • loader 只会认识自己系统槽的可开机的核心文件以及其他 loader
  • loader 可直接指向或间接将管理权转交给另一个管理程序



发表评论

评论列表,共 0 条评论

    暂无评论