垫片签名错误

垫片签名错误

我尝试在第二个驱动器上安装 Debian 12.4.0,但第一个驱动器上已经安装了 Kubuntu 23.10。我检查过 兼容性使用实时版本,安装运行良好。不幸的是,我无法启动 Debian

 error: bad shim signature
 error: you need to load the kernel first

这个问题有解决办法吗?

Debian 安装程序不会在第一张磁盘上创建 Kubuntu 安装的 Grub 菜单项,因此需要使用 Kubuntu 中的 update-grub 命令。

答案1

对于安全启动,BIOS 有一组嵌入式证书,用于检查启动过程中的每一项。如果某项未由证书签名,则不会加载,并且启动过程会在此点停止。

截至目前,所有安全启动的根证书均为Microsoft's Microsoft UEFI CA 2011(将于 2026 年到期,然后被替换Microsoft UEFI CA 2023),该证书存在于所有在购买时启用了安全启动的 BIOS 中。

对于安全启动,Linux 有一个第一阶段的引导加载程序,称为shim。该 shim 的代码在所有 Linux 版本中共享,但每个 Linux 发行版都会创建一个 shim 二进制文件,其中嵌入了他们自己的签名密钥证书,并由 Microsoft 使用 对其进行签名(使用Microsoft UEFI CA 2011),这样就可以让签名的 实例shim通过安全启动过程进行启动。

由于嵌入了证书,这些签名的shim二进制文件无法在发行版之间共享。Kubuntu 的 shim 二进制文件(即嵌入了 Ubuntu 证书的 shim)无法将 Debian 签名的内核识别为有效,反之亦然。

为了能够进行双启动,您需要分别拥有两者的 shim、grub 和内核链。这也意味着您不能拥有一个通用的共享 grub 配置。

相关内容