GRUB 是否完全替代 MBR 或仅替代 MBR 的启动代码

GRUB 是否完全替代 MBR 或仅替代 MBR 的启动代码

当我们双启动一台装有 Windows 和 Linux(后者)的计算机时,默认情况下,grub 会安装在 mbr 上,但要遵循以下方法 -

1. MBR(512 字节)完全被 grub 替换。grub 创建自己的分区表并使用它。在启动时,在初始化 BIOS 后,将加载 GRUB,然后进入阶段 1、1.5 和 2。2

. 只有 MBR 的启动代码(大约 446 字节)被 GRUB 替换,并且 GRUB 使用默认 MBR 的分区表。

请帮我澄清一下。

答案1

以下是文档中的相应部分:10 个 GRUB 映像文件

boot.img

在 PC BIOS 系统中,此映像是 GRUB 启动的第一个部分。它被写入主引导记录 (MBR) 或分区的引导扇区。因为PC引导扇区是512字节,所以该映像的大小正好是512字节。

的唯一功能boot.img是从本地磁盘读取核心映像的第一个扇区并跳转到该扇区。由于大小限制,boot.img无法理解任何文件系统结构,因此在安装 GRUB 时grub-setup将核心映像的第一个扇区的位置硬编码到其中boot.img

你应该读一下本章的其余部分,3.4 BIOS 安装

您的两个假设或给出的选项都不准确:

  • 当我们在一台计算机上双启动 Windows 和 Linux 时……

    这是第一个错误的假设。裸硬盘不附带任何操作系统。

  • grub 创建自己的分区表并使用它。

    这意味着丢失有关所有先前创建的分区的信息,但 GRUB 首先不是一个分区管理器。分区表的格式和分区本身已经配置并创建在空白驱动器上在操作系统安装过程中调用 GRUB 或任何其他类型的引导加载程序时. 引导加载程序包在安装过程中的作用是检测其是否与环境兼容并使用适当的机制来部署自身。

  • GRUB 已加载,并进一步进入第 1 阶段、1.5 阶段和 2 阶段。

    GRUB 2 的设计中没有阶段,请阅读对于 GRUB Legacy 用户来自上面第一个链接的部分。

  • 只有 MBR 的引导代码(大约 446 字节)被 GRUB 替换,并且 GRUB 使用 DEFAULT MBR 的分区表。

    没有“DEFAULT MBR”,只有分区表选择在安装过程的前面步骤中使用,它根本不一定是传统 MBR 格式的分区表。如果没有其他机制,只能读取和解析 512 字节,替换任何字节并写入 512 字节,那么这将完成,这对您来说甚至无关紧要,因为除了您选择的操作外,磁盘及其布局上不会执行任何其他操作。您甚至可能会发现您的硬盘驱动器写入整个 4K 扇区

注意:现在在商店里很难找到真正的 BIOS 系统。Windows 8 的硬件认证要求制造商提供 UEFI 系统。当时,英特尔和主板制造商已经推出了几年的 UEFI 系统,但他们不得不依赖与传统启动机制的兼容性,直到微软决定切换。

相关内容