引导加载程序可以放置在 ESP 分区上的 EFI 目录之外吗?

引导加载程序可以放置在 ESP 分区上的 EFI 目录之外吗?

EFI 目录是 EFI 标准的强制部分还是可以将引导加载程序放置在其他目录中。

我正在考虑将整个/boot分区移至 ESP 分区(确保我有足够大的 ESP 分区)。现在,基于 Debian 的发行版(和其他发行版)具有脚本,这些脚本期望将 ESP 目录安装在/boot/efi/将 EFI 目录硬编码为/boot/efi/EFI.

所以我看到有两种选择:

  • 将 ESP 挂载到/boot,然后将挂载绑定/boot/EFI/boot/efi/EFI以满足操作系统脚本的要求。
    这需要FAT32 格式分区上的efiEFI目录,因此我对此不太满意。
  • 将引导加载程序安装到/efi/EFIESP 分区上,并告诉 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

相关内容