2023年11月25日发(作者:)
系统引导⽅式学习
系统引导是通过BIOS开始的,⽽BIOS⼜可分为传统的 Legacy BIOS 和新兴的 UEFI BIOS。那他们有什么区别呢?
BIOS 写⼊到主板上的固件(写⼊到硬件的程序),启动时,它会加载CMOS信息,检测硬件配置,进⾏⾃检,初始化硬件,然后寻找能启动的硬盘并
读取启动硬盘中的系统引导程序(Boot loader)。
Legacy BIOS 只能识别MBR分区表格式的硬盘。
UEFI BIOS 可同时识别MBR分区和GPT分区格式的硬盘。当然,对于微软来说,UEFI BIOS引导的Windows系统只能安装在GPT磁盘中。
⼀、系统引导(Boot Loader)的2个阶段
Boot Loader 是在操作系统内核运⾏之前运⾏的⼀段⼩程序。通过这段⼩程序,我们可以初始化硬件设备、建⽴内存空间的映射图,
从⽽将系统的软硬件环境带到⼀个合适的状态,最终达到启动操作系统内核的⽬的。
磁盘主引导记录MBR中虽然可以存放Boot loader,但由于其只有512B⼤⼩,⽆法实现加载系统内核的功能,即使是GPT硬盘也没有⾜够
的扇区来存储加载系统内核所需的数据。因此,为解决这个问题,系统引导是通过先后加载2段代码(也就是2个阶段)来完成任务的。⽽IPL
NTLDR :Windows NT时代的启动管理器。通过/启动配置⽂件来管理启动菜单,可以引导grub等其它引导程序。该启动管理器不⽀持
UEFI启动(也就是不能通过EFI⽅式引导系统)。
BOOTMGR :Windows Vista以后的系统使⽤的启动管理器。功能上⽐NTLDR强⼤⼀些,⽀持VHD,WIM⽂件的挂载。Legacy BIOS模式下的
启动管理器为/bootmgr,启动配置⽂件为过/boot/bcd。UEFI模式下的启动管理器在/efi/boot/,通
过/efi/microsoft/boot/bcd⽂件来管理启动菜单。但在UEFI环境下它不能引导其它的启动管理器如grub(也就是若装双系统只能为双windows系
统)。
GRUB4DOS :多系统引导程序,GNU GRUB 的⼀个分⽀,有⼀个强⼤的shell,可以通过命令⾏进⾏引导。⽬前只有Legacy BIOS模式下的引导


发布评论