引导扇区和多驱动器如何工作?

引导扇区和多驱动器如何工作?

我不完全理解引导扇区的概念,我希望有人能帮我澄清这一点。

如果您有两块硬盘,每块硬盘上都安装了操作系统,那么每块硬盘都有自己的引导扇区吗?每块硬盘都需要一个 MBR 分区吗?

我在两个不同的驱动器上安装了 Linux 和 Windows。我在安装 Linux 和 grub 时遇到了问题,现在我终于决定使用 Windows 引导加载程序来启动。当我使用 /fixmbr 时,Windows 会删除 grub 吗?还是它会保留在另一个驱动器的引导扇区中?

答案1

Wil 的回答有点正确,但从技术上讲并不准确。是的,驱动器不需要 MBR。如果没有 MBR,您将无法从该驱动器启动,也无法创建分区在该驱动器上。但是...

期限主引导记录经常用来指两件事——正确的说它只指第一件事,而常被误用于第二件事:

  1. 具体来说,分区数据存储设备的第一个 512 字节扇区(“LBA 扇区 0”)。此位置保存引导加载程序代码(第一阶段引导加载程序)的前 440 个字节和主分区表。请参阅维基百科的MBR 文章了解典型 MBR 结构的详细信息。

  2. 存储在该位置的引导加载程序代码。在 BIOS 系统中,这是 BIOS 从驱动器引导时执行的第一个代码。请参阅MBR 和系统引导第一阶段引导加载程序:在 i386 系统上,此代码链式加载第二阶段引导加载程序,存储在卷引导记录活动分区,负责实际启动操作系统。

卷引导记录或者分区引导扇区是分区的第一个扇区,安装到该分区的操作系统将在此存储其主引导代码。VBR 还用于非分区数据存储设备(软盘、USB 闪存驱动器,甚至用于非分区角色的硬盘驱动器)。

多重启动系统使用启动管理器(例如 Grub)。引导管理器将其自己的引导加载程序代码放入 MBR 中,并提供菜单,用户可以从中选择要引导的操作系统。(从技术角度来说,用户正在选择要使用哪个第二阶段引导加载程序。)


因此,直接回答你的问题:

  • 两个硬盘,每个硬盘上都安装了操作系统每个都有自己的 MBR

    • 两个 MBR 都至少包含一个分区。
    • 这些硬盘上的每个分区都有自己的 VBR。包含操作系统安装的分区会将其第二阶段引导加载程序存储在这些 VBR 中;任何仅包含数据的分区(可能)在其 VBR 中都没有有效的引导代码。
    • 如果此系统启动,至少这些 MBR 将包含有效的第一阶段引导加载程序,但它仅对于 BIOS 尝试从中引导的驱动器才是必要的。

  • 当你将 Linux 安装到第二个驱动器时,它大概将 Grub 的第一阶段引导加载程序写入 Windows 驱动器的 MBR。它可能将第一阶段引导加载程序写入其自身驱动器的 MBR,但如果 BIOS 从未尝试从 Linux 驱动器引导,您永远不会注意到。同样,当您使用 /fixmbr 时,Windows 会在其系统驱动器的 MBR 上重写第一阶段引导加载程序。

    • 说实话,我不知道 Win-7 的 Bootrec.exe 实用程序是否也会写入其他驱动器的 MBR。它可能具有这样做的能力,但可能不是默认操作。
    • 我也不知道 Ubuntu 9.04 的安装程序是否会默认将 Grub 安装到两个驱动器的 MBR 中。如果需要,可以手动执行此操作。在某些情况下,这是一件好事——如果您断开 Windows 驱动器并尝试从 Linux 驱动器启动,如果 Grub 的第一阶段启动代码不存在,您将无法启动。

答案2

驱动器不需要 MBR,但是,如果没有 MBR,您将无法从该驱动器启动。

首先,机器会启动到 BIOS 指定的任何磁盘。这是唯一一个需求MBR(这是基于 BIOS 的机器,例如市场上的大多数机器,而不是 EFI)。

拥有 MBR 基本上会告诉机器驱动器是可启动的(而不是返回可怕的“无磁盘或磁盘错误”或类似消息),然后将加载引导加载程序。

当引导加载程序被加载时,它基本上会按照指令执行,这可以是加载其他引导加载程序(例如,Grub 加载 Windows 引导加载程序)或操作系统 - 例如,您可以选择驱动器/分区。

因此,您只需要在实际的启动驱动器上拥有 MBR(和引导加载程序)。

答案3

MBR(主引导记录)是第一个可以写入的扇区。它具有固定的位置和大小(非常小),因此每个磁盘只能有一个 MBR。

MBR 是 BIOS 加载后按启动顺序读取的第一个扇区。它可用于启动一个操作系统或加载 grub 或 lilo 等引导加载程序,以便选择要加载哪个系统。

相关内容