系统引导原理
1 概述
BIOS:
BIOS(上电自检)–>
MBR 的主引导程序(bootloader 自身的一小部分)–>
启动引导程序 bootloader(Grub/Bootmgr。bootloader 的其他部分,安装到磁盘上的可用空间中。这段可用空间位于常规 MBR 末尾和第一个分区的起始位置之间。)–>
OS
UEFI:
UEFI(上电自检)–>
ESP 分区即启动项存放位置分区(EFI/BOOT/一大堆 efi 后缀名的文件)–>
启动引导程序 bootloader(Grub/Bootmgr)->
OS
2 详解
Windows(BIOS + MBR):
上电 –> Legacy BIOS –> MBR –> DPT –> PBR –> Bootmgr/NTLDR –> BCD/boot.ini –> Winload.exe –> 内核加载 –> Windows
Windows(UEFI + GPT):
上电 –> UEFI –> GPT 分区表 –> EFI 分区(ESP)–> \efi\Microsoft\boot\bootmgfw.efi –> efi\Microsoft\BCD→\Windows\system32\winload.efi
3 补充
两种引导方法:UEFI、BIOS(BIOS + MBR 或 UEFI + GPT)。
UEFI、BIOS 两种完全不一样。
作为 bootloader 的 Grub 可以直接引导 Windows,但是作为 bootloader 的 Bootmgr 无法直接引导 Linux,需要用 EasyBCD 来设置添加 Linux 的启动项。
一块硬盘进行高级格式化(逻辑分区),方便管理。(低级格式化为分磁道扇区)。主流分区机制为 MBR、GPT 两种。分区个数取决于分区表所能存储的描述磁盘分区的情况。
UEFI 引导中:ESP 分区,Windows 下想访问 ESP 分区需用分区工具给它分配盘符并取消隐藏;而 Linux 则直接将这个分区挂载到 /boot/efi。
GPT:一个较新的分区机制,解决了 MBR 很多缺点。向后兼容 MBR,必须在 UEFI 硬件上使用,必须为 64 位系统,Mac、Linux 都支持 GPT 分区格式。
MBR:最多 4 个主分区,或者 3 个主分区加 1 个扩展分区,扩展分区中的逻辑分区可分多个。由磁盘操作系统对硬盘进行初始化时产生的。
传统 BIOS 引导 Windows 操作系统时,是通过一个活动的主分区下的 bootmgr(启动管理器)文件导入根目录下 boot 文件夹里的 BCD(启动设置数据)文件,然后 BCD 文件根据自身的配置内容加载系统启动文件 winload.exe(位置:根目录 \Windows\system32\winload.exe)来启动系统。一个 BCD 文件可以加载多个系统启动文件从而实现引导多个系统的启动。

