一个系统中可以有多个 MBR 吗?

一个系统中可以有多个 MBR 吗?

据我了解,单个设备(即硬盘驱动器)上的 MBR 概述了该设备上的主分区,并提供了可注入的指向操作系统引导加载程序的代码。

这种理解准确吗?系统中是否可以有多个 MBR(每个硬盘一个)?如果可以,CMOS/BIOS 如何确定使用哪个 MBR(我假设这是 CMOS 配置下的硬盘优先级列表)?

我试图理解这一点,因为我想安装 Ubuntu,上次我尝试这样做时,尽管我告诉 GRUB 安装到与包含我的 Windows 安装的设备不同的设备上,但我的 Windows MBR 已损坏,我无法启动 Windows。

答案1

是的,MBR 有点棘手......因为有很多遗留的约定构成了当前的情况。

您的 BIOS 将完成 POST,然后将存储在 MBR 中的所有内容加载到内存中,并告诉处理器执行那里的内容。这是一个保留的、非常明确定义的区域。安装在硬盘驱动器根目录中的 MBR 是您的机器将要启动的。现代的引导加载程序也可以观察存储在分区开头的引导加载程序代码,因此您可以链式加载这些代码。

对于 Windows Vista 或 7 用户,我发现 EasyBCD 对于解决引导加载程序问题非常有用。我也非常喜欢 SuperGrubDisk (SGD),因为它可以帮助我启动我搞砸的系统。

无论如何,这件事比我知道的要多,但这应该会有点帮助。

答案2

你的理解基本正确。

如果您有多个硬盘驱动器,则系统中可能会有多个 MBR...系统只需通过您在 BIOS(或 EFI)中设置的硬盘驱动器启动顺序来选择它。

至于上次损坏...您可能将 MBR 与 Windows 引导加载程序混淆了。不能肯定。

如果您拥有多个硬盘驱动器并希望安装多个操作系统,那么真正安全的方法/我建议人们做的是在安装第二个操作系统时拔下另一个驱动器,然后设置您想要的引导加载程序并在 BIOS 中设置主驱动器...或者更安全,只需将主驱动器设置为主启动,并在不使用其他操作系统时手动选择另一个(或拔下)!

相关内容