今天,在我预装 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,你就没问题了。(至少我希望我没事……:))