![无法打开 \EFI\Microsoft\Boot\grubx64.efi](https://linux22.com/image/875792/%E6%97%A0%E6%B3%95%E6%89%93%E5%BC%80%20%5CEFI%5CMicrosoft%5CBoot%5Cgrubx64.efi.png)
我有一台预装了 Windows 的笔记本电脑。我把它抹掉了,然后安装了初级linux 发行版。几个月后,我在另一个分区安装了 ubuntu 版本,因此实现了双 linux 启动。
从此以后,我一直无法摆脱启动时出现的这条消息:
Booting in insecure mode
Failed to open \EFI\Microsoft\Boot\grubx64.efi - 80000000000000E
Failed to load image
Failed to open \EFI\Microsoft\Boot\MonkManager.efi - 80000000000000E
Failed to load image
我检查了 Efi 分区,它看起来像:
EFI/
BOOT/
bootx64.efi
bootx64.efi.grb
Microsoft/
Boot/
bootmgfw.efi
bootmgfw.efi.grb
bootx64.efi
bootx64.efi.grb
ubuntu/
grub.cfg
grub64.efi
MokManager.efi
shimx64.efi
我已使用过多次启动修复但并未解决问题。
提到我能够启动这样做:
- 启动时按 ESC 显示 BIOS 选项
- 按 F9:启动设备选项
- 它通过手动选择以下之一来启动:
- ubuntu(由于某些原因,此选项重复)
- 初级
- 它无法启动并显示上述这些选项的错误:
- 操作系统启动管理器
- EFI HDD 设备
- rEFInd 启动管理器(也许我很久以前就安装过它,不记得了)
- 从 EFI 文件启动(这向我显示:
NO VOLUME LABEL.
通过单击,我可以导航到上面描述的 efi 分区,并查看 Microsoft、ubuntu 和 boot 的不同目录 - 笔记本硬盘(这个启动grub,我不知道如何使用它)
我离开 Linux 已经有一段时间了,有没有什么办法可以解决这个问题?我原本打算清理机器,所以如果有解决方案可以删除我所有的安装,那我就可以接受(但如果不需要这样做就更好了)。
我很清楚这一点类似问题但对我没什么帮助,也许这是一个不同的问题。
编辑:
从 Live CD启动sudo efibootmgr -v
,结果如下:
BootCurrent: 0007
Timeout: 0 seconds
BootOrder: 0002,3002,0001,0003,0005,0006,0008,2001,2002,2003
Boot0000* Notebook Hard Drive BIOS(2,500,00)................-.j.......j.A.j........................................
Boot0001* ubuntu HD(4,749f000,2f800,4aec4607-34ba-4fa3-451d-befd65c8d660)File(\EFI\ubuntu\shimx64.efi)
Boot0002* Windows Boot Manager HD(4,749f000,2f800,4aec4607-34ba-4fa3-451d-befd65c8d660)File(\EFI\Microsoft\Boot\bootmgfw.efi)RC
Boot0003* EFI HDD Device (SAMSUNG MZMPC128HBFU-000H1) ACPI(a0341d0,0)PCI(1f,2)SATA(1,0,0)HD(1,800,100000,3ef48298-b7e8-459f-8189-134862cd346b)RC
Boot0004* USB Hard Drive - Generic Flash Disk BIOS(7,500,00).......................................................................
Boot0005* elementary HD(4,749f000,2f800,4aec4607-34ba-4fa3-451d-befd65c8d660)File(\EFI\elementary\grubx64.efi)
Boot0006* rEFInd Boot Manager HD(4,749f000,2f800,4aec4607-34ba-4fa3-451d-befd65c8d660)File(\EFI\refind\shimx64.efi)
Boot0007* USB Hard Drive (UEFI) - Generic Flash Disk ACPI(a0341d0,0)PCI(1d,0)USB(0,0)USB(0,0)HD(1,2,7adffe,00000000)RC
Boot0008* Ubuntu HD(4,749f000,2f800,4aec4607-34ba-4fa3-451d-befd65c8d660)File(\EFI\ubuntu\grubx64.efi)RC
Boot2001* USB Drive (UEFI) RC
Boot3002* Internal Hard Disk or Solid State Disk RC
答案1
如果你的计算机尽管出现这些错误但仍能正确启动,别理他们!!!!!!!!!!!!!!!!!!!!
基本上,解决这个问题需要篡改非常您的安装中一个微妙且至关重要的部分——即您的引导加载程序配置。您可能会修复该问题,但至少您最终可能会创建一个很多更大的问题。修复一个微不足道的外观问题真的值得冒造成严重损坏甚至可能导致计算机根本无法启动的风险吗?
如果你真的想冒险,我建议你打开终端并输入sudo efibootmgr -v
。这将产生类似这样的输出:
$ sudo efibootmgr -v
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000,0003,0007,2003,0001,2001,2002
Boot0000* rEFInd (direct) ACPI(a0341d0,0)PCI(1f,2)03120a00010000000000HD(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
Boot0002* EFI Network 0 for IPv4 (08-9E-01-FF-CA-4D) ACPI(a0341d0,0)PCI(1c,0)PCI(0,0)MAC(089e01ffca4d,0)IPv4(0.0.0.0:0<->0.0.0.0:0,0, 0RC
Boot0003* ubuntu HD(2,1f4800,82000,5f6b4992-fcfe-4a2c-9e67-98b0a30dfe7d)File(\EFI\ubuntu\shimx64.efi)
Boot0004* EFI Network 0 for IPv6 (08-9E-01-FF-CA-4D) ACPI(a0341d0,0)PCI(1c,0)PCI(0,0)MAC(089e01ffca4d,0)030d3c000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000RC
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.}....................
Boot2001* EFI USB Device RC
Boot2002* EFI DVD/CDROM RC
Boot2003* EFI Network RC
检查该行。它告诉您固件尝试以下BootOrder
各种选项的设置顺序。在我的例子中,它首先尝试(; ),然后是(; ),依此类推。很有可能,您的固件首先尝试启动或的副本。这失败是因为缺少 Shim 的支持文件,因此固件转到下一个项目,这确实有效。(这是一个有根据的Boot####
Boot0000
rEFInd (direct)
\EFI\refind\refind_x64.efi
Boot0003
ubuntu
\EFI\ubuntu\shimx64.efi
shimx64.efi
shim.efi
\EFI\Microsoft\Boot
猜测就我而言;我可能错了,这是继续进行的危险之一!)改变变量可能会解决这个问题。您可以使用选项来BootOrder
执行此操作,例如:-o
efibootmgr
sudo efibootmgr -o 0003,0000,0007,2003,0001,2001,2002
在此示例中,我指定了一个新的启动顺序,将原始条目的前两项交换。在我的计算机上,结果是 Ubuntu 的 GRUB 取代 rEFInd 成为主要启动程序。您的系统几乎肯定会有一组与我的不同的条目和启动顺序,因此您需要调整条目以匹配。另外,不要只是随意交换东西;花点时间阅读并理解您正在做什么。您指定为第一项的条目应该是一个有效的引导程序。(该BootCurrent
条目应该放在第一位,相对安全。)不了解您正在做什么会efibootmgr
大大增加您指定不起作用的引导顺序的可能性,这当然意味着计算机无法启动!这就是为什么我仍然建议你忽略这个小小的外观问题——除非你知道自己在做什么,否则你就会冒着让事情变得很多更差!
编辑:鉴于efibootmgr
输出,我的建议是将 0001 移动到启动顺序的开始,如下所示:
sudo efibootmgr -o 0001,0002,3002,0003,0005,0006,0008,2001,2002,2003
如果事情安排合理,这应该让它正常工作;但是,我不能保证这一点。从证据中可以清楚地看出,该系统有过去安装的遗留问题,而且不清楚到底是什么导致了所报告的症状。这只是我的猜测,它会Boot0001
正常工作。
此外,Pilot6 错误地指出,弄乱启动顺序的风险“并不严重”——或者充其量,我们对“并不严重”有不同的看法。我见过很多人发帖说,他们删除了错误的启动项或以不适当的方式重新排列了启动顺序,导致系统无法启动。对于像我这样的专家来说,这些问题很容易解决;但对于普通人来说,这可能是一次痛苦的经历。