总结:在 Windows 10 / Ubuntu 中UEFI双启动场景中,从 Grub 启动 Windows 10 会导致 Windows 启动管理器覆盖/删除 Grub。我该如何阻止这种情况发生?
我的 PC 长期以来一直顺利地以 UEFI 单启动 Ubuntu 18.04。我最近决定安装 Windows 10 并进行双启动。在旧的 BIOS/MBR 时代,我已经多次这样做了,所以没有预料到会出现重大问题。
安装过程
我的安装过程是:
- 安装 Windows 10。正如预期的那样,这会用 Windows 启动管理器覆盖 Grub。
- 使用 live-USB 和启动修复重新安装 Grub。
- 启动我现有的 Ubuntu 18.04 安装并运行,
update-grub
它自动获取新的 Windows 安装。 - 使用 Grub 启动 Windows 10
问题
问题就出在这里。在 Windows 上待了一段时间后,我需要重新启动 Ubuntu。我重启了机器,令我惊讶的是,它直接启动到了 Windows 10,没有任何 Grub 的迹象。
我像以前一样恢复了 Grub,但发现每次启动 Windows 都会导致 Grub 每次“消失”。
设置
- 生命值Z420:最新 BIOS
- 启动设置:
- 已启用 UEFI 启动模式
- 已禁用传统启动模式
- 安全启动已禁用
- 已启用快速启动
sda
带 GPT 表的 单个 SSD( )sda1
:EFI 系统分区sda2
:Ubuntu 18.04(安装sda1
在/boot/efi
)sda3
:Windows 10
我尝试过的事情
- 围绕这个问题出现的许多答案似乎都建议使用 Legacy/MBR 双启动。我想避免将 GPT 切换到 DOS 分区表带来的麻烦和潜在的数据丢失,而且……现在是 2020 年了,感觉这应该不是问题!
efibootmgr
我尝试按照建议停用并降低 Windows 启动管理器的优先级这里和这里但是当我启动 Windows 时,Windows 启动管理器就会重新启用!
我将非常感激任何帮助。我觉得这应该不难!
答案1
抱歉,我回答了自己的问题,但希望将来它能对别人有所帮助。
根据评论中的建议,我尝试了以下操作:
- 在 Windows 中禁用休眠模式
- 在 BIOS 中禁用 Fastboot
但这些都不起作用。
当我正要尝试重命名原始启动管理器时,我偶然发现了这答案。运行命令:
bcdedit /set "{bootmgr}" path \EFI\ubuntu\grubx64.efi
阻止了 Windows 启动管理器替换 Grub。我甚至成功重新启用了休眠和快速启动,而 Grub 却没有丢失。
注意:确保 EFI 路径正确无误非常重要。从 LiveUSB 运行引导修复程序以恢复 grub 后,它会告诉您要使用的完整路径,因为它并不总是与上面列出的路径相同。