删除第二个 EFI 系统分区(与第一个 ESP 相同的磁盘)

删除第二个 EFI 系统分区(与第一个 ESP 相同的磁盘)

我最近在 UEFI 中安装了 Arch Linux 双启动,同时安装了现有的 Windows 10(Windows 10 预装在我的 Dell XPS 7590 上)。

在分区方面,我为 ESP(EFI 系统分区)创建了一个 300MB 的分区。我安装了整个系统,并且能够成功(使用 Grub)启动到 Arch 或 Windows 10。

然而,已经是 ESP(可能是由 Windows 10 安装创建的)我可以重复使用,而不必创建新的。我的 NVME 磁盘现在的格式如下(我只保留了有趣的细节):

/dev/nvme0n1p1 # Windows ESP
  └ EFI
    ├ Boot
    │ └ bootx64.efi
    └ Microsoft
      └ Boot
        └ bootmgfw.efi

/dev/nvme0n1p8 # Arch ESP
  └ EFI
    └ arch
      └ grubx64.efi

我读到过,即使它有效,在同一个磁盘上安装 2 个 ESP 也不是一个好主意:

Windows 官方仅支持每个磁盘一个 ESP [...]。我不知道 Windows 8 的情况,但如果 Windows 7 安装程序发现磁盘上有多个 ESP,它就会出错;安装将进行到部分阶段,然后失败。

只能有一个 ESP,这是规范中规定的。您可以为不同的操作系统分配多个分区作为 /boot,但只能有一个 ESP,供固件存储其设置等。

EFI 规格官方没有明确规定不可移动硬盘上存在多个 EFI 系统分区,但根据 §11.2.1.3,明确禁止可移动磁盘上存在多个 ESP:

对于可移动媒体设备,必须只有一个 EFI 系统分区,并且该分区的根目录中必须包含一个 EFI 定义的目录

但在实践中,如果启动盘上有多个 ESP,就会发生坏事(TM)。

我不知道第一点是否仍然适用(Windows 10),但我也读过(我不记得在哪里)如果同一个磁盘上存在 2 个 ESP,有时 Windows 更新可能会搞砸。

由于这些“担心”,并且由于我的系统尚未完全设置,我决定重新安装 Arch Linux(保留双启动),并使用/dev/nvme0n1p1Windows 安装创建的相同 ESP()。

但在开始重新安装过程之前,我想知道:删除该/dev/nvme0n1p8分区(用于 Arch 的第二个 ESP)安全吗?在 BIOS 中,我注意到启动顺序,目前有两个选项:

  • Windows 启动管理器

运行时我可以看到相同的结果efibootmgr -v

Boot0000* Windows Boot Manager HD(1,GPT, ...)/File(\EFI\Microsoft\Boot\bootmgfw.efi)
Boot0003* arch HD(8,GPT,...)/File(\EFI\arch\grubx64.efi)

因此,如果我理解正确的话(如果我错了请告诉我),删除第 8 个分区似乎只会删除“arch”选项,并保留仅有的第一个分区上的“Windows 启动管理器”完好无损。我说得对吗?

我已经esppartedset 8 esp off)。我能够启动 Windows(通过 Grub,或者通过将“Windows 启动管理器”定义为 BIOS 中的第一个选项启动顺序屏幕)。现在,我可以从 Windows 中的 Windows 磁盘管理实用程序中删除第 8 个分区(由于我已关闭该标志,因此不再显示为灰色esp),但它真的安全吗?此后我还能启动 Windows 吗?

我对 Grub 也感到困惑,删除第二个 ESP 后会发生什么?

相关内容