我有一个双启动系统,其中有 Trisquel GNU/Linux 和 Windows 8.1,使用 GRUB 引导加载程序。但是,我遇到了一个问题,每次启动 Windows 时,它似乎都会覆盖 GRUB,因此在后续启动时,它会直接启动 Windows。我知道如何启动实时 USB 并重新安装 GRUB,但每次启动 Windows 时都必须这样做,这真的很麻烦。我需要一个长期解决方案来防止 Windows 覆盖我的引导加载程序。
我知道 Unix & Linux SE 上存在这个问题:
但是,那里的答案对我没有帮助(而且可能已经过时了)。我已禁用 Windows 自动更新,并已确认自去年以来没有执行过任何 Windows 更新。(我在 U&L SE 上发布了后续内容,他们建议我尝试这里)。
那么,有人知道如何才能绝对防止 Windows 在未经我的许可的情况下覆盖我的引导加载程序吗?
请注意,我不是寻求有关如何重新安装 GRUB 的建议。我知道如何做,并且已经做过无数次了。我需要一个更可持续的解决方案来防止 Windows 首先破坏我的引导扇区。
答案1
根据 MichaelBay 在评论中的建议,我相信我已经弄清楚了问题所在。似乎在启动时,Windows 正在更改 UEFI 启动设置,以将 Windows 启动管理器设置为默认引导加载程序。我不得不承认,我对 UEFI 启动的工作原理有些无知,但我发现这个页面非常有用:
https://www.happyassassin.net/2014/01/25/uefi-boot-how-does-that-actually-work-then/
该问题本质上与以下问题相同:
我的机器是戴尔 Inspiron 660 台式机,不幸的是,它的 UEFI 固件 UI 基本上是垃圾。但是,我能够在 Windows 命令提示符下使用以下命令将引导加载程序更改回 GRUB:
bcdedit /set {bootmgr} path \EFI\trisquel\grubx64.efi
bcdedit /set {bootmgr} description GRUB
自从我这样做之后,Windows 似乎不再尝试更改设置,而且每次都会加载 GRUB。问题解决了!