我正在尝试在 KDE Neon 系统上设置全盘加密(当然,要遵循Arch Wiki 指南 中关于该主题的内容)。有关设置的一些相关信息:
- 该系统有两个顶级卷:
- EFI 系统分区,与 ESP 一样正常
- 单个 LUKS2 卷,其中嵌套了 LVM,托管整个系统,包括
/boot
.
- 系统使用 GRUB 2.06,其中包括有限的 LUKS2 支持。LUKS2 卷设置为与此版本的 GRUB 兼容。
- 安全启动目前已禁用,但将来可能会启用。
按照指南,我有一个基本上按预期工作的系统:GRUB 要求输入驱动器密码,如果输入了正确的密码,则完成其引导顺序并加载操作系统,然后引导到可用的图形会话。
我唯一的问题是grub-install
运行的时刻(由用户手动运行,或者重要的是,apt
在安装 GRUB 更新时自动运行),我构建的支持此设置的 GRUB 手动 EFI 二进制文件被 EFI 二进制文件覆盖不支持此设置(具体来说,正如上面链接的后一篇 Arch Wiki 文章所述,它没有该luks2
模块)。虽然我可以(并且确实)有一个脚本来重建和安装正确的 GRUB 二进制文件,但我希望grub-install
第一次就正确地构建这个二进制文件。我可以使用某种挂钩来控制保存到 ESP 的 EFI 二进制文件吗?
使用
dpkg-divert
,您可以告诉包管理将包转移grub-install
到非标准位置:这移动
grub-install
到/usr/sbin/grub-install.divert
,并且任何时候 GRUB 被包管理更新,更新的文件将被放置到更改的位置。这将允许您将包装器脚本放入/usr/sbin/grub-install
.假设您只需要
grub-install
使用自定义选项调用--modules=
,包装脚本可能是这样的:您可能还想提交一份“愿望清单”优先级错误报告,以建议添加一个包配置设置,该设置允许将自定义选项(或您的情况需要的任何内容)注入
grub-install
包更新将发生的自动化。如果认为这太复杂,则替代方案可能是包配置选项以禁用
grub-install
包更新的自动运行。已经存在 debconf 选项grub2/force_efi_extra_removable
(default=false) 和grub2/update_nvram
(default=true) 都可以修改 automaticgrub-install
的行为,因此有先例。