我有一个可以正常工作的双启动系统,Kubuntu 15.04 和 Windows 8.1 - 在 3-4 周前更新后,启用安全模式后 Ubuntu 无法启动。我收到一条错误消息“检测到无效签名。检查设置中的安全启动策略” - 红色。点击确定后直接启动 Windows。禁用安全启动后即可启动 ubuntu。
我尝试过从实时 USB 进行引导修复,尝试过使用 efibootmgr 添加条目,指向 EFI/ubuntu/shimx64.efi,在 bios 菜单中重新加载了按键,但没成功。PC 是华硕 bu401lg。
尽管关于这个主题的帖子数量惊人,但我还是陷入困境!
任何帮助,将不胜感激,
----- result of efibootmgr -v
BootCurrent: 0000
Timeout: 2 seconds
BootOrder: 0000,0007,000B,000C
Boot0000* ubuntu HD(1,800,32000,13b34077-a16e-4891-072-3ba610c5cadf)File(\EFI\ubuntu\grubx64.efi)
Boot0007* Windows Boot Manager HD(1,800,32000,13b34077-a16e-4891-b072-3ba610c5cadf)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.}...i................
Boot000B* UEFI: VerbatimSTORE N GO 5.00 ACPI(a0341d0,0)PCI(14,0)USB(3,0)HD(1,800,e8f800,45a9c3de)..BO
Boot000C* ubuntu HD(1,800,32000,13b34077-a16e-4891-b072-3ba610c5cadf)File(\EFI\Ubuntu\grubx64.efi)
答案1
某些计算机的 EFI 不接受某些 EFI 二进制文件上的安全启动签名。我在我的 ASUS P8H77-I 主板上看到了这个问题。基本上,拿两个签名的二进制文件(例如shim1.efi
和shim2.efi
),它们都被另一个主板识别为正确签名。在我的 ASUS 上,只有一个二进制文件可能被识别为有效;另一个可能被拒绝。不用说,这非常令人沮丧。我不能确定这是否是固件中的错误,或者二进制文件的构建或签名方式是否存在问题,以及某些 EFI 是否让错误的签名通过。我还没有看到使用 TianoCore EDK2 工具包构建的二进制文件存在问题,但我看到过使用 GNU-EFI 构建的二进制文件存在问题。(据我所知,Shim 始终使用 GNU-EFI 构建。)
无论如何,如果这是问题所在,解决方案是恢复到已知可以正常工作的 Shim 二进制文件。如果您没有旧 Shim 的副本,请尝试以下方法:
http://www.codon.org.uk/~mjg59/shim-signed/
它很旧,但对我来说它很可靠。如果你使用它,你可能必须通过 MokManager 注册 Ubuntu 的密钥。密钥在 Ubuntu 软件包中可用,但我记不清是哪一个了。我在我的 rEFInd 项目中收集了一堆密钥;你可以在这里逐个下载它们:
https://sourceforge.net/p/refind/code/ci/master/tree/keys/
您需要该canonical-uefi-ca.der
文件来启动 Ubuntu 版本的 GRUB。
如果你尝试更换 Shim,我建议你备份旧的和关联的 MokManager 二进制文件,然后复制新的和将其关联的 MokManager 二进制文件覆盖原始文件名。(这可能涉及重命名shimx64.efi
或shim.efi
反之亦然。)通常,Ubuntu 安装的 Shim 将位于 中/boot/efi/EFI/ubuntu/
。
尽管如此,仍有可能存在其他问题,特别是如果您确定您的系统最近没有升级过 Shim。例如,未签名的 GRUB 可能是问题所在。