我在新的 SSD 上全新安装了 14.04。一切运行正常,直到我出于某种我不记得的原因运行了引导修复。现在,当我启动时,我收到以下错误:
Failed to open \EFI\Microsoft\Boot\grubx64.efi - 80000000000000E
Failed to load image
Failed to open \EFI\Microsoft\Boot\MokManager.efi - 80000000000000E
Failed to load image
Failed to open "\EFI\BOOT\fallback.efi": 14
Failed to open \EFI\BOOT\grubx64.efi - 80000000000000E
Failed to load image
Failed to open \EFI\BOOT\MokManager.efi -80000000000000E
Failed to load image
此新硬盘从未安装过 Windows,因此启动修复是否可能添加了这些文件?我可以直接删除它们吗?
启动信息显示以下内容:
Boot files: /EFI/Boot/bootx64.efi /EFI/ubuntu/MokManager.efi
/EFI/ubuntu/grubx64.efi /EFI/ubuntu/shimx64.efi
/EFI/Microsoft/Boot/bootmgfw.efi
/EFI/Microsoft/Boot/bootx64.efi
以下是完整启动信息的链接-http://paste.ubuntu.com/10583113/
我该如何继续?
答案1
启动修复有时会将 GRUB 复制到其他文件名,包括 Windows 通常使用的文件名。
您没有说出现这些错误后是否能够正常启动,但您的 Boot Repair 输出看起来可以;具体来说:
=================== efibootmgr -v
BootCurrent: 0001
Timeout: 0 seconds
BootOrder: 3003,3001,3004,2001,2002
Boot0000* Notebook Hard Drive BIOS(2,500,00)................-.`.......`.A.`........................................
Boot0001* ubuntu HD(1,800,100000,3c6d1212-54d5-4b03-8eb6-680c74425f10)File(EFIubuntushimx64.efi)
Boot0002* Internal CD/DVD ROM Drive BIOS(3,500,00)................-.g.......g.A.g........................................
Boot0003* Windows Boot Manager HD(1,800,100000,3c6d1212-54d5-4b03-8eb6-680c74425f10)File(EFIMicrosoftBootbootmgfw.efi)RC
Boot0004* Ubuntu HD(1,800,100000,3c6d1212-54d5-4b03-8eb6-680c74425f10)File(EFIubuntugrubx64.efi)RC
Boot2001* USB Drive (UEFI) RC
Boot2002* Internal CD/DVD ROM Drive (UEFI) RC
Boot3001* Internal Hard Disk or Solid State Disk RC
Boot3003* Internal Hard Disk or Solid State Disk RC
Boot3004* Internal Hard Disk or Solid State Disk RC
这是 的输出sudo efibootmgr -v
。不要惊慌失措;您可以忽略大多数长而可怕的十六进制数字。请特别注意BootCurrent
和BootOrder
行。该BootCurrent
行告诉您操作系统如何启动——在本例中,通过使用 选项Boot0001
,您可以看到它是针对 Ubuntu 的。BootOrder
但是,该行表示计算机配置为在该选项之前尝试几个其他选项。这些是默认的引导加载程序——通常是EFI/BOOT/bootx64.efi
,但您的计算机完全有可能使用EFI/Microsoft/Boot/bootmgfw.efi
其中一些。我的直觉是 Boot Repair 将 GRUB 复制到了其中一个或两个位置,但在安全启动处于活动状态的情况下,如果没有 Shim ( ) 的帮助,GRUB 将无法启动shimx64.efi
。因此您出现了错误消息,我猜这些消息来自您的固件。
最令人费解的是,你通过Boot0001
(Ubuntu)条目启动,尽管它是不是在BootOrder
列表中。也许您的固件在其他固件均不起作用时从列表中删除,或者也许它实际上在列表中,但efibootmgr
由于某种原因未被报告。
理论上,您应该能够通过在 Linux 中输入以下命令来解决此问题:
sudo efibootmgr -o 1,3003,3001,3004,2001,2002
这会将该BootOrder
行更改为现在的样子,但首先要保留可用的 Ubuntu 条目。我会在删除任何文件之前尝试此操作。但如果这不起作用,请继续改名EFI/BOOT/bootx64.efi
和/或文件EFI/Microsoft/Boot/bootmgfw.efi
,或它们所在的目录。如果重命名这些文件或目录后可以启动,请继续删除它们。如果重命名会使情况变得更糟,您可以使用应急磁盘将它们重命名回其原始名称。
答案2
所以我只需删除 EFI/Microsoft 文件夹即可解决这个问题。我猜是启动修复创建了这个文件夹,但我的 Ubuntu 独有设置不需要它。
注意:在大多数情况下,这不是一个好的解决方法,特别是如果您希望将来能够使用 Windows。在删除此类重要系统文件之前,请确保您知道自己在做什么。