在linux的引导过程中,先是运行MBR里面的grub stage 1,那么grub stage 1 是如何引导grub stage 2 的呢?
第一种:stage 1 通过bios查找主分区里面的活动分区,找到活动分区后,将活动分区的boot sector导入,由boot sector找到grub stage 2 ,然后运行之
第二种:stage 1 直接调用 stage 1.5,stage1.5位于MBR后面的63个扇区中,然后由于stage1.5可以识别文件系统,直接找到/boot/grub下面的gurb stage 2 ,运行之
那么这两种到底哪一种是正确的呢?
如果第二种是正确的,那么/boot分区中的boot sector 它到底起什么作用了呢?
MBR是整个硬盘的第一个扇区,是由主板上的程序读入的。元宵祝福网页
分区表在MBR扇区靠后面的位置,有些MBR引导程序会根据分区表上标志确定哪个分区是活动分区,然后再读入活动分区的引导扇区,然后把控制权交给这个引导扇区。
stage 1可以安装在MBR上或者分区的引导扇区上。
你说的第二种是grub的stage 1安装在MBR上,stage 1读入stage 1.5,stage 1.5又读入文件系统里的stage 2。这种情况用不上分区的引导扇区。
二种:stage 1 直接调用 stage 1.5,stage1.5位于MBR后面的62个扇区中,然后由于stage1.5可以识别文件系统,直接找到/boot/grub下面的gurb stage 2 ,运行之
这种方法才是正确的,在这种情况下boot sector中的代码是空的。