是否可以从 BIOS 系统上的 GPT 磁盘启动 Linux?

Seb*_*bMa 10 bios linux boot gpt

我有一台带有希捷 ST9250315AS 250GB 硬盘的 AMI BIOS 计算机 [Asus EB1501P]。

是否可以在这样的 BIOS 系统上从 GPT 磁盘启动 Linux?

phu*_*clv 10

BIOS 通常不关心您的硬盘驱动器1。它只是加载 MBR 并将控制权转移到 MBR 中的引导加载程序。因此,从技术上讲,可以在 BIOS 模式下启动 GPT 驱动器,因为 GPT 驱动器在开始时仍然具有保护性 MBR。您只需要一个支持 GPT 磁盘的引导加载程序(例如 Grub 和许多其他 Linux 引导加载程序)

然而,这里出现了一个小问题。在 MBR 驱动器上,引导加载程序通常会作弊,将它们的一部分存储在称为“MBR 间隙”、“引导轨道”或“嵌入区域”的下一个扇区中,这些扇区通常被磁盘分区工具留空。在 GPT 磁盘上,紧跟在 MBR 之后的扇区是 GPT 数据结构,因此不能用于该目的,您需要为 Grub创建一个小的BIOS 引导分区来存储其数据

在 BIOS/GPT 配置中,需要BIOS 引导分区。GRUB 将其嵌入core.img到这个分区中。

笔记:

  • 在尝试此方法之前,请记住并非所有系统都能够支持此分区方案。阅读有关 GUID 分区表的更多信息。
  • 这个额外的分区只在 GRUB、BIOS/GPT 分区方案上需要。以前,对于 GRUB、BIOS/MBR 分区方案,GRUB 使用 Post-MBR 间隙来嵌入 core.img)。但是,GRUB for GPT 不使用 Post-GPT 间隙来符合需要 1_megabyte/2048_sector 磁盘边界的 GPT 规范。
  • 对于 UEFI 系统,不需要这个额外的分区,因为在这种情况下不会嵌入引导扇区。但是,UEFI 系统仍然需要 EFI 系统分区。

在没有文件系统且分区类型为 GUID 的磁盘上创建一个 mebibyte 分区(+1M 使用 fdisk 或 gdisk)21686148-6449-6E6F-744E-656564454649

  • 选择分区类型BIOS bootfdisk
  • 选择分区类型代码ef02gdisk
  • 用于parted设置/激活bios_grub分区上的标志。

GUID 分区表 (GPT) 具体说明

Grub 还支持对包含下一阶段的扇区进行硬编码,因此它可以在没有后 MBR 间隙或 BIOS 引导分区的情况下启动,但这很脆弱,因为您需要在每次操作系统更新后更新 Grub。因此不推荐这样做

有关更多信息,您可以阅读


如果您的硬盘不是太大,另一种方法是将 GPT 驱动器转换回 MBR。事实上,MBR 磁盘可能超过 2 TB,最多约 2 33 个扇区(即,对于具有 512 字节和 4096 字节扇区的磁盘,分别为 4 TB 和 16 TB)并在磁盘余量的一半之前有一个大分区。有多种工具可以在不丢失数据的情况下进行转换,例如gdiskMiniTool Partition WizardAOMEI Partition AssistantEaseUS Partition Master ......(我不隶属于其中任何一个)。

由于您的硬盘只有 250 GB,因此它可以在 MBR 中正常工作。但是使用 GPT 更安全,因为它最后有校验和和备份表,尽管如果你双启动 Windows 或其他一些对 BIOS GPT 不友好的操作系统,这会更棘手


1有一些有问题的 BIOS 会急切地做他们不应该做的事情,例如检查MBR 签名或活动引导标志,并拒绝在此类驱动器上引导


fix*_*234 5

理论上,GPT 应该与 BIOS 一起工作。但是,偶尔会出现不兼容的情况。这些通常是特定硬件的错误或特性的性质,因此信息往往是异常报告,而不是您在 BIOS 和 GPT 文档中找到的信息。

所有的可能性都过于广泛,无法在此处涵盖,但请参阅例如https://www.rodsbooks.com/gdisk/bios.html,其中还讨论了遇到问题时的一些潜在解决方案。这些选项取决于您是要坚持使用 BIOS 还是要切换到 EFI/UEFI(如果您的主板支持)。

如果您将主板、计算机和硬盘驱动器型号添加到问题中,那么在等效系统上尝试过并看到您的问题的人可能能够描述他们的体验。