如何摆脱 UEFI 中的额外 Windows 启动管理器条目?

如何摆脱 UEFI 中的额外 Windows 启动管理器条目?

我的系统固件在同一设备上看到两个 Windows 启动管理器条目。它只有一个 EFI 分区,并且只有一个条目可以正常启动,我怎么知道它在哪里以及如何删除它?
我不想有多个 Windows 条目,即使它们都可以启动。
我尝试重命名其中一个 EFI 文件,但没有成功,但想想,也许固件并不关心文件后缀?
以下是分区中我的 .efi 文件的列表:

./EFI/Microsoft/Boot/bootmgfw.efi
./EFI/Microsoft/Boot/memtest.efi
./EFI/Boot/fbx64.efi
./EFI/Boot/mmx64.efi
./EFI/Boot/bootx64.efi
./EFI/ubuntu/grubx64.efi
./EFI/ubuntu/shimx64.efi
./EFI/ubuntu/mmx64.efi
./EFI/systemd/systemd-bootx64.efi

答案1

通常,启动项是在操作系统安装期间手动添加的 - 而不是简单地将文件放在 \EFI 中 - 因此,如果删除该文件,引用它的启动项也不会自动消失。

(尽管有些固件确实试图具体来说自动检测bootmgfw.efi为 Windows 启动管理器,但通常仅在缺少条目时才如此 - 并且这应该导致与 Windows 创建的条目完全相同的条目。)

  • 如果条目名为“Windows Boot装载机“,它已经不是标准的 Windows 启动项。由 Windows(即 bcdboot.exe)创建的启动项标记为“Windows 启动经理“。

  • 在 Windows 中,使用bcdedit /enum firmware显示 UEFI 启动条目(已转换为 BCD 格式,但仍代表固件条目)。当前条目将显示为{bootmgr}标识符,而所有其他条目将具有完整的 GUID。

    应该可以使用它bcdedit /delete {THE_GUID}来删除固件启动项,或者更改其标签,bcdedit /set {THE_GUID} description BAD以便您以后可以将其删除。

  • 在 Linux 中,使用efibootmgr显示 UEFI 启动条目。(如果您使用的是旧版本的 efibootmgr,则还需要添加-v以显示路径。)将每个条目显示的分区 GUID 和文件路径与 中的 GUID 进行比较partx /dev/nvme0n1,或使用efibootmgr -n XXXX临时选择一个特定条目进行“下次启动”(然后重新启动以测试它是否有效)。

    一旦确定了哪个条目是坏的,请使用efibootmgr -b XXXX --delete-bootnum它来删除它。

相关内容