在 Ubuntu 和其他几个发行版中,EFI 分区安装于/boot/efi
。
据我所知,EFI 分区是在 OS rootfs(/
)之前读取的。那么在内核加载和安装之后/
,我们还需要 EFI 分区做什么?理论上,初始安装后您不需要/boot/efi
再访问它,因为它只包含 .efi 二进制文件...
那么为什么要安装它呢?从设计角度来看,自动安装包含您不经常访问的敏感文件的分区似乎不是一件明智的事情……
编辑:
grub.cfg
一些较新的系统可能在其 efi 分区中包含。请参阅此错误报告,虽然我的 16.04LTS 不是这种情况。因此,对于配置文件位于 ESP 上的系统,挂载它更有意义。但是人们需要多久运行一次update-grub
,并且脚本不能挂载它并在更新后再次卸载它吗?
答案1
在各种情况下可能需要访问 ESP 的原因有多种:
/boot/efi/EFI/ubuntu/grubx64.efi
—— 这是 EFI GRUB 2 二进制文件,如果 GRUB 包更新,则必须替换它。/boot/efi/EFI/ubuntu/grub.cfg
-- 这是一个 GRUB 配置文件,它的作用很少;主要是加载/boot/grub/grub.cfg
。进行此重定向是为了为安全启动系统启用“钩子”;如果没有安全启动,grubx64.efi
二进制文件可以在本地构建并直接指向/boot/grub/grub.cfg
;但由于 的位置/boot/grub/grub.cfg
(从 ESP 的角度来看)因系统而异,因此将grub.cfg
文件放在 ESP 上对于安全启动是必要的,而安全启动不允许grubx64.efi
在本地构建。恕我直言,将主要grub.cfg
和其他 GRUB 支持文件放在 ESP 上更有意义,但负责此工作的开发人员选择了更为保守的方法,相对于基于 BIOS 的系统而言。无论如何,grub.cfg
ESP 上的 很少(如果有的话)会更新;但在某些时候这可能是必要的,特别是如果 GRUB Debian 软件包更新。/boot/efi/EFI/ubuntu/shimx64.efi
-- 这是 Shim 二进制文件,是安全启动功能所必需的。与 GRUB 2 二进制文件一样,它可能通过 Debian 软件包更新进行更新,但不是软件包shim-signed
。/boot/efi/EFI/ubuntu/MokManager.efi
-- 这是 MokManager 二进制文件,它是一个 Shim 支持工具。与 Shim 一样,它可能会在软件包更新中更新。/boot/efi/EFI/ubuntu/fwupx64.efi
-- 这是一个帮助自动更新基于 EFI 的计算机上的固件的工具。与前面的 EFI 二进制文件一样,它可能通过 Debian 软件包更新进行更新。- EFI 固件文件——更新固件可能需要将固件文件复制到 ESP。这可能是一个手动过程,也可能是使用 Linux
fwupdate
二进制文件和匹配的fwupx64.efi
EFI 二进制文件至少部分自动化的过程。(不过,我不能 100% 肯定后者需要将文件写入 ESP。它相当新,目前文档很少。) - 其他 EFI 相关工具——像我的rEFInd 启动管理器并且可能需要将其他非标准 EFI 启动管理器和工具安装到 ESP。可能需要安装的工具数量非常多,但大多数都是外来工具,因此受影响的系统数量很少。
- 手动配置文件调整——如果你想重新配置引导加载程序,你可能需要读取 ESP 上的配置文件,编辑它,然后保存编辑后的文件。为此,只需检查该配置要求安装 ESP(尽管它可以是只读安装)。
- 系统信息工具--诸如启动信息脚本读取 ESP 上的配置文件,以便生成有关系统配置情况的报告。即使 ESP 未安装,启动信息脚本也可能安装 ESP 以执行其工作,但我对此并不 100% 肯定。可能还有其他工具假设 ESP 已安装,如果不满足此假设,它们的功能就会降低。
总而言之,操作系统本身或您可能出于很多原因想要或需要读取或写入 ESP。尽管如此,这些原因数量很少,因此临时挂载 ESP 并在完成后卸载它的机制可能会很有用。当然,Debian 软件包安装脚本可以完成这项工作,例如,修改 ESP 上配置文件的自动化工具也可以。不过,据我所知,更改 ESP 的挂载状态还不太可能实现。
请注意,默认情况下,ESP 的安装权限相当严格。最近(可能从 15.10 或 16.04 开始——我不确定具体时间),安装权限已更改为只能root
从 读取/boot/efi
。即使在那之前,也root
只能写入 ESP,尽管读取权限比较宽松。由于root
可以安装分区,因此此时不安装 ESP 的安全优势很小,尽管这样做的好处是,由于错误、电源故障等原因导致文件系统损坏 ESP 的风险较小。
答案2
/boot/efi
你是对的:在默认设置中不需要安装 ESP (即grub 2)
更新 grub更新grub.cfg
在于,/boot/grub
如果未安装 ESP,则 grub 的配置可以毫无问题地更新。
我之前安装的时候已经有好几年没有安装它了,但是没有任何问题。
如果愿意的话,你可以在启动时通过不安装它来获得一些微秒的时间;-)