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

png*_*378 5 grub2 dual-boot uefi grub-efi refind

我在我的 PC 上使用 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
Run Code Online (Sandbox Code Playgroud)

安装的 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)
Run Code Online (Sandbox Code Playgroud)

先感谢您!

Rod*_*ith 11

简短的回答是“是的,如果 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
Run Code Online (Sandbox Code Playgroud)

有以下三个注意事项:

  • 包更改可能需要对前面的包列表进行更改。(该列表取自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
Run Code Online (Sandbox Code Playgroud)

这应该使 GRUB 远离 ESP 并防止未来的 GRUB 更新,尽管您当前的 GRUB 包在技术上将保持安装状态。

第三种可能性是使用dont_scan_filedont_scan_dirsinrefind.conf将 Ubuntu 的 GRUB 排除在 rEFInd 菜单之外。此解决方案根本不会删除 GRUB,其优点是在需要时仍可通过计算机的内置引导管理器访问它。OTOH,如果 Ubuntu 应该更新 GRUB,它将接管作为默认启动管理器。有关如何处理此类问题的更多想法,请参阅此页面