我最近在 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/nvme0n1p1
Windows 安装创建的相同 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 启动管理器”完好无损。我说得对吗?
我已经esp
用parted
(set 8 esp off
)。我能够启动 Windows(通过 Grub,或者通过将“Windows 启动管理器”定义为 BIOS 中的第一个选项启动顺序屏幕)。现在,我可以从 Windows 中的 Windows 磁盘管理实用程序中删除第 8 个分区(由于我已关闭该标志,因此不再显示为灰色esp
),但它真的安全吗?此后我还能启动 Windows 吗?
我对 Grub 也感到困惑,删除第二个 ESP 后会发生什么?