在以前的 MBR 上使用 gdisk 创建 EFI 可启动 GPT 分区,GPT 损坏

在以前的 MBR 上使用 gdisk 创建 EFI 可启动 GPT 分区,GPT 损坏

这是我上一个关于 UEFI 引导加载程序分区的问题的姐妹问题。 UEFI引导加载程序分区,可以使用LVM吗?

免责声明:我对上面的数据不感兴趣。 Windows 8 可能会在火灾中死亡。

按照说明,我有一个 400MB 设备,我认为它以前是某种“Microsoft 保留”分区(我相信它是 MBR 分区?)。在我意识到我必须做什么之前,我使用该fdisk实用程序删除了现有分区,并使用 ext4 文件系统创建了一个 MBR 分区,然后重新启动以使更改生效。

然后我意识到这不适用于 UEFI 固件,这是一个非常时髦且非常棒的固件,它必须在各个方面都有所不同。我这次进入gdisk并搜索分区,但没有找到。我在这个 400MB 设备上创建了一个新的 GUID 分区,我认为该分区具有正确的 EFI 类型代码 EF00。这看起来很成功,所以我在上面创建了一个 FAT32 文件系统,mkfs -t fat32 /dev/sda1并且成功了。

我按照所有说明从可启动安装 CD 安装 Arch Linux,该安装 CD 恰好以 UEFI 模式启动(我可能会添加)。我在系统上安装了 gutiboot,它立即通知我我的设备 sda1 不是正确的 EFI 分区。彻底困惑了,我gdisk -l对设备进行了检查,发现它确定 GPT 分区已损坏,而 MBR 分区仍然存在。

 Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: damaged

然后它提出了三个选项:MBR、GPT 或干净的 GPT。我选择 GPT 认为它会删除 MBR 分区表,但它没有什么区别。

意识到我目前超出了我的知识范围,并且不知道如何从现有的 MBR 分区创建正确的 GPT 分区,我运行了快速分析testdisk,一切看起来都很好而且绿色。 testdisk 实用程序在各个方面都将其识别为正确的 EFI 可引导分区。

如果可能的话,我想修复 GPT 分区,这样我就可以避免在 Arch 安装中重新开始的所有安装和自定义步骤。如果这是不可能的,并且我必须销毁该分区并重新开始,有没有一种方法可以保存已安装在此处的数据,并在修复启动分区后手动将其添加回来?

答案1

引用Ubuntu UEFI 社区维基。无论分布如何,均适用相同的规则。

创建EFI分区

如果您在 Ubuntu 安装程序中手动对磁盘进行分区,则需要确保设置了 EFI 分区。

  1. 如果您的磁盘已经包含EFI分区(例如,如果您的计算机预装了Windows8),则它也可以用于Ubuntu。不要格式化它。强烈建议每个磁盘仅具有 1 个 EFI 分区。
  2. 可以通过最新版本的 EFI 分区创建格帕特(12.04盘中包含的Gparted版本就可以了。 注意:我已经添加了 GParted LiveCD 的链接),并且必须具有以下属性:

    • 挂载点:(/boot/efi注:使用手动分区时无需设置该挂载点,Ubuntu安装程序会自动检测)
    • 大小:最小 100Mib。建议 200MiB。
    • 类型:FAT32
    • 其他:需要一个“启动”标志。

请参阅此屏幕截图,它会给您一个布局的想法。 (注意/dev/sda1,我很抱歉再次依赖 Ubuntu 截图。)如果需要,您可以通过调整 arch 安装的大小来创建此分区。这也是 OSX 的布局,所以如果你想与 Win8 双启动,你可以将下面截图中的sda2和合并到 1 个 ntfs 类型的分区中,然后, , 和, 将用于 Arch。sda3sda4sda5sda6

使用 UEFI 的 GParted 分区图


关于LVM

我相信可以使用 LVM,但经验表明您创建的 EFI 分区和挂载点不能存在于卷组内,也不应该作为卷存在。为了保持 EFI 分区“干净”,请创建一个不属于任何 LV 的分区。

相关内容