如何在操作系统启动之前挂载分区?

如何在操作系统启动之前挂载分区?

在里面在 Arch Linux 中配置 EFI 系统分区的说明,其内容如下:

将 ESP 安装到 /boot。这是从 UEFI 直接引导 EFISTUB 内核时的首选方法。

我不明白如何在系统尚未启动时挂载分区。这似乎是一个先有鸡还是先有蛋的问题。您需要挂载 UEFI 分区才能使用它来引导 Linux,但在 Linux 引导之前我无法挂载任何内容。请注意,该说明特别暗示 EFISTUB 可以从 EFI 分区启动无需复制启动文件 到EFI分区:

如果您不使用 #Mount 分区中的简单方法之一,则需要将引导文件复制到 ESP

答案1

将 ESP 安装到 /boot。这是从 UEFI 直接引导 EFISTUB 内核时的首选方法。

这部分说明试图这样说:


“如果您选择 EFISTUB 作为启动方法,那么您最好应该做两件事:

  • 安装时:/boot将 ESP 安装到Arch 中要安装的位置在运行其余安装过程之前,这样vmlinuz-*通常最终进入的文件(以及可选的 initramfs)/boot将自动转到 ESP,无需进一步的手动操作。
  • 当核心 Arch 安装完成时:配置/etc/fstab(或您选择的任何替代机制)自动将 ESP 安装到/boot,以便任何内核更新也将自动结束在 ESP 上。

如果您选择做其他事情,您将有责任采取一切必要措施使必要的文件最终出现在 ESP 上。”


显然,Arch 的“推荐过程”实际上违反了将任何特定于操作系统的文件放置在\EFI\<OS name>ESP 中的 UEFI 标准,而是将配备 EFISTUB 的内核(以及可选的 initramfs 文件)放置到 ESP 的根目录中。但是,它最大限度地减少了因固件 ESP 文件系统驱动程序意外区分大小写而导致错误的可能性。所以我明白他们为什么做出这样的选择。

然后,“替代安装点”一章介绍了如果您想在 ESP 上使用 UEFI 标准路径,和/或将 ESP 安装到某个不同位置,或默认情况下保持卸载状态,则可以使用多种技术。这些选项以列表的形式呈现,包括绑定安装和各种事件系统和/或脚本挂钩,但没有明确描述为什么每个解决方案适用于特定情况。

基本上,EFI 系统分区上的 Arch wiki 页面在撰写本文时,它对于已经了解 UEFI 和 EFISTUB 如何工作的人来说非常有用,但对于初学者来说非常困惑,因为他们不一定知道要做什么以及各种事物如何依赖于每个事物其他。我对此并不感到惊讶:仅仅列出一些适用于某个主题的技巧比编写一个引入新概念和它们之间的依赖关系的好文档要容易得多。

相关内容