Ubuntu 15.04 安全启动问题

Ubuntu 15.04 安全启动问题

我有一个装有 Ubuntu 15.04 和 Windows 10 双启动的系统。安全启动开启后,一切都运行正常。但现在它突然停止工作,Ubuntu 无法在安全启动开启的情况下启动(通过 shimx64),当我选择该选项时,它只会将我重定向到 Windows。不过,我可以关闭安全启动,然后从 grubx64 启动选项启动。shimx64 似乎出了问题,但我不确定。

这是我执行的输出sudo efibootmgr -v

BootCurrent: 000D
Timeout: 0 seconds
BootOrder: 0002,0003,000C,000D,0000,0001
Boot0000* P0: ST1000DM003-1ER162            BIOS(11,0,00)
Boot0001* P4: PLDS DVD+/-RW DH-16AES        BIOS(13,0,00)
Boot0002* ubuntu    HD(1,800,fa000,2c4c3f52-0207-45e5-bd9b-cc48a2e27dcf)File(\EFI\ubuntu\shimx64.efi)
Boot0003* Windows Boot Manager  HD(1,800,fa000,2c4c3f52-0207-45e5-bd9b-cc48a2e27dcf)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.}...1...............
Boot000C* UEFI OS   HD(1,800,fa000,2c4c3f52-0207-45e5-bd9b-cc48a2e27dcf)File(\EFI\BOOT\BOOTX64.EFI)
Boot000D* ubuntu    HD(1,800,fa000,2c4c3f52-0207-45e5-bd9b-cc48a2e27dcf)File(\EFI\Ubuntu\grubx64.efi)

我注意到其中一个是\EFI\Ubuntu\grubx64.efi,另一个是,\EFI\ubuntu\shimx64.efi所以 是大写的“Ubuntu”, 是grubx64.efi小写的“ubuntu” shimx64.efi。我不确定这是否会引起问题。所以我做了以下事情:

$ cd /boot/efi/EFI/
$ ls
Boot  Microsoft  ubuntu
$ cd ubuntu
$ ls
grub.cfg  grubx64.efi  MokManager.efi  shimx64.efi

所以我看到只有一个“ubuntu”目录,没有“Ubuntu”目录。“ubuntu”目录看起来有shimx64.efi启动grubx64.efi所需的一切。

最后我sudo boot-repair选择“创建启动信息摘要”,这里是链接:http://paste.ubuntu.com/12300679/。我注意到/EFI/ubuntu/shimx64.efisda1 的“启动文件”下没有列出。我不确定是什么原因导致它停止工作,但可能是因为更新。任何帮助都非常感谢。

答案1

我的直觉是,您在 Shim 副本上遇到了签名问题。我以前遇到过一些 EFI 的问题;它们有时很挑剔,不喜欢在其他计算机上运行正常的签名二进制文件。具体来说,我在华硕 P8H77-I 主板上看到了这个问题——但其他品牌和型号也可能遇到同样的问题。

如果我是对的,你基本上有两个选择:

  • 禁用安全启动。
  • 找到另一个(可能是较旧的) Shim 程序并使用它。

第一个选项非常容易理解,您显然已经发现了它。对于第二个选项,可能至少有十几个带有 Microsoft 签名的 Shim 二进制文件。有一个从未给我带来麻烦但已经过时了的选项是Matthew Garrett 签名的 Shim 0.2。要使用它,您应该用您找到的存档中的shimx64.efi二进制文件覆盖 和MokManager.efi中的二进制文件/boot/efi/EFI/ubuntu。重新启动时,您可能会看到一个丑陋的文本模式文件选择器 (MokManager),它使 Apple II 的用户界面看起来很复杂。使用它来选择 Canonical 证书文件。此文件在某些​​ Ubuntu 软件包或其他软件包中可用,但我不记得是哪一个。为方便起见,我为自己的 rEFInd 程序收集了几个;请参阅这里对于单个文件。您需要该canonical-uefi-ca.der文件,并且它应该存储在 ESP 上(/boot/efi在 Ubuntu 下),以便 MokManager 可以读取它。一旦您输入 Canonical 签名文件并退出 MokManager,系统可能会挂起、重新启动、启动到 Windows 或启动到 GRUB。不过,下次启动时,一切都应该正常工作。

使用较旧的 Ubuntu Shim 软件包可能会更容易一些,因为您不必使用 MokManager。您需要找到一个合适的软件包,安装它,并可能复制grubx64.efiMokManager.efi文件,如刚才所述。不过,一定要将这些文件的副本保存在安全的地方;如果我的假设是正确的,软件包管理器可能会尝试升级 Shim 并用损坏的版本替换您的文件。

您观察到的大小写差异不太可能很重要。ESP(安装在/boot/efiUbuntu 中)使用 FAT,这是一种保留大小写但不区分大小写的文件系统。换句话说,ubuntuUbuntu与 FAT 相同。另一方面,也许您的固件存在与安全启动设置交互的大小写敏感错误。这似乎有点牵强,但奇怪的事情确实发生过。

相关内容