MBR分区方案
[!NOTE] MBR(主引导记录) 结构就是主引导代码+分区表(+post-mbr gap),
主引导代码
就是专门负责用来加载系统到内存中的,分区表
就是一个磁盘的整体布局。post-mbr gap
就是用来过渡引导的阶段 1 和阶段 2 的。如果就是,主引导记录用来引导 GRUB,==则就会出现 grub 的代码覆盖了原本的主引导的原先代码。==

1. MBR 结构:
- 主引导记录 (MBR) 由两个主要部分组成:
- 主引导代码 (446 字节):此部分包含负责将操作系统或其他引导加载程序(如 GRUB)加载到内存中的引导加载程序代码。
- 分区表 (64 字节):此部分包含磁盘分区的布局,包括其起始和结束位置。
- 在 MBR(主引导记录) 设置中,磁盘布局在 MBR(占用前
512
个字节)和磁盘上的第一个分区之间留下一小块未使用的空间。此空间通常称为
后 MBR 间隙(post-mbr gap),通常约为 31
KB。此间隙用于存储 BIOS
在启动过程中加载的额外引导加载程序代码。(==所以从这里可知: 单纯靠 mbr
无法完整引导系统,所以要靠
post-mbr gap
来将阶段 1 过渡到阶段 2)
如果 MBR 的主引导代码部分为空或已损坏,则系统将无法加载任何操作系统,因为没有代码来指示系统如何继续引导过程。分区表可能仍然完好无损,但如果没有引导代码,系统将不知道如何从这些分区启动引导。
2. 启动具有双操作系统(GRUB 和 MBR)的系统:
- 当您拥有双系统(例如 Linux 和 Windows)时,引导加载程序是必需的,以便提供选择要启动哪个操作系统的方法。
- 如果 MBR 包含标准引导加载程序(如默认的 Windows 引导加载程序),它将仅启动默认操作系统(在本例中为 Windows),而不提供选择其他操作系统的菜单。
- 另一方面,GRUB 是一种更高级的引导加载程序,可以检测多个操作系统。如果 MBR 中安装了 GRUB,它将加载并提供启动菜单,允许您选择要启动哪个操作系统。
如果 MBR 不包含 GRUB(或任何启动管理器):
- 没有启动管理器菜单:如果 MBR 中没有安装 GRUB(或其他启动管理器,如 rEFInd 或 LILO),您将没有菜单来选择要启动哪个操作系统。系统将直接启动到与已安装的引导加载程序关联的默认操作系统。
- Windows 引导加载程序:例如,如果 Windows 引导加载程序 位于 MBR 中,它将直接启动到 Windows,而不提供启动 Linux 的选项。
3. GRUB 和引导管理器角色:
- 当 GRUB 安装在 MBR 中时,它会用自己的代码替换默认引导代码,该代码可以:
- 检测多个操作系统安装(例如 Linux 和 Windows)。
- 在启动期间显示启动菜单,允许您选择要启动的操作系统。
如果您在设置双系统后安装 GRUB,GRUB 通常会扫描其他已安装的操作系统(如 Windows)并将其添加到其启动菜单中。如果 MBR 不包含 GRUB 或任何其他引导管理器,您将只能启动与 MBR 中存在的引导加载程序关联的操作系统(例如,如果 Windows 引导加载程序存在,则为 Windows)。
结论:
- 如果您的 MBR 为空,您将根本无法启动系统。
- 如果您有 双系统,但 GRUB(或其他启动管理器) 未安装在 MBR 中,您将无法获得启动菜单来选择要启动的操作系统。系统将默认使用现有的任何引导加载程序(例如,Windows 引导加载程序),这可能会自动加载一个操作系统而不显示另一个系统的任何选项。
要启用双启动功能,在 MBR 中安装像 GRUB 这样的启动管理器是必不可少的。
补充说明 post-mbr gap
流程
- 第 1 阶段引导加载程序执行:
- 第 1 阶段引导加载程序(MBR 中的小引导代码)非常有限。它的工作是定位和加载引导加载程序的下一阶段,通常称为第 1.5 阶段或直接称为第 2 阶段。
- 由于 MBR 只有 446 字节的空间,因此它无法容纳完整的引导加载程序(如 GRUB 或其他引导管理器),也无法容纳直接引导操作系统所需的复杂代码。
- MBR 后间隙(也称为“嵌入区域”):
- 在 MBR 之后,MBR 与磁盘上的第一个分区之间通常存在间隙。此间隙通常称为 MBR 后间隙 或 嵌入区域。
- 在 传统 BIOS-MBR 引导 中,此间隙为引导加载程序的 第 1.5 阶段 代码提供了额外的空间。第 1.5 阶段代码是必需的,因为:
- 它包含理解磁盘上文件系统的代码。
- 它提供加载完整 第 2 阶段引导加载程序 所需的额外功能。
- 此间隙通常介于 30 KB 到 60 KB 之间,具体取决于分区方案和引导加载程序。
- 阶段 1.5 引导加载程序:
- 阶段 1.5 是 MBR 中最小 阶段 1 引导加载程序 与完整 阶段 2 引导加载程序 之间的桥梁。
- 它位于 MBR 后间隙中,包含理解存储 阶段 2 引导加载程序的文件系统(例如 ext 4、NTFS 等)所需的基本驱动程序或代码。
- 例如,在 GRUB 的情况下,阶段 1.5 允许 GRUB 访问包含完整 /boot/grub 目录的分区。
- 阶段 2 引导加载程序:
- 一旦加载 阶段 1.5,它就会找到完整的 阶段 2
引导加载程序,该程序通常存储在操作系统分区上的
/boot
目录中。 - 第 2 阶段 是完整的引导加载程序(例如 GRUB 或 LILO),它:
- 显示引导菜单(如果配置了多个操作系统)。
- 将所选操作系统的内核加载到内存中。
- 将控制权移交给内核以引导系统。
- 操作系统内核:
- 一旦 第 2 阶段引导加载程序 将内核加载到内存中,它就会开始执行内核,从而接管引导过程、初始化硬件、加载驱动程序并最终引导系统。
为什么后 MBR 间隙很重要?
- MBR 引导代码 只有 446 个字节,非常小,不足以加载完整的引导加载程序(如 GRUB)。
- 后 MBR 间隙 为引导加载程序的代码(第 1.5 阶段)提供了额外的空间,而这些空间无法容纳在 MBR 本身中。
- 使用 MBR 磁盘 时,此间隙对于 基于 BIOS 的启动 至关重要,因为它包含读取磁盘文件系统和加载完整引导加载程序所需的代码。
MBR分区方案
http://example.com/2024/10/10/MBR分区方案/