我使用 Fedora 35 和 Windows 双重启动 Dell Precision 7520。在 Windows 10 上运行良好。“升级”到 Windows 11,现在每次我启动到 W11 时,它都会将自己的启动加载程序放在 UEFI 设置中的“fedora”之前。因此,每次启动到 W11 后,我都需要按 F2 并在 UEFI 设置中重置启动顺序。
我已经开发了一种解决方法,但它无法在 W11 的 bootmgfw.efi 文件更新或 grub.cfg 更新后继续存在。尽管如此,我的解决方案意味着我可以连续几个月而不必再次这样做。这是我的解决方法:
- 启动进入 Linux
- 备份 MS Boot 目录,以防万一:
cd /boot/efi/EFI/Microsoft
cp -a Boot Boot.bak
- 然后执行以下操作,
cd /boot/efi/EFI/Microsoft/Boot
cp -p bootmgfw.efi bootmgf2.efi
cp -p /boot/efi/EFI/fedora/grubx64.efi bootmgfw.efi
cd /boot/efi/EFI/fedora
cp -p grub.cfg grub.cfg.bak
现在编辑 grub.cfg 并将“bootmgfw”替换为“bootmgf2”(请注意,真正的 grub.cfg 可能位于 /boot/grub2 中,而不是 /boot/efi/EFI/fedora 中)
重启
现在,当 Windows 11 将自己置于启动顺序列表的顶部并启动其 bootmgfw.efi 时,它实际上正在启动 grubx64.efi,从而加载 grub.cfg。如前所述,更新 bootmgfw.efi 和/或 grub.cfg 时,您必须重复步骤 3 和 4。我将上面的内容变成了一个脚本,当 W11 更新其 bootmgfw.efi 文件时,我只需每隔几个月运行一次。
鉴于上述解决方案的非永久性,是否有更好的解决方案?请注意,经过几周的研究这个问题,我遇到了几年前“Piotr”建议的解决方案,将 Windows“{bootmgr}”重置为 \EFI\fedora\grubx64.efi,但这并不起作用。 Windows 不知道 \EFI\fedora...