我不能保证,但你可以尝试以下方法:从以管理员权限启动的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步,您可以:
1. 复制以“menuentry 'Windows ...'”开头的
40_custom
条目,位于一组
### BEGIN <path> ###
和
### END <path> ###
标签/注释之间。这个条目包含了包含
Boot
的路径。
2. 通过添加复制的
menuentry
在文件
/etc/grub.d/40_custom
中创建一个新条目。
3. 更改新条目的名称(原始名称应为
Windows Boot Manager
或类似的名称)。
4. 将路径从
EFI/Microsoft/Boot/bootmgfw.efi
更改为
EFI/Microsoft/bootmgfw.efi
。
编辑:
在撰写这个答案之后,我了解到有一个第三方的Windows工具叫做EasyUEFI,它是一个比bcdedit
更容易使用的图形界面工具,用于调整从Windows启动的EFI引导顺序。不过,我不知道如果Windows习惯上在每次启动时将自己设置为默认值,EasyUEFI是否会阻止Windows进行更改。因此,可能仍然需要使用bcdedit
,但是也绝对值得尝试EasyUEFI。