在我最近更新 BIOS(使用 Windows)和尝试启动顺序(使用 LiveUSB)之间的某个时间,我的 grub 菜单不见了。以前,我可以通过以下方式修复 GRUB 菜单:
- 启动进入 Windows
- 进入高级启动选项
- 选择我的 Ubuntu 分区
- 获取高级重启 -> 查看我的 GRUB 菜单。
然后,我可以选择 Ubuntu 操作系统,登录,运行启动修复并恢复我的 GRUB 菜单。
但是,现在经过启动修复过程后,我仍然无法恢复双启动 grub 菜单。我的笔记本电脑一直直接加载到 Windows。
附加信息:我还检查了启动顺序的设置方式是否与使用 LiveUSB 之前相同,但这没有帮助。我还尝试了一些其他组合 - 但都没有成功...
我的电脑上安装了 Ubuntu 16.04 和预装的 Windows 8.1。安全启动和传统模式已禁用... 以下是上次使用启动修复时的结果:
https://paste.ubuntu.com/25652485/
我也使用 Grub Customizer 来更改 grub 菜单中操作系统的顺序,但据我所知,它对这种特殊情况下的 grub 菜单消失没有影响。当我使用 grub-repair 并且不通过 Grub Customizer 进行任何更改时,菜单仍然不会出现。
造成该问题的原因可能是什么?我该如何解决它?
答案1
EFI 期望默认引导加载程序为 /efi/boot/bootx64.efi。Windows 特别注重确保其能够启动。
首先,从 Windows 8.1 开始,它不会真正关闭,而是挂起到磁盘(就像休眠一样),以便启动速度更快。其次,它会更改 EFI,使条目 0000(Windows)在启动顺序中排在第一位。如果是双重启动,则应关闭 Windows 中的快速启动。
解决方法:将 grubx64.efi 重命名为 bootx64.efi,然后替换文件 efi/boot/bootx64.efi。这会使 grub 成为默认引导加载程序。将原始 efi/boot/bootx64.efi 保存在 windows 文件夹中,以防您以后想要替换它。
第二:在 ubuntu 中,使用 efibootmgr 删除所有 Windows 和 Ubuntu 条目。然后重新启动计算机。确保您启动的第一个系统是 ubuntu,以便它位于条目 0000 中。然后启动 windows。
在某些较新的系统上,如果默认路径为空,则允许选择操作系统。暂时将 /efi/boot/bootx64.efi 移至其他位置,看看 EFI 设置是否允许您选择要启动的操作系统。
PS:我确实有一个较旧的系统,在 BIOS 更新后拒绝启动 grub。将 grub 安装到 /dev/sda 解决了这个问题。不过,这被认为是一个奇怪的问题。EFi 不应该在 MBR 中查找引导加载程序。