是什么让BIOS决定驱动器是否可引导?
BIOS根据16字节的分区记录(在 MBR代码区之后)保存该驱动器是否可引导(该记录保存在从第446 个字节开始的表中)。每个分区记录中的第一个字节代表驱动器的可引导状态(并设置为0x80
是否可引导0x00
)。某些BIOS可能会检查MBR的其他部分(例如,分区类型,校验和),但基本要求是可引导标志。
如果系统中安装了多个驱动器,引导顺序如何从驱动器#1跳过并继续尝试从驱动器#2引导?
这取决于实现,这就是为什么您需要正确选择启动顺序的原因。在大多数情况下,BIOS将按照您设置的顺序浏览每个存储介质,并确定它是否可以从该设备引导(通过MBR数据)。如果可以,它会-否则,它将继续遍历其他设备(同样,按照您选择的顺序)。
BIOS将控制权转移到驱动器#1上的引导加载程序后,碰巧没有“可引导”分区-在第二个驱动器上调用引导加载程序的方式是什么?
一旦找到有效的启动设备(即,设置了可启动标志,并且通过了其他附加检查),BIOS将MBR扇区复制到RAM中。然后,BIOS将指令指针重新定位到该位置的开头(使用JUMP
指令),即MBR代码段所在的位置,然后计算机启动。
如果BIOS支持BIOS引导规范,则MBR代码可以通过特定指令将控制权返回给BIOS,以信号通知引导失败并提示其尝试下一个设备。较旧的BIOS只是打印一条错误消息。一个很好的判断,就是您的BIOS是否支持它是否可以从USB引导。
我的理解是,BIOS通常检查MBR的唯一内容是它在512字节扇区末尾的签名,然后它将控制权转移到位于引导扇区前446个字节中的初始引导加载程序。
这是正确的,尽管应该注意,大多数现代BIOS也会寻找GUID分区表以及较旧的常规MBR样式表。
是否意味着即使磁盘不可引导,引导扇区的前446个字节也必须包含一些有意义的引导加载程序代码?
否,但是驱动器必须具有有效的MBR或GUID分区表-否则,计算机将无法检测到该表。尽管MBR的代码部分确实可以为空,但驱动器的第一个扇区必须具有格式正确的MBR / GPT。