我不能做出任何保证,但是请使用具有管理员权限的Windows命令提示符窗口尝试以下操作:
bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
注意,{bootmgr}应键入准确;那不是一个变量。如果那行不通,您可以在Linux中尝试:
- 备份
/boot/efi(您的EFI系统分区或ESP)的全部内容。
- 输入
sudo mv /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi /boot/efi/EFI/Microsoft。
- 输入
cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi。
- 创建一个新
/etc/grub.d/40_custom文件引用EFI/Microsoft/bootmgfw.efi。在/boot/grub/grub.cfg引用的现有条目之后对其进行建模EFI/Microsoft/Boot/bootmgfw.efi; 只需Boot从启动路径中删除,然后为条目指定一个新名称即可。
- 键入
sudo update-grub以安装新的GRUB条目。
重新启动时,GRUB应该启动。问题在于,如果/当Windows决定重新安装其引导程序时,系统将再次开始直接引导至Windows。
对于步骤4,您可以:
- 复制位于一组和标记/注释之间的
40_custom条目。这是路径包含的条目。menuentry 'Windows ...'### BEGIN <path> ###### END <path> ###Boot
/etc/grub.d/40_custom通过添加复制的文件在文件中创建一个新条目menuentry。
- 更改新条目的名称(原始名称应为
Windows Boot Manager或类似名称)。
- 将路径从更改
EFI/Microsoft/Boot/bootmgfw.efi为EFI/Microsoft/bootmgfw.efi。
编辑:
自编写此答案以来,我已经知道了名为EasyUEFI的第三方Windows工具,它比bcdedit从Windows调整EFI引导顺序要容易得多。我不知道EasyUEFI是否会阻止Windows进行更改,如果Windows习惯于在每次引导时将其自身设置为默认值。因此,bcdedit可能仍然需要,但EasyUEFI绝对也值得尝试。