使用 grub-mkstandalone 制作的 grubx64.efi 无法在 SecureBoot 下启动

使用 grub-mkstandalone 制作的 grubx64.efi 无法在 SecureBoot 下启动

使用带有 GRUB2 2.04、Shim 15.7 的 Ubuntu 20.4(我认为)

我一直在关注 Simon Ruderich 的指南“使用 GRUB 2 和签名的 Linux 映像和 initrd 实现安全启动”

当使用 shimx64.efi 启动时,我看到“验证失败:(0x1A)安全违规”错误消息。

直接启动 grubx64.efi 时,我看到“未找到 shim_lock 协议”错误。

如果我禁用 SecureBoot,无论是从 UEFI 固件接口(启动期间按 F2)还是使用mokutil --disable-validationEFI 启动都可以。

我已将我的 PK、KEK 和 db 添加到 UEFI 固件,并且我可以通过删除、添加或尝试启动用其他密钥签名的其他 EFI 来看到它是否按预期工作。

我已经使用 MokManager 界面来注册我的数据库证书,因为这是 grubx64.efi 和 shimx64.efi 签名的。

但我无法再进一步……

我目前正在考虑构建自己的垫片https://github.com/rhboot/shim

我将非常感激有关如何解决这个问题的新想法。

我试图避免的问题是未签名的 /boot/grub/grub.cfg 和 initrd 的漏洞

非常感谢

**编辑我很高兴看到一些“乐于助人的人”没有发表评论就投了反对票,谢谢你 xx

答案1

我找到的解决方案是升级到 Ubuntu 22.04,因为它具有 GRUB2.06,它具有方便的--disable-shim-lock功能。

禁用 shim lock 的 grubx64.efi 可以直接启动,因为它由我自己的 db.cert 签名,该 db.cert 安装在 UEFI 固件中。这不再显示“未找到 shim_lock 协议”错误。

然后,独立的 GRUB 将检查 GPG 签名的第 2 阶段启动文件,从头到尾一切都是安全的

相关内容