涉及 2 个物理磁盘的启动过程

涉及 2 个物理磁盘的启动过程

根据我的理解,MBR 分区方案允许每个物理 MBR 磁盘有 4 个主分区,并且在任何时候只能将这 4 个分区中的一个设置为活动分区。

现在,如果我有 2 个物理磁盘,这是否意味着我也可以将第二个硬盘的一个分区设置为活动分区?如果它们位于不同的硬盘上,是否允许有 2 个活动分区?

如果是,那么 BIOS 如何确定选择哪个“活动”分区? bootmgr 与此过程有何关系?

答案1

实际上,BIOS 会忽略“活动”分区位。BIOS 所做的就是检查磁盘第 511 和 512 字节处的魔法签名 (0x55AA)。如果找到,BIOS 就会运行 MBR 中的代码。

MBR 的典型行为是检查第一个磁盘的分区表并运行第一个标记为活动的分区中的操作系统。这意味着该分区的分区表信息将“活动”位设置为 1。

但是,这是否真的会发生取决于 MBR 中的代码。此时 BIOS 的指令已经将控制权交给了 MBR 的指令。因此此时 BIOS 的启动指令已经完成。

可以将多个分区的“活动”位设置为 1。对于许多 FDISK 程序,当您设置一个分区的“活动”位时,它将取消选择其他分区的“活动”位。这很常见。但是,OpenBSD 的 fdisk 是一个已知的例外。因此,一个磁盘上可以有多个活动分区。典型的行为(由安装到许多 MBR 中的一些最常见代码支持,使用与许多流行操作系统捆绑在一起的代码)仅使用第一个磁盘上的第一个活动分区。

许多流行操作系统所创建的 MBR 中内置的代码完全不支持在第二个磁盘上启动操作系统。理论上,这是可以做到的。(我认为 Ranish Partition Manager 的引导加载程序会支持这一点,XFDisk 和 GAG 的引导加载程序可能也会支持。)但是,即使 MBR 中内置的代码支持这一点,某些操作系统(尤其是 DOS)也不会支持这一点。由于没有真正令人信服的理由(例如技术上不可能的限制),事实是许多较旧/传统的代码根本不支持该功能。

相关内容