![Debian SecureBoot 与 shim 解决 MSI 困难](https://linux22.com/image/222888/Debian%20SecureBoot%20%E4%B8%8E%20shim%20%E8%A7%A3%E5%86%B3%20MSI%20%E5%9B%B0%E9%9A%BE.png)
我很难让 Debian 12 通过 secureboot 启动 UEFI。
这是在 MSI Meg Z490 Unify 主板上。 GPU是AMD WX3200。在标准模式下启用安全启动并加载默认密钥。测试是在 GPU 断开连接并使用第 10 代 i3 的板载显卡的情况下完成的
我最初安装 Debian 时启用了 Secureboot,但成功安装并重新启动后,BIOS 屏幕显示一片空白。我认为这是因为主板拒绝执行引导加载程序,因为它没有签名?所以我不确定为什么默认的 Debian 安装(应该支持 Secureboot)在全新安装中不起作用。我禁用了 Secureboot,并正常启动到系统。efibootmgr -v
显示它正在使用shimx64.efi
,并且安装了 shim 签名的软件包。
然后,我尝试重新启用 secureboot 并将其添加shimx64.efi
到 UEFI 允许的签名中,然后进入 GRUB 屏幕,当它尝试加载内核时,我得到了一个shim_lock protocol not found
.这也很奇怪,因为 shim 签名的包已安装并efibootmgr -v
已shimx64.efi
表明。
然后,我尝试了几种不同的设置组合,标准模式的默认键、自定义模式的默认键、添加和不添加签名shimx64.efi
、添加shimx64.efi
和grubx64.efi
签名、删除黑名单签名。
但关于我的问题,MSI BIOS 安全启动部分在自定义模式下有一个完整的关键部分,允许添加您自己的平台密钥、允许的签名等。
为什么我不能将 Debian UEFI 签名 CA 证书上传到允许的签名和/或平台密钥并直接启动 GRUB?
我确实尝试过将 Debian CA 加载到允许的签名中。密钥成功添加到变量,并显示已保存到 nvram,但在启动 GRUB 后(这应该是从系统中删除 shim 后,使用 验证efibootmgr -v
),它与 相同的错误shim_lock procotol not found
。
这是否意味着 SecureBoot UEFI 实际上加载了未经 Microsoft 签名的引导加载程序?删除 shim 签名的软件包后,我是否需要对内核映像执行任何操作(系统在没有 shim 和安全启动关闭的情况下正常启动)?
我知道这不起作用,但为什么不呢?如果不使用密钥来验证引导加载程序,为什么还要向 secureboot 添加密钥呢?
还有一个附带问题,有人对让垫片与这款 MSI 主板配合使用有什么建议吗?
新发现:
经过一番修改后,结果是从 secureboot 部分删除所有密钥,只将 Debians 密钥添加到平台密钥和密钥交换密钥(不确定是哪一个,同时添加)会导致无限电源循环,其中PC 甚至无法进入 BIOS 屏幕(必须重置 cmos 才能获得控制)。