我尝试禁用安全启动,并检查了我的分区,它们似乎没问题。计算机没有加载 ubuntu,只是重新启动并选择了正确的启动设备。我运行了 boot info,结果如下http://paste2.org/JF36VyGZ。
答案1
短期内,尝试把我的rEFInd 启动管理器在 USB 闪存驱动器或 CD-R 上并使用它启动。rEFInd 可能无需任何特殊配置或更改即可启动您的 Ubuntu 安装;但是,从长远来看,您可能不想通过 USB 闪存驱动器上的 rEFInd 启动......
正如 ubfan1 在评论中所说,您的efibootmgr
输出没有显示任何证据表明存在 GRUB 的启动项(EFI/ubuntu/grubx64.efi
在您的 上/dev/sda1
)。这样的条目应该存在。它不存在的最可能原因有两个:安装引导加载程序时失败,或 EFI 存在缺陷,导致“忘记”了其引导条目。
要解决第一个问题,您必须创建一个新的启动项。您可以在通过 rEFInd 启动系统后使用以下命令执行此操作:
sudo efibootmgr -c -l \\EFI\\ubuntu\\shimx64.efi -L "ubuntu"
请注意,使用双反斜杠 ( \\
) 而不是单正斜杠 ( /
) 作为目录分隔符。(我很确定的最新版本efibootmgr
可以使用正斜杠,但由于您没有说明您使用的是哪个版本的 Ubuntu,所以最好坚持使用最低公分母。)此外,如果安全启动确实被禁用,您可以指定grubx64.efi
而不是shimx64.efi
; 但后者应该始终有效,因此它是更安全的选择。
重新启动,如果 Ubuntu 启动了,请输入sudo efibootmgr
以查看是否有ubuntu
条目。如果有,您应该能够重新启动,或者关闭并重新启动,系统将再次启动。
如果此方法无效,那么如果您的计算机是新的,最好的办法是更换它,因为它有缺陷。一定要告诉制造商您退货退款的原因。他们确实花了数年时间来修复这些错误,而且大多数制造商都已经修复了;但少数制造商仍在运送损坏的 EFI,除非人们拒绝购买损坏的产品,否则他们可能会继续这样做,直到太阳变成冰冷的余烬。
如果计算机不够新,无法退回退款,有一个解决方法:备份并将 GRUB 重命名为后备文件名(EFI/BOOT/bootx64.efi
在 ESP 上)。您可以这样做:
sudo cp -r /boot/efi/EFI/ubuntu /boot/efi/EFI/BOOT
sudo mv /boot/efi/EFI/BOOT/shimx64.efi /boot/efi/EFI/BOOT/bootx64.efi
再次,如果您确定安全启动已被禁用,则可以指定grubx64.efi
而不是;但无论安全启动是否启用都应该有效,因此是更安全的选择。shimx64.efi
shimx64.efi
这种方法有几个问题,尽管对于单启动系统来说这些问题并不那么严重。如果您必须采用这种方法,最大的问题是 Shim 和 GRUB 的更新不会自动安装;您必须手动将它们从 复制到/boot/efi/EFI/ubuntu
,/boot/efi/EFI/BOOT
就像前面的命令一样。大多数此类更新并不是真正重要的,但更新总是有可能包含重要的安全修复,因此您应该留意这一点。