EFI 目录是 EFI 标准的强制部分还是可以将引导加载程序放置在其他目录中。
我正在考虑将整个/boot
分区移至 ESP 分区(确保我有足够大的 ESP 分区)。现在,基于 Debian 的发行版(和其他发行版)具有脚本,这些脚本期望将 ESP 目录安装在/boot/efi/
将 EFI 目录硬编码为/boot/efi/EFI
.
所以我看到有两种选择:
- 将 ESP 挂载到
/boot
,然后将挂载绑定/boot/EFI
到/boot/efi/EFI
以满足操作系统脚本的要求。
这需要FAT32 格式分区上的efi
和EFI
目录,因此我对此不太满意。 - 将引导加载程序安装到
/efi/EFI
ESP 分区上,并告诉 BIOS 在其他地方安装引导加载程序(例如:/efi/EFI/ubuntu/grubx64.efi
)
我不知道 EFI 目录是否是规范的强制部分,我是否可能在 BIOS 中遇到问题,或者我是否可以安全地移动它。
答案1
UEFI 引导加载程序根据非易失性存储中 EFI 变量中存储的路径进行搜索。按照惯例,变量包含相对于 ESP 根目录的 EFI 目录下位置的路径,例如/EFI/ubuntu/grubx64.efi
。我认为偏离这个惯例不是一个好主意。固件(“BIOS”)不关心 ESP 在 Linux 上安装在什么位置,或者是否安装。例如,ESP可以挂载在 上/boot
,它结合了传统Linux/boot
目录和ESP。这意味着/boot
是 FAT32,这是可能的,但可能不是最佳选择:如果某些发行版无法在/boot
. ESP 也可以安装在 上/boot/esp
,其中/boot
可以是单独的引导分区,也可以是根分区。
为了满足/boot/efi/EFI
操作系统脚本的要求,您可以将 ESP 挂载到 上/boot/esp
,或者您也可以将 ESP 挂载到 上/efi
,然后创建一个/boot/efi
指向 的符号链接/efi
。