自定义安装 Ubuntu 后,如何从 UEFI 启动菜单中删除 Windows?

use*_*186 22 boot uefi

我在带有 Windows 10 附带的单个 HDD 的笔记本电脑上使用“其他东西...”选项安装了 Ubuntu 18.04。在安装过程中,我删除了除分区之外的所有EFI分区。然后我创建了一个/根文件系统分区和一个/home分区。一切顺利。

除了现在我在 UEFI 启动菜单中有一个额外的 Windows 条目被 Grub 选中。我可以手动编辑/etc/default/grub以隐藏现已失效的 Windows 启动选项,但我也想删除 EFI 系统中的条目。我如何摆脱 Windows 的最后残留物?

use*_*186 33

查找 UEFI 引导条目

要删除 UEFI 中现在无用的 Windows 启动项,首先需要找到它。这可以直接从主 Ubuntu 操作系统完成。无需从实时 USB/DVD 启动。安装的 Ubuntu 已经具有所需的命令行实用程序。

Ctrl+ Alt+打开终端T,然后输入:

sudo efibootmgr
Run Code Online (Sandbox Code Playgroud)

出现提示时输入密码并点击Enter。光标不会移动,您也不会看到任何星号 (*****)。这在 Ubuntu 终端中是正常的。你会看到一些输出,如:

BootCurrent: 0002
Timeout: 2 seconds
BootOrder: 0002,0001,000
Boot0000* Dell
Boot0001* Windows Boot Manager
Boot0002* ubuntu
Run Code Online (Sandbox Code Playgroud)

请注意,除了 Windows 之外,我还得到了两个条目,分别0是“戴尔”和 1 个“Windows 启动管理器”。由于我删除了除 EFI 之外的所有原始分区,因此我无法再启动“Dell”或“Windows Boot Manager”。我可以同时删除01。但是对于这个答案,我将展示如何仅删除Windows 启动管理器条目。

注意:您要删除的条目可能与此示例不同。使用您从自己的计算机获得的输出(而不是上面的示例)来决定要删除哪些条目。

删除过时的引导条目

现在您知道要删除条目1(在本例中),在终端中输入:

sudo efibootmgr -b 1 -B
Run Code Online (Sandbox Code Playgroud)

请注意,1在上面的命令中。此命令将删除条目:

Boot0001* Windows Boot Manager
Run Code Online (Sandbox Code Playgroud)

删除EFI分区对应的文件夹

我们快完成了。最后一步确保UEFI不会重新生成我们刚刚删除的条目。为此,您必须删除与您在前面步骤中删除的条目相对应的文件夹。

如果没有挂载 EFI 分区:

在某些计算机中,默认情况下可能未安装 EFI 分区。如果是这种情况,请使用以下命令找出哪个是 EFI 分区:

sudo os-prober
Run Code Online (Sandbox Code Playgroud)

并寻找 Windows 启动管理器。/dev/sda1例如,它可能是。你的可能不同。

然后使用以下命令挂载 EFI 分区:

sudo mount /dev/sda1 /boot/efi  
Run Code Online (Sandbox Code Playgroud)

“如果”的结尾

现在您找到要删除的文件夹的名称和位置。使用以下命令列出EFI分区中子文件夹中的所有文件夹:

sudo ls /boot/efi/EFI
Run Code Online (Sandbox Code Playgroud)

你会看到一些输出,如:

Dell Windows ubuntu
Run Code Online (Sandbox Code Playgroud)

要删除Windows(它可能被称为Microsoft)文件夹,请使用以下命令:

sudo rm -r /boot/efi/EFI/Windows
Run Code Online (Sandbox Code Playgroud)

要验证文件夹是否已删除,请sudo ls /boot/efi/EFI再次使用该命令。

最后更新 GRUB 以隐藏 GRUB 菜单

在此阶段,当您启动笔记本电脑时,即使您只安装了 Ubuntu,GRUB 仍会显示选择各种操作系统的菜单。/etc/default/grub使用以下命令编辑文件。如果需要,您可以使用任何其他编辑器。

sudo nano /etc/default/grub
Run Code Online (Sandbox Code Playgroud)

使这两行看起来像这样:

GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
Run Code Online (Sandbox Code Playgroud)

如果该行GRUB_TIMEOUT_STYLE=hidden不存在,请添加上述行。

完成后,按Ctrl+保存并退出编辑器X,然后按YEnter

最后一步是使用以下命令更新 GRUB:

sudo update-grub
Run Code Online (Sandbox Code Playgroud)

现在笔记本电脑应该直接启动 Ubuntu 而不显示 GRUB 菜单。如果您以后需要进入恢复模式,请Esc在笔记本电脑启动时点击以显示 GRUB 菜单。

参考:此答案基于如何在 bios 启动菜单中删除“Ubuntu”?(UEFI)

  • ESP 应该已经安装在 `/boot/efi` 上,我认为没有理由将 ESP 安装在其他地方。`sudo ls /boot/efi/EFI` 和 `sudo rm -r /boot/efi/EFI/Windows` 应该这样做。 (2认同)