如何在BIOS启动菜单中删除“Ubuntu”?(UEFI)

看到这个ubuntu出现在BIOS菜单(UEFI)
我在我的Lenovo s205上也有这个问题。
有没有办法从菜单中删除“ubuntu”?我甚至已经卸载了它。

您可以尝试使用 EasyBCD 应用程序来管理 Windows。 - user433732
3@RonnieDroid EasyBCD是一款用于修改Windows引导配置数据(也称为Windows引导加载程序)的工具。BCD和UEFI是分开的,因为BCD依赖于Windows,而UEFI是与操作系统无关的(即使没有安装操作系统,UEFI仍然存在)。修改BCD将是无用的,因为默认情况下,唯一的选项将是Windows,即使安装了其他操作系统。 - ExplodingKittens
3个回答

你应该可以通过使用Live Ubuntu CD来完成这个操作。
安装efibootmgr:
sudo apt-get install efibootmgr

然后添加到内核EFI支持
sudo modprobe efivars

然后运行sudo efibootmgr来检查您的启动项。它会返回类似以下内容:
BootCurrent: 0004
Timeout: 2 seconds
BootOrder: 2001,0003,0005,0006,0000
Boot0000* Lenovo Recovery System
Boot0001* EFI Network 0 for IPv6 (B8-88-E3-84-F3-EF)
Boot0002* EFI Network 0 for IPv4 (B8-88-E3-84-F3-EF)
Boot0003* Windows Boot Manager
Boot0004* EFI USB Device (SanDisk)
Boot0005* ubuntu
Boot2001* EFI USB Device

然后删除您不想要的选项。在此示例中,Ubuntu是第5个条目。可以调用以下内容来删除条目5并将其从BootOrder中移除。
(注意:在执行以下命令之前,请确保输入正确的启动条目编号)
sudo efibootmgr -b 5 -B 

进一步的详细信息在这里描述:http://linux.die.net/man/8/efibootmgr 注意:对于任何更改引导加载程序的操作,请确保拥有一个可以引导的良好磁盘映像。
现在,您还应该删除EFI分区中的"ubuntu"子目录,以防止UEFI固件将其恢复到BootOrder中。
为此,首先找到您的EFI分区。运行"sudo fdisk -l"命令以查看所有连接驱动器上的分区。EFI分区在类型列下显示为"EFI Partition"。
假设您的EFI分区是"/dev/sda2",那么请将其挂载到任意空文件夹中。
sudo mkdir /mnt/efipart
sudo mount /dev/sda2 /mnt/efipart

现在我们需要在这个分区中找到目录Ubuntu或其他发行版的名称。它通常位于EFI/distro_name下面。
通过(请确保您删除的是正确的目录) sudo rm -r ubuntu来删除该目录及其内容。

5如果在驱动器的efi(ESP)分区中未删除/EFI/ubuntu文件夹,UEFI可能会重新安装条目。在删除任何文件或文件夹之前,最好完全备份efi分区。 - oldfred
在16.04版本中,当我尝试访问已挂载的EFI分区时,即使使用sudo命令也会收到“权限被拒绝”的提示。有什么建议吗? - Major Productions
我觉得你最后一句话末尾的句号很危险 x) - Oragon Efreet
有些答案告诉我使用 boot-repair,但没有结果。其他人说运行 bootrec.exe /fixmbr,也没有结果。还有人说只删除 Ubuntu 文件夹...但它一直回来...另外有人说只需使用 efibootmgr 删除启动项...但它也会回来。什么都没用。但突然间,我读到了你的帖子,意识到必须同时删除文件夹和启动项?突然就成功了!这就是你一直在寻找的答案。 - Silversonic
1使用Windows 10上的Rufus,我刚刚准备了一个带有Ubuntu 18.04桌面版的USB闪存,并按照您的说明进行操作。它运行得非常顺利。 - Peter Gloor
你在/mnt/efipart创建的文件夹会发生什么情况? - swingcake
在运行sudo efibootmgr时,有没有办法看到一个条目位于哪个磁盘上? - Rick
1使用sudo rm -r ubuntu只有在首先cd到正确的目录后才能起作用。最好在命令中使用绝对路径:sudo rm -r /mnt/efipart/EFI/ubuntu - mook765

这个答案完全引用自这里
以管理员权限运行cmd.exe进程 运行diskpart 输入:list disk,然后输入sel disk X,其中X是您的引导文件所在的驱动器 输入list vol以查看磁盘上的所有分区(卷)(EFI卷将以FAT格式化,其他卷将为NTFS) 通过输入sel vol Y来选择EFI卷,其中Y是SYSTEM卷(这几乎总是EFI分区) 为方便起见,通过输入assign letter=Z:为其分配一个驱动器号,其中Z是空闲的驱动器号 输入exit以退出磁盘工具 仍然在cmd提示符中,输入:Z:并按Enter键,其中Z是您刚刚创建的驱动器号 输入dir以列出此已安装的EFI分区上的目录 如果您在正确的位置,应该会看到一个名为EFI的目录 输入cd EFI,然后输入dir以列出EFI内部的子目录 输入rmdir /S ubuntu以删除ubuntu引导目录

TL;DR:

运行实时Ubuntu并输入:

sudo apt-get install lilo
sudo lilo -M /dev/sda mbr

解释:

在我的情况下,我遇到了grub rescue的问题。我试图修复一个朋友的笔记本电脑,他误以为删除所有Ubuntu分区是清除Ubuntu的标准方法。通常情况下,@kamal提到的答案就像上面所说的那样有效。但在我的情况下,这次有点不同/奇怪。

在名为EFI的文件夹中没有Ubuntu目录。我在EFI文件夹里看到了四个EFI文件。它们都代表着CPU架构,并且看起来都像Windows的EFI文件。我不想冒险删除错误的EFI文件。

通常,Ubuntu的EFI文件看起来像这样:elilo.efi。 但在我的情况下,既没有这样的EFI文件,也没有以特定发行版命名的目录。

要是我之前知道这个命令,就能节省大量时间了。它通常在任何博客中都没有提到。祝好运。