MBR(Master Boot Record,主引导记录)是磁盘最前面的一个扇区,其中包含传统 BIOS 启动所需的引导代码、传统分区表和启动签名。MBR 既可以指这个扇区,也常被用来指代一种传统的分区方案;阅读时要根据上下文区分这两个含义。

1. MBR 的结构#
MBR 的第一个扇区通常为 512 字节,结构如下:
446 字节:引导代码
64 字节:4 个传统分区表项
2 字节:启动签名 0x55AA- 引导代码:由 BIOS 加载到内存后执行,用于寻找并加载后续启动代码。
- 分区表:记录传统分区的起始位置、大小和类型等信息。
- 启动签名:BIOS 用它判断该扇区是否像一个可启动的引导扇区。
446 字节不足以容纳完整的 GRUB。因此,在 Legacy BIOS + MBR 的场景中,GRUB 通常还要使用 MBR 与第一个分区之间的嵌入区域,或从文件系统中继续加载 core.img 和模块。
2. MBR 与双系统启动#
Linux 和 Windows 共存时,关键问题是 BIOS 首先执行哪一份引导代码。
- 如果 MBR 中是 Windows 的引导代码,启动流程通常会进入 Windows Boot Manager。
- 如果将 GRUB 安装到 MBR,GRUB 可以显示菜单,让用户选择 Linux 内核或 Windows Boot Manager。
- 安装 GRUB 会替换 MBR 中原有的引导代码区域,但不会自动覆盖整个 MBR,也不会因此删除分区中的文件。分区表仍然位于同一扇区的独立区域,安装前仍应做好备份。
- 如果 MBR 引导代码损坏,分区中的数据不一定消失,但 Legacy BIOS 从这块磁盘启动的路径会中断。
GRUB 是否能自动发现其他操作系统,还取决于发行版配置和 os-prober 等工具,不能把“安装 GRUB”理解成一定会自动生成完整的双系统菜单。
3. MBR 后的嵌入区域#
当分区从对齐后的位置开始时,MBR 与第一个分区之间可能存在一段未分配空间,通常称为 post-MBR gap 或 嵌入区域。GRUB 可以在满足条件时把 core.img 的一部分放入这里。
不过,这段空间的大小和是否可用取决于磁盘布局与分区工具。旧教程中常见的“永远是第 1 到第 63 个扇区”或“所有 GRUB 都固定有 Stage 1.5”并不适用于所有 GRUB 2 安装。
Legacy BIOS
↓
MBR 中的 boot.img / 小型引导代码
↓
嵌入区域中的 core.img(如果使用)
↓
/boot/grub 中的模块和 grub.cfg
↓
Linux 内核与 initramfs这里的 Stage 1 / Stage 1.5 / Stage 2 是便于理解的历史称呼。现代 GRUB 2 更适合用 boot.img、core.img、模块和配置文件来描述。
4. MBR 分区方案的限制#
- 传统分区表最多直接描述 4 个主分区;需要更多分区时通常要使用扩展分区和逻辑分区。
- 可寻址的磁盘容量受到扇区大小、地址字段和工具实现的限制。
- 分区表的备份与一致性校验能力不如 GPT 完善。
- 在大容量磁盘和 UEFI 新装系统中,GPT 通常比 MBR 更合适。
5. 总结#
- MBR 的第一个扇区同时包含引导代码、传统分区表和启动签名。
- MBR 的 446 字节引导代码区域无法容纳完整的 GRUB。
- MBR 后的嵌入区域在可用时可以帮助 GRUB 保存或加载
core.img。 - 将 GRUB 安装到 MBR 是替换引导代码,不是覆盖整个磁盘,也不是删除原有分区。
- MBR、GPT、Legacy BIOS、UEFI 和 GRUB 的完整关系,请参阅Linux 启动流程:从固件、分区与 GRUB 到内核。


