安装rEFInd后我可以安全地删除grub吗?

我在我的PC上使用rEFInd与Windows 10进行双启动,我想删除GRUB,因为我没有使用它,直接从rEFInd启动操作系统,没有GRUB(在rEFInd安装之后,我从/boot/efi/EFI删除了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) 

先感谢您!

简短的回答是“是的,如果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包将在技术上保持安装。

第三种可能性是在refind.conf使用dont_scan_filedont_scan_dirs来保持Ubuntu的GRUB不在rEFInd菜单中。 该解决方案根本不会删除GRUB,这样做的好处是,如果需要,它应该可以通过计算机的内置启动管理器保持访问状态。 OTOH,如果Ubuntu应该更新GRUB,它将接管默认的启动管理器。 有关如何处理此类问题的更多信息,请参阅此页面 。