错误:“无法打开 \EFI\BOOT\grubx64.efi...”(双启动)

错误:“无法打开 \EFI\BOOT\grubx64.efi...”(双启动)

今天,在我预装 Windows 8 的计算机上通过 USB 安装 Ubuntu 16.04 后,系统要求我重启电脑。重启后,系统并没有提示我选择操作系统,于是在互联网上搜索后,我找到了 Boot-Repair,我使用尝试 Ubuntu我的 Ubuntu 安装 USB 中的选项。

启动修复后,我收到一条消息说,

如果您的计算机直接重新启动进入 Windows,请尝试更改 BIOS 中的启动顺序。如果您的 BIOS 不允许更改启动顺序,请更改 Windows 引导加载程序的默认启动项。例如,您可以启动进入 Windows,然后在管理员命令提示符中键入以下内容:

bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi

重新启动电脑后,我收到以下错误消息约 3 秒钟,之后它自动启动到 Windows 8,而不允许我访问 Ubuntu。

在出现制造商徽标之后、grub 之前启动时收到错误:

Failed to open \EFI\BOOT\grubx64.efi - Not Found  
Failed to load image \EFI\BOOT\grubx64.efi: Not Found    
start_image() returned Not Found  

因此我尝试了另一种解决方案,即在 cmd 中输入该命令,令我惊讶的是,它起作用了,现在每次打开电脑时都会提示一个窗口(grub)来选择我的操作系统,但不幸的是,每次我仍然会收到一个错误,持续约 3 秒,之后我可以选择我的操作系统(两者运行良好)并正常工作。

您对消除每次启动电脑时出现的错误消息有什么建议吗?

答案1

不要尝试上述这些。这些很难,可能不起作用。我也遇到了同样的问题,所以我做的是拿一个 Ubuntu 的实时 USB 并按下尝试 Ubuntu。然后我去了终端。在那里你按下以下命令。这里需要互联网。

第一个命令:sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt update

第二条命令:sudo apt-get install boot-repair && boot-repair

然后会出现一个应用程序。在其中按推荐的修复。然后它将修复 grub 并重新安装它。这里也必须有互联网。然后重新启动并享受双重启动。

答案2

最后终于解决了。

剩下的,打开终端

$ sudo bash
$ cd /boot/efi/EFI
$ sudo cp -p ubuntu/grubx64.efi Boot
$ sudo touch ubuntu/grubx64.efi.gbr

之后,我不再看到错误消息,并且 grub 正常出现(之前也是如此,只是在看到该错误消息 3 秒后)。

答案3

Windows 更新后我无法再启动 Ubuntu: failed to open /EFI/ubuntu/grubx64.efi

我能够使用 Live Ubuntu USB 启动,然后:

# find the EFI partition
sudo fdisk -l 

# mount EFI
sudo mount /dev/<partition_name> /mnt

cp -p /cdrom/EFI/grubx64.efi /mnt/EFI/ubuntu

我必须重新启动并启用安全启动,这样就成功了。这是在联想 Thinkpad t470 上双启动 18.04 和 Windows 10

答案4

在收到最新的 Windows 10 2020 年 6 月更新后,我的 Ubuntu 20.04 LTS(Focal Fossa)和同一 SSD 上的 Windows 10 发生了非常相似的错误。带有 grub 的启动菜单消失了,笔记本电脑只能启动到 Windows 10。

**我是这样解决的:**我下载了 Ubuntu ISO,用 Rufus 刻录到 USB 驱动器,然后用这个 USB 驱动器启动笔记本电脑。我选择了尝试 Ubuntu。打开终端,然后设置键盘

setxkbmap <country_letters>

我无法使用启动修复实用程序恢复 grub,因为它抱怨磁盘开头缺少 EFI 分区,而该分区确实存在。

**最终这个解决方案奏效了:**检查可用的分区

sudo fdisk -l
Disk /dev/nvme0n1: 238,49 GiB, 256060514304 bytes, 500118192 sectors
Disk model: INTEL SSDPEKKF256G7L 
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: A1234567-6733-7263-BB45-5E83CFBE3430

Device             Start       End   Sectors   Size Type
/dev/nvme0n1p1      2048    534527    532480   260M EFI System
/dev/nvme0n1p2    534528    567295     32768    16M Microsoft reserved
/dev/nvme0n1p3    567296 259842047 259274752 123,6G Microsoft basic data
/dev/nvme0n1p4 498069504 500117503   2048000  1000M Windows recovery environment
/dev/nvme0n1p5 259842048 481527807 221685760 105,7G Linux filesystem
/dev/nvme0n1p6 481527808 498069503  16541696   7,9G Linux swap

Partition table entries are not in disk order.

挂载 EFI 系统分区,你可以检查那里有什么:

sudo mount /dev/nvme0n1p1 /mnt/

sudo ls /mnt/EFI/ubuntu

sudo stat /mnt/EFI/ubuntu/grubx64.efi

File: /mnt/EFI/ubuntu/grubx64.efi
Size: 1419128       Blocks: 2776       IO Block: 4096   regular file
Device: 10301h/66305d   Inode: 14          Links: 1
Access: (0700/-rwx------)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-06-25 02:00:00.000000000 +0200
Modify: 2020-06-25 19:24:06.000000000 +0200
Change: 2020-06-25 18:55:30.870000000 +0200
Birth: -

然后从 USB 驱动器复制正确的 grubx64.efi,按照上面的 Matthew Hegarty 和 adrianTNT 的建议。

cp -p /cdrom/EFI/grubx64.efi /mnt/EFI/ubuntu/

然后重新启动,移除 USB,你就没问题了。(至少我希望我没事……:))

相关内容