BIOS和UEFI
BIOS是电脑主板上的基本输入输出系统,用来初始化硬件设备,引导进入操作系统。近年来UEFI逐渐替代BIOS的功能,但人们还是习惯称这个系统为BIOS。在主板设置中,一般将传统的BIOS称为legacy,而UEFI则被称为UEFI,legacy和UEFI统称为主板的BIOS。
legacyBIOS开机引导过程
- 主板加电,BIOS初始化CPU,然后继续执行BIOS芯片中的程序代码,进行其他硬件自检,完成硬件初始化。
- 读取硬盘第一个扇区中的MBR(Main Boot Record)主引导记录,其中存放了IPL(Initial Program Loader初始化程序加载器)和DPT(Disk Partiton Table分区表)。IPL读取活动分区的第一个扇区中的PBR(Partition Boot Record)分区引导记录,根据PBR中的信息找到活动分区中的引导文件bootmgr.exe(bootmanger启动管理器)并执行。
- bootmgr.exe启动管理器读取同目录下boot文件夹里的BCD(Boot Configuration Data)启动配置数据,BCD中存储了操作系统内核加载程序的路径地址(C:Windows\system32\winload.exe)。bootmgr.exe执行winload.exe从而引导操作系统启动运行。如果硬盘中装有多个操作系统,BCD中则分别存储它们的内核加载程序的路径地址,bootmgr.exe会提供选择菜单,让用户选择加载不同的操作系统。
UEFIBIOS开机引导过程
- 主板加电,UEFI程序初始化CPU和内存,加载驱动程序完成硬件初始化。
- UEFI系统支持文件系统,直接读取硬盘的ESP分区(EFISystemPartition)执行启动管理器。如果选择直接从硬盘启动,则使用UEFI默认启动管理器efibootbootx64.efi;如果选择Windows安装程序写入NVRAM中保存的WindowsBootManager,则使用Windows专用启动管理器,路径为efiMicrosoftbootbootmgfw.efi。
- bootmgfw.efi启动管理器读取BCD启动配置文件,路径为efiMicrosoftBCD,根据BCD中的路径执行操作系统内核加载程序winload.efi,路径为C:Windows\system32\winload.efi,从而引导操作系统启动运行。