如何更改基于 UEFI 的双 Windows/Ubuntu 安装中的启动顺序,通常 UEFI 系统会直接启动到 Windows(我在 HP 15 上遇到过这种情况)虽然我做了很多更改以使其使用 BIOS 启动到 grub,但我找不到让它这样做的方法
答案1
我找到了这个邮政在 HP 支持论坛上,它并不特定于 HP,因为它在任何步骤都不依赖于硬件。
因此步骤如下:
1- 在 Windows 中,以管理员身份运行 cmd.exe
2 - 使用以下命令挂载 UEFI 分区:mountvol X: /S
使用您选择的驱动器号更改 X
2-现在终止资源管理器并重新执行它,使用
Taskkill /F /IM explorer.exe
explorer.exe
3- 新的挂载分区应出现在“我的电脑”窗口中,转到 X:\EFI\Microsoft\Boot\,其中 X 是您之前指定的驱动器号,然后将文件重命名bootmgfw.efi
为类似的名称bootmgfw.efi~
并删除文件 X:\EFI\Boot\bootx64.efi。
4-在命令提示符中执行
bcdedit /set {bootmgr} path \EFI\Microsoft\Boot\[FILENAME]
请注意,这需要管理权限,并且名称FILENAME
将与之前的重命名相适应,在此示例中为bootmgfw.efi~
5-为了让事情更清楚,你可以使用以下命令将 Windows 启动加载程序更改为“固定 Windows 路径”
bcdedit /set {bootmgr} description "Fixed Windows path"
6- 在 Ubuntu 上,使用 efibootmgr 删除“OS boot Manager”条目:
sudo efibootmgr -b 0000 -B
7-sudo efibootmgr -l
如果你在 boot0001 上有 ubuntu,在 boot0002 上有 windows,那么请按照以下步骤操作
sudo efibootmgr -o 0001,0002
8- sudo gedit /etc/grub.d/40_custom
在文件中使用并添加以下块
menuentry "Microsoft Windows 7" --class windows --class os {
insmod part_gpt
insmod fat
insmod search_fs_uuid
insmod chain
set root='XXXXXX'
chainloader /EFI/Microsoft/Boot/[FILENAME]
}
其中 XXXXXX 是输出sudo grub-probe -t drive /boot/efi/EFI/Microsoft/Boot/[FILENAME]
FILENAME 是 efi 文件名,在这个例子中是bootmgfw.efi~
9- 最后sudo update-grub
应用更改,重新启动后,您应该会在通过 Grub 默认启动 Ubuntu 时看到列表中的窗口。