秋季更新后,GRUB 无法启动 Windows,而是自行启动

秋季更新后,GRUB 无法启动 Windows,而是自行启动

我有一台 HP PC,每次启动 Windows 时,它都会将 Windows 设置为第一个启动分区/设备。为了解决这个问题,我之前在 EFI 分区中用 grubx64.efi 替换了 Microsoft 的 bootmgfw.efi,以欺骗它认为它正在启动 Windows,而实际上它正在启动 GRUB。Windows Fall 升级再次重置了 Windows EFI 文件夹,但现在当我用 grubx64.efi 替换 bootmgfw.efi 文件时,GRUB 会在您选择 Windows 时启动到 GRUB(永无止境的循环)。Linux 仍然可以正常启动。

有人知道这该如何解决吗?

谢谢,

答案1

Windows 引导加载程序文件(通常为EFI/Windows/Boot/bootmgfw.efi)必须存在于 ESP 上,Windows 才能启动。您说您用 的副本替换了此文件grubx64.efi,但没有说明您对原始文件做了什么。如果您覆盖了它,那么除非/直到您恢复原始文件,否则 Windows 无法启动。(您可以将文件恢复为另一个名称,如下所述。)如果您有备份,则可以从中恢复它。如果没有,那么我建议您在 Windows 论坛上询问有关恢复原始文件的信息。然后您可以重新开始,对原始文件更加小心。

如果您重命名了原始文件,则应该能够编辑 GRUB 的配置以使用新名称启动文件。如果您坚持使用 GRUB,最好的方法是编辑/etc/grub.d/40_custom以包含以下内容:

menuentry "Windows" {
    insmod part_gpt
    insmod chain
    set root='(hd0,gpt1)'
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

您必须更改分区 ID [ (hd0,gpt1)-- 即本例中gpt1第一个硬盘 ( ) 上的第一个分区 ( hd0)] 以匹配您的 ESP。您还必须更改引导加载程序文件名,本例中将其显示为默认文件名,当然您已更改了它。

创建或编辑后/etc/grub/40_custom,您必须键入sudo update-grub。这会将这些更改连同其他 GRUB 设置一起传输到/boot/grub/grub.cfg。(您可以直接编辑该文件,但每当 GRUB 更新其配置时,您的编辑都会被清除,例如在自动内核更新之后。)

相关内容