在继续操作之前,我不想禁用安全启动选项。我需要一个解决方案,而不是一个解决方法。
我有一个使用 dnsmasq 和 dnsmasq 内置 tftp 的简单设置,它为我提供了一个 PXE 服务器。我正在尝试启动 Ubuntu 22.04。
设置:
我关注了Ubuntu 官方教程。
最初,我遇到了 bootx64.efi 问题,因为 NUC 报告了启动违规,但诀窍基本上是使用 bootx64.efi.dualsigned 来创建 bootx64.efi。这是 bootx64 上的 sbverify 的结果。
这解决了启动策略违规的问题,pxe 启动过程成功启动了 grub。我不知道如何解决,因为 sbverify 在此文件上失败了。
在我从 grub 中选择要运行的 ISO 后,我收到以下错误消息
我不知道这是 grub 的问题还是 vmlinuz 的实际签名的问题。
在不关闭安全启动的情况下,如何使用正确和更新的签名或 grubx64.efi 对内核映像进行签名以使其正常工作?有没有办法用 sbattach 命令来做到这一点(我不需要实际的公共证书吗)我在哪里可以找到这个证书?
答案1
- 您的问题的答案就在
sbverify --list
您运行的各种命令的输出中。 - 如命令的输出所示
vmlinuz
,它是使用Canonical Ltd. Secure Boot Signing (2017)
- grub 加载程序使用
Canonical Ltd. Secure Boot Signing (2022 v1)
- 2022 年的某个时候,Canonical 开始使用
Canonical Ltd. Secure Boot Signing (2022)
来签名密钥并撤销了该Canonical Ltd. Secure Boot Signing (2017)
密钥。这最终被添加到 DBX(Secure Boot Forbidden Signature Database
)中(它是 BIOS 中安全启动存储的一部分,并定期更新)。 - 要修复此问题,您只需将通过 tftp 提供的内核(和匹配的 initrd)更新为使用 签名的内核
Canonical Ltd. Secure Boot Signing (2022)
。