在 Ubuntu 20.04 上,我想删除默认 GRUB 安装的 EFI 引导加载程序。基本上,我正在寻找 的倒数grub-install
,它不会留下任何功能失调的残留物(EFI 分区上的文件、NVRAM 条目等)。
- 我不想卸载 GRUB 软件包
- 我不想卸载 Linux
- 我没有 Windows
- 同一驱动器上还安装了其他具有自己的 EFI 引导加载程序的操作系统,这些操作系统必须不受影响
我没有找到类似的命令grub-uninstall
,但一定有一些简单的方法,对吧?
答案1
它不像 grub 在 EFI 分区中占用的空间很大,在我的例子中/boot/efi/EFI/ubuntu/
占用了 4.4 MB....
也许如果引导加载程序只是打扰你可以使用:
推荐的替代方案
- 使用
efibootmgr
管理启动选项
:~$ efibootmgr
BootCurrent: 0003
Timeout: 0 seconds
BootOrder: 0000,0003,0004,0005
Boot0000* ubuntu
Boot0003* rEFInd bootmgr
Boot0004* Windows Boot Manager
Boot0005* ubuntu
- 更改启动顺序
:~$ sudo efibootmgr --bootorder 0003,0000,0004,0005
BootCurrent: 0003
Timeout: 0 seconds
BootOrder: 0003,0000,0004,0005
Boot0000* ubuntu
Boot0003* rEFInd bootmgr
Boot0004* Windows Boot Manager
Boot0005* ubuntu
- 停用特定启动
:~$ sudo efibootmgr --bootnum 0000 --inactive
BootCurrent: 0003
Timeout: 0 seconds
BootOrder: 0003,0000,0004,0005
Boot0000 ubuntu
Boot0003* rEFInd bootmgr
Boot0004* Windows Boot Manager
Boot0005* ubuntu
实际删除 EFI 中的内容
- 首先我们需要知道ESP安装在哪里。我们来调查一下。在 Linux 下,ESP 通常安装在
/boot/efi
,但有时安装在/boot
、 或/efi
。在 macOS 或 Windows 下,ESP 默认情况下未安装,因此您必须自行安装才能访问它。...更多信息在这里
:~$ sudo fdisk -l | grep -i efi
/dev/sda2 1024000 1638399 614400 300M EFI System
:~$ df | grep -i sda2
/dev/sda2 303104 113684 189420 38% /boot/efi
要访问
EFI
引导部分,我们需要访问为超级用户A。通常你会这样做
su
b. Ubuntu 已
su
锁定帐户,因此您可以输入sudo -s
username@nodename:~$ sudo -s
[sudo] password for username:
root@nodename:/home/username# cd /boot/efi/
root@nodename:/boot/efi#
- 搜索grub在哪里:
:/boot/efi# find . -iname *grub*
./EFI/ubuntu/grubx64.efi
./EFI/ubuntu/grub.cfg
我建议制作一个备份副本。
A。
cp -r ./EFI/ubuntu /home/username/tmp/ubuntu
b.复制的文件将拥有
root
所有者,为了能够访问它们,您需要更改其所有权sudo chown username -R /home/username/tmp/ubuntu/
现在您已经有了备份副本并确定可以由
./EFI/ubuntu/...
您决定删除您想要的内容...rm -r ./EFI/ubuntu/
祝你好运:)
PS我知道我的回答晚了5个月,但这是第一个搜索引擎匹配的内容,所以我决定在找到自己的答案后给出一个答案
答案2
按照说明安装带有 EFI 的 GRUB 后,我遇到了同样的问题这里。
因此,如果您对 GRUB 不满意,只需返回 Grub 定制器并将其更改OUTPUT_FILE
为/boot/grub/grub.cfg
.我也删除了/boot/efi/EFI/pop/grubx64.efi
,但我想没关系。
一切对我来说都像一个魅力!