查找UEFI引导项
要删除UEFI中无用的Windows引导项,首先需要找到它。这可以直接从主Ubuntu操作系统中完成,无需从Live USB/DVD启动。已安装的Ubuntu已经具备所需的命令行工具。
按下Ctrl+Alt+T打开终端,然后输入以下命令:
sudo efibootmgr
输入密码时,按提示输入并按下
Enter键。光标不会移动,你也看不到任何星号(*****)。这在Ubuntu终端中是正常的。你会看到一些输出,例如:
BootCurrent: 0002
Timeout: 2 seconds
BootOrder: 0002,0001,000
Boot0000* Dell
Boot0001* Windows Boot Manager
Boot0002* ubuntu
注意,除了Windows之外,我还有两个条目,一个是“Dell”,另一个是“Windows引导管理器”。由于我删除了除EFI之外的所有原始分区,所以无法再启动“Dell”或“Windows引导管理器”。我可以同时删除0和1两个条目。但是为了回答这个问题,我将展示如何仅删除
Windows引导管理器条目。
注意:您要删除的条目可能与此示例不同。请使用您自己计算机的输出结果,而不是上述示例,来决定要删除哪些条目。
删除过时的引导条目
现在您知道您想要删除条目1
(以本示例为例),请在终端中输入:
sudo efibootmgr -b 1 -B
请注意上述命令中的
1
。该命令将删除该条目。
Boot0001* Windows Boot Manager
从EFI分区中删除相应的文件夹
我们快要完成了。这最后一步是确保UEFI
不会重新生成我们刚刚删除的条目。为此,您需要删除与之前步骤中删除的条目对应的文件夹。
如果EFI分区未挂载:
在某些计算机上,默认情况下可能没有挂载EFI分区。如果是这种情况,请使用以下命令找出哪个是EFI分区:
sudo os-prober
然后寻找Windows引导管理器。例如,它可能是/dev/sda1
。你的可能不同。
然后使用以下命令挂载EFI分区:
sudo mount /dev/sda1 /boot/efi
结束“如果”
现在你找到了要删除的文件夹的名称和位置。使用以下命令列出分区中EFI
子文件夹中的所有文件夹:
sudo ls /boot/efi/EFI
你会看到一些输出,例如:
Dell Windows ubuntu
要删除
Windows
(也可能称为
Microsoft
)文件夹,请使用以下命令:
sudo rm -r /boot/efi/EFI/Windows
要验证文件夹是否已删除,请再次使用
sudo ls /boot/efi/EFI
命令。
最后更新GRUB以隐藏GRUB菜单
在这个阶段,当您启动笔记本电脑时,GRUB仍然会显示菜单以选择各种操作系统,即使您只安装了Ubuntu。使用以下命令编辑文件/etc/default/grub
。如果您愿意,也可以使用其他编辑器。
sudo nano /etc/default/grub
使这两行看起来像这样:
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
如果不存在
GRUB_TIMEOUT_STYLE=hidden
这一行,请添加上述行。
完成后,通过
Ctrl+
X,然后按
Y和
Enter保存并退出编辑器。
最后一步是使用以下命令更新GRUB:
sudo update-grub
现在笔记本电脑应该直接启动Ubuntu,而不显示GRUB菜单。如果将来需要进入恢复模式,则在笔记本电脑启动时按下
Esc键以显示GRUB菜单。
参考资料:此答案基于
如何从BIOS引导菜单中删除“Ubuntu”?(UEFI)。
/boot/efi
上,我没有看到在其他地方挂载ESP的理由。执行以下命令:sudo ls /boot/efi/EFI
和sudo rm -r /boot/efi/EFI/Windows
。 - mook765efibootmgr
在某些实现中可能存在错误。在这些系统上,您可能需要在UEFI v2 shell中使用bcfg
。 - Bobbcfg
添加另一个答案。我对UEFI shell不太熟悉。 - user68186sudo efibootmgr
之后出现“此系统不支持EFI变量”,那该怎么办呢?我正在使用Ubuntu 20.04。 - MadPhysicistsudo os-prober
命令,显示Windows引导管理器位于/dev/sdb1
上,所以我运行了sudo mount /dev/sdb1 /boot/efi
命令进行挂载。此外,我的文件夹名字是"Microsoft"而不是"Windows"。 - alexia