我在我的电脑上使用 rEFInd 与 Windows 10 实现双启动,我想删除 GRUB,因为我不使用它并且操作系统直接从 rEFInd 启动,而不需要 GRUB(安装 rEFInd 后,我ubuntu
从中删除了目录/boot/efi/EFI
)。
我可以安全地做到这一点吗?如果可以,怎么做?
我的当前内容/boot/efi/EFI
:
maxim@ProBook:~$ sudo ls /boot/efi/EFI
Boot Microsoft refind tools
已安装的 GRUB 软件包:
maxim@ProBook:~$ dpkg -l | grep grub
ii grub-common 2.02~beta2-36+elementary11+r2~ubuntu0.4.1 amd64 GRand Unified Bootloader (common files)
ii grub-efi-amd64 2.02~beta2-36+elementary11+r2~ubuntu0.4.1 amd64 GRand Unified Bootloader, version 2 (EFI-AMD64 version)
ii grub-efi-amd64-bin 2.02~beta2-36+elementary11+r2~ubuntu0.4.1 amd64 GRand Unified Bootloader, version 2 (EFI-AMD64 binaries)
ii grub-efi-amd64-signed 1.66.2+elementary11~ubuntu0.4.1+2.02~beta2-36ubuntu3 amd64 GRand Unified Bootloader, version 2 (EFI-AMD64 version, signed)
ii grub2-common 2.02~beta2-36+elementary11+r2~ubuntu0.4.1 amd64 GRand Unified Bootloader (common files for version 2)
先感谢您!
答案1
简短的回答是“是的,如果 rEFInd 对你有用,你可以安全地删除 GRUB。”不过,也有一些注意事项。最值得注意的是,将来总有可能会出问题。例如,错误 #1649326,这会阻止内核 3.13.0-101 到至少 3.13.0-106 通过 rEFInd(或任何其他依赖 EFI 存根加载器的方法)启动。也就是说,考虑到 Ubuntu 保持当前启动的内核安装的方式,即使您遇到这样的问题,也应该能够通过 rEFInd 启动旧内核,无限期地启动或直到找到真正的解决方案。
至于如何删除 GRUB,以下命令应该删除包:
dpkg -P grub-efi-amd64 grub-efi-amd64-signed grub-common grub-efi-amd64-bin \
grub-common grub2-common shim-signed
有三个注意事项:
- 软件包变更可能需要对前面的软件包列表进行变更。(该列表取自这一页我几个月前写的 rEFInd 文档。
- 此命令会删除软件包,但不会删除 ESP 上的 GRUB 二进制文件。要删除该文件,您需要键入
sudo rm -rf /boot/efi/EFI/ubuntu
。 - Ubuntu 可能会尝试重新添加 GRUB。为了解决这个问题,我个人使用了一个空的“虚拟”包,声称是 GRUB 3。您可以从这里,如果您想使用它。由于它声称是 GRUB 3,Ubuntu 不会尝试用 GRUB 2 替换它。
或者,您可以删除 ESP 上的文件,然后使用以下命令锁定已安装的 GRUB 版本:
apt-mark hold grub-efi-amd64 grub-efi-amd64-signed grub-common \
grub-efi-amd64-bin grub-common grub2-common
这应该会使 GRUB 脱离 ESP 并阻止将来的 GRUB 更新,尽管您当前的 GRUB 包在技术上仍将保持安装状态。
第三种可能性是使用dont_scan_file
或dont_scan_dirs
将refind.conf
Ubuntu 的 GRUB 保留在 rEFInd 菜单中。此解决方案根本不会删除 GRUB,其优点是如果需要,它应该可以通过计算机的内置启动管理器访问。另一方面,如果 Ubuntu 应该更新 GRUB,它将接管作为默认启动管理器。请参阅这一页以获得关于如何处理此类问题的更多想法。