安全启动故障排除

安全启动故障排除

当尝试在启用 UEFI 安全启动的情况下启动 Ubuntu 时,加载 GRUB 时出现以下错误:

启动失败:未找到正确的数字签名。
所选启动设备上的某个文件被安全启动功能拒绝。

启动失败:图片来源:http://www.top-password.com/blog/fix-boot-failure-a-proper-digital-signature-was-not-found/

从 USB 启动时,安全启动可以正常工作,无论是 Ubuntu 14.04.3 还是 Ubuntu 16.04。

我该如何开始解决此问题?

更多信息

相关安装的软件包:

  • fwupdate-signed 1.11+0.5-2ubuntu4
  • grub-efi-amd64-signed 1.66+2.02~beta2-36ubuntu3
  • linux-signed-generic 4.4.0.22.23
  • shim-signed 1.12+0.8-0ubuntu2

答案1

简单的解决方案是禁用安全启动,如我的这个页面。可以肯定的是,最好在启用安全启动的情况下运行,但如果该功能不能按设计运行,那就是一个负担。

为了进行更彻底的诊断,我建议您首先通过键入来检查您的 EFI 启动项sudo efibootmgr -v,如下所示:

$ sudo efibootmgr -v
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000,0003,0007,0001
Boot0000* rEFInd Boot Manager   HD(2,1f4800,82000,5f6b4992-fcfe-4a2c-9e67-98b0a30dfe7d)File(\EFI\refind\refind_x64.efi)
Boot0001* Lenovo Recovery System    HD(3,276800,1f4000,de3b7563-97f5-48c6-ab7f-2f5d6d57c644)File(\EFI\Microsoft\Boot\LrsBootMgr.efi)RC
Boot0003* ubuntu    HD(2,1f4800,82000,5f6b4992-fcfe-4a2c-9e67-98b0a30dfe7d)File(\EFI\ubuntu\shimx64.efi)RC
Boot0007* Windows Boot Manager  HD(2,1f4800,82000,5f6b4992-fcfe-4a2c-9e67-98b0a30dfe7d)File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................

检查该BootOrder行并按顺序检查每个指定的条目。例如,在此示例中,0000是第一个,并Boot0000启动 rEFInd。您应该更详细地检查的是文件启动的文件,例如\EFI\refind\refind_x64.efi本例中的Boot0000。在标准 Ubuntu 安全启动的情况下,文件应该是shimx64.efi,当然本例中的情况并非如此Boot0000——但它对于此示例的下一个启动项而言为 true Boot0003

此示例可能会产生安全启动警告,如您在大多数计算机上描述的一样,但在该警告之后,GRUB 和 Ubuntu 可能会启动,因为当Boot0000失败时,系统将继续Boot0003,这应该成功。这种情况可能发生在你身上——但它可能grubx64.efi先启动,然后无法继续或shimx64.efi可能没有条目。如果是这种情况,你可以使用选项调整启动顺序-oefibootmgr完全创建一个新条目。不过,细节取决于你看到的内容efibootmgr -v以及硬盘上实际安装的内容。

如果你的efibootmgr -v输出显示计算机应该shimx64.efi首先启动,那么我建议你将该文件与EFI/BOOT/bootx64.efiUbuntu 安装介质上的文件进行比较启动。使用 检查它们的文件大小,ls -l并检查它们是否与 相同diff;例如:

diff /mnt/cd-media/EFI/BOOT/bootx64.efi /mnt/esp/EFI/ubuntu/shimx64.efi

(当然,挂载点可能会有所不同。)这些文件应该相同,diff表示没有输出。如果它们不相同,您可以尝试用安装介质中的文件覆盖shimx64.efi硬盘上的bootx64.efi。如果由于软件包升级导致两个文件不相同,则可能是提交错误报告。但是,它们可能由于其他原因而不相同,例如磁盘损坏或复制文件时出现(非常罕见的)错误。

如果文件相同,但外部介质可以启动而硬盘不能,那么这可能意味着您的 EFI 存在错误。您可以在制造商的网站上查找更新。(他们可能称之为“BIOS 更新”,尽管它实际上不是 BIOS。)如果这没有帮助,您可以尝试向制造商提交错误报告。

相关内容