如何永久更改 UEFI 操作系统管理器列表中的启动顺序?

如何永久更改 UEFI 操作系统管理器列表中的启动顺序?

如何更改基于 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 时看到列表中的窗口。

相关内容