在Arch Linux 配置 EFI 系统分区的说明中,是这样写的:
将 ESP 挂载到 /boot。这是从 UEFI 直接引导 EFISTUB 内核时的首选方法。
我不明白如何在系统尚未启动时挂载分区。这似乎是先有鸡还是先有蛋的问题。您需要为 UEFI 安装分区以使用它来启动 Linux,但在启动 Linux 之前我无法安装任何东西。请注意,说明特别暗示 EFISTUB 可以从 EFI 分区启动,而无需将启动文件复制 到 EFI 分区:
如果您不使用#Mount the partition 中的一种简单方法,则需要将启动文件复制到 ESP
这部分说明试图这样说:
“如果你选择 EFISTUB 作为你的引导方式,那么你最好做两件事:
/boot
Arch-to-be-installed 中的位置,然后再运行其余的安装过程,这样vmlinuz-*
通常结束的(和可选的 initramfs)文件/boot
将自动转到 ESP无需进一步的手动操作。/etc/fstab
(或您选择的任何替代机制)自动将 ESP 挂载到/boot
,以便任何内核更新也将自动结束在 ESP 上。如果你选择做其他事情,你有责任做任何必要的事情来使必要的文件最终出现在 ESP 上。”
显然,Arch 的“推荐程序”实际上违反了将任何操作系统特定文件置于
\EFI\<OS name>
ESP 下的 UEFI 标准,而是将配备 EFISTUB 的内核(以及可选的 initramfs 文件)置于 ESP 的根目录。但是,它最大限度地减少了由于固件 ESP 文件系统驱动程序意外区分大小写而导致的错误的可能性。所以我可以理解他们为什么做出这样的选择。如果您想在 ESP 上使用 UEFI 标准路径,和/或将 ESP 安装到某个不同的位置,或者默认情况下保持卸载状态,那么“替代安装点”一章将介绍一些您可以使用的技术。这些选项以列表的形式呈现,包括绑定安装和各种事件系统和/或脚本挂钩,但没有明确描述为什么每个解决方案适用于特定情况。
基本上,在撰写本文时存在的EFI 系统分区上的 Arch wiki 页面对于已经了解 UEFI 和 EFISTUB 如何工作的人来说非常有用,但对于不一定有线索的初学者来说非常混乱做什么以及各种事情如何相互依赖。我对此并不感到惊讶:仅仅列出在某个主题下适用的一些技巧要比编写介绍新概念和它们之间依赖关系的好文档容易得多。