启用安全启动时,GRUB 中出现错误“未找到 shim_lock 协议”

启用安全启动时,GRUB 中出现错误“未找到 shim_lock 协议”

我有一个双启动系统,在 GRUB 菜单中选择任何操作系统后出现以下错误:

error: shim_lock protocol not found.
error: you need to load the kernel first.

Press any key to continue...

按任意键返回 GRUB,依此类推。

经过短暂的调查,我发现这shim是一个涉及安全启动 (SB) 过程的软件,因此,我的第一反应是在 UEFI 中禁用 SB,这消除了错误并允许任何操作系统启动,因此它可以被看作是一个“解决方案”但是,由于 Ubuntu 已准备好运行 SB,因此没有必要禁用 SB,而且它是不容忽视的一层安全保护……

如何在保持 SB 激活的同时修复此错误?

问题已关闭?

即使有人表示遇到了同样的问题,这个问题仍然被关闭,这是完全不可接受的在 Ubuntu 中。这个问题需要重新提出,因为这个问题可能有更多的解决方案。

答案1

我在 Acer Aspire E5-573G 上安装 Ubuntu 23.04 时遇到了同样的问题。为了解决这个问题,我F2在启动时反复按下进入 BIOS 菜单,在 SECURITY 选项卡中,我设置了超级用户密码,以便能够访问 SECURITY 选项卡中的其他条目。设置密码后,我转到 SELECT A UEFI FILE AS TRUSTED FOR EXECUTING,并选择了 HDD0、EFI、UBUNTU、SHIMX64.EFI。作为名称,您可以写 Ubuntu 或其他内容,它将是 Grub 中显示的名称以启动 Ubuntu。最后,从 BOOT 选项卡中,使用向下箭头转到 EFI FILE BOOT 0: Ubuntu(或您刚刚给出的任何其他名称),然后按将F6其移动到第一个位置。现在保存您的 BIOS 更改并退出。重新启动后,Grub 应该会照常出现。

答案2

幸运的是,这个问题的解决方案非常简单:

  1. 在 UEFI 中禁用 SB 以便能够启动操作系统(在我的情况下是 Linux Mint)。
  2. 安装shim-signed软件包:sudo apt install shim-signed
  3. 在 UEFI 中启用 SB。
  4. 验证 SB 是否已启用:mokutil --sb-statedmesg | grep secureboot

注 1:我保证此解决方案没有受到我尝试过的其他方法的影响,因为我在尝试之前恢复了对 Linux Mint 进行的完整备份(阅读问题)。

注 2:显然,在 UEFI 中启用或禁用 SB 在不同主板制造商之间可能有很大差异,因此这里不再解释。

注3:这是解决方案的来源,但需要注意的是,我没有尝试也不打算尝试那里的一切,因为我的 SB 现在正在工作。

相关内容