p18

GPT(GUID 分区表) 分区方案在结构、功能以及与引导加载程序和系统引导的交互方式方面与 MBR(主引导记录) 方案有很大不同。让我们比较一下这两者,并了解 GPT 在系统引导环境中的工作原理,尤其是对于双引导场景。

1. GPT 和 MBR 分区方案之间的差异

方面 MBR GPT
分区表大小 64 字节(限制为 4 个主分区) 将多个分区存储在更大的表中
分区数 最多 4 个主分区(或 3 个主分区 + 1 个带逻辑分区的扩展分区) 默认支持最多 128 个分区(可以添加更多分区)
磁盘大小支持 最大 2 TB 支持大于 2 TB 的磁盘(最多 9.4 ZB)
引导代码 包含 446 字节的引导加载程序代码(主引导代码) GPT 不以相同的方式存储引导加载程序。引导加载程序存储在 EFI 系统分区 (ESP)
冗余 无冗余,分区表仅存储在磁盘的开头 GPT 存储分区表的多个副本以实现冗余(一个在开头,一个在磁盘的末尾)
损坏恢复 更容易损坏;没有自动恢复 更强大,可以使用备份表从损坏中恢复
兼容性 适用于旧式 BIOS 启动模式 专为 UEFI 设计,但可以模拟 MBR 以实现向后兼容(通过“保护性 MBR”)

2. 使用 GPT 启动

使用 GPT 启动与 MBR 不同,因为 UEFI(统一可扩展固件接口) 是传统 BIOS 的现代替代品。让我们来探索一下启动差异:

使用 GPT 和 UEFI 启动

  • EFI 系统分区 (ESP)
  • 在使用 UEFI 的基于 GPT 的系统中,引导加载程序存储在称为 EFI 系统分区 (ESP) 的特殊分区中。
  • ESP 包含各种操作系统的引导加载程序文件。这些引导加载程序文件采用 EFI 可执行文件 (. efi) 的形式(可以用 c语言 来写),UEFI 可以直接加载。
  • 您安装的每个操作系统都可以将其自己的引导加载程序放置在 ESP 中。例如,GRUB 可能位于 /EFI/grub 中,而 Windows 启动管理器位于 /EFI/Microsoft/Boot 中。

  • 没有主引导记录 (MBR) 代码
  • 与 MBR 不同,GPT 中没有单个“主引导代码”。相反,UEFI 根据引导顺序设置或用户输入(通过引导菜单 grub)从 ESP 加载适当的引导加载程序。

  • 引导管理器
  • UEFI 本身可以充当基本引导管理器。它可以提供一个菜单(取决于 uefi 的固件支不支持),列出存储在 ESP 中的可用操作系统或引导加载程序。这允许您选择从哪个操作系统引导,而无需单独的引导管理器(如 GRUB)。
  • 但是,对于更复杂的设置(例如,使用 Linux 和 Windows 双引导),仍然可以安装 GRUB 或其他引导管理器以提供更多灵活性(例如,自定义引导选项、在不同的 Linux 内核之间进行选择等)。

使用 GPT 和传统 BIOS(CSM 模式)启动

  • 兼容性支持模块 (CSM)
  • 一些支持 UEFI 的系统还提供兼容性支持模块 (CSM),允许它们在传统 BIOS 模式下启动。
  • 如果您使用的是 GPT 磁盘,但想要在传统 BIOS 模式下启动,则可以将系统配置为通过 CSM 模拟 BIOS。在这种情况下,您可能需要“保护性 MBR”以避免与不理解 GPT 的旧工具发生兼容性问题。
  • 但是,使用 GPT 在传统模式下启动通常不太常见,并且不是 GPT 的预期设计,GPT 旨在与 UEFI 配合使用。

3. 使用 GPT 进行双启动

在使用 GPT 的双启动场景中,所涉及的过程和工具与基于 MBR 的系统略有不同:

  • 安装多个操作系统
  • 两个操作系统(例如 Linux 和 Windows)都将其引导加载程序文件放在 EFI 系统分区 (ESP) 中。每个操作系统都会在 ESP 中创建一个目录来存储其引导加载程序。

  • UEFI 启动菜单
  • UEFI 可以识别 ESP 中的多个引导加载程序条目,并且通常提供基本启动菜单。您可以在启动期间按下某个键(通常是 F 12ESC 或根据制造商的不同而不同的其他键)来访问该菜单,以手动选择要加载哪个引导加载程序(例如 Windows 启动管理器、GRUB)。

  • GPT 上的 GRUB
  • 如果您在具有 UEFI 的 GPT 磁盘上安装 GRUB,它仍将用作启动管理器,允许您在多个操作系统之间进行选择。GRUB 将检测 Windows 启动管理器和其他可启动条目,并在其启动菜单中显示它们。
  • GRUB 的引导加载程序安装在 EFI 系统中分区(不在 MBR 中,因为 GPT 不使用 MBR 引导代码),UEFI 将从 ESP 加载 GRUB。

  • 没有 GRUB?
  • 如果您不安装 GRUB 或任何其他引导管理器,UEFI 将从 ESP 启动默认操作系统引导加载程序(例如,Windows 引导管理器)。如果只有一个操作系统的引导加载程序存在或配置为默认,则不会有任何引导菜单,系统将直接启动到该操作系统。

4. MBR 和 GPT 之间双引导设置的主要区别

  • MBR
  • 引导加载程序存储在 MBR 中。
  • 有限的分区支持。
  • 需要在 MBR 中安装 GRUB(或其他引导管理器)以提供双引导系统的引导菜单。

  • GPT
  • 引导加载程序存储在 EFI 系统分区中。
  • 没有像 MBR 中的单个“主引导代码”; UEFI 直接从 ESP 加载引导加载程序。
  • 如果 ESP 中存在多个引导加载程序,UEFI 可以提供基本启动菜单,但可以安装 GRUB 或其他启动管理器以实现更高级的控制。
  • 支持更多分区和更大的磁盘大小。

摘要

  • MBR 依赖于主引导记录中的单个引导加载程序,并支持有限的分区和较小的磁盘大小。
  • GPT 专为 UEFI 系统设计,使用 EFI 系统分区 (ESP) 来存储多个引导加载程序,并允许使用许多分区和更大的磁盘进行灵活的启动管理。
  • 使用 GPT,UEFI 可以提供启动菜单以在不同的操作系统之间进行选择(如果已配置),但更高级的启动管理(如 GRUB)仍可用于复杂的双启动设置。