如何删除 grub 显示的幻影 Windows 启动管理器?

如何删除 grub 显示的幻影 Windows 启动管理器?

我有一台双启动双驱动器 Dell Optiplex 7060,带有 SATA SSD 和 NVME 棒。

Ubuntu Linux 22.04 安装在 上/dev/nvme0。Windows 11 安装在 上/dev/sda。我首先在 NVME 上安装了 Ubuntu,然后在之前的 SATA 驱动器上安装了 Windows 11。最近,我用另一个更大的驱动器替换了 SATA 驱动器,并全新安装了 Windows 11。我在安装过程中断开了 NVME 驱动器的连接,以防止 Windows 在其上写入。

两种操作系统都运行良好,我可以在 中选择它们grub。BIOS 中的 EFI 启动顺序是先启动 Ubuntu,然后启动 Windows 启动管理器。

但是,在os-prober运行时update-grub,它会找到一个额外的 Windows 启动管理器。grub 菜单如下所示:

*Ubuntu
Advanced options for Ubuntu
Windows Boot Manager (on /dev/nvmeon1p1) # <--This is a phantom and does not work.
Windows Boot Manager (on /dev/sda1)
UEFI Firmware Settings

选择Windows Boot Manager (on /dev/sda1)可以正常工作。选择/dev/nvmeon1p1会导致 Windows 蓝屏:

Your PC/Device needs to be repaired

A required device isn't connected or can't be accessed.

Error Code: 0xc000000e

这并不奇怪:它可能正在尝试查找之前的 SATA 驱动器。

efibootmgr不显示幻影条目:

BootCurrent: 0002
Timeout: 1 seconds
BootOrder: 0002,0000
Boot0000* Windows Boot Manager
Boot0002* ubuntu

我该如何删除幻影 Windows 条目?我猜想os-prober在 EFI 分区中找到了一些东西nvme0。我尝试在 Windows 中使用 BCDEDIT 列出内容,但我不知道如何编辑 NVME EFI 分区以保留 Ubuntu 条目并删除无用的 Windows 条目。

答案1

/boot/EFI/Microsoft/我通过删除带有幻影条目的驱动器解决了我自己的问题。

$ sudo mount /dev/nvme0n1p1 /mnt
$ sudo su       # avoid "Permission denied" when browsing around /mnt
# cd /mnt/EFI
# ls
BOOT  Dell  Microsoft  ubuntu
# rm -rf Microsoft
# exit
$ sudo umount /mnt
$ sudo update-grub

相关内容