使用 rEFInd 而不是 GRUB 有什么缺点吗?

使用 rEFInd 而不是 GRUB 有什么缺点吗?

最后编辑 - 如果您打算安装 rEFInd,您可能需要阅读下面 Rod 的回答。

安装后,如果您有一堆无用的条目,只需将它们的名称写在一张纸上(rEFInd 会将它们描述为 somefile.efi),然后打开 refind.conf 并添加行dont_scan_files somefile.efi,someotherfile.efi

如果你仍然看到无用的条目(我有一个条目说“后备引导加载程序等”,但没有指定任何 .efi 文件)只需添加行dont_scan_dirs EFI/boot,EFI/Dell,EFI/memtest86。它应该可以解决问题。


我有一台安装了 Ubuntu 衍生版和 Windows 10 双启动的机器。我目前正在使用 GRUB,但计划切换到 rEFInd,主要是为了美观。

我担心的是可能存在的缺点,尤其是像 rEFInd 这样的更高级的引导加载程序是否可能会减慢我的启动过程。

[编辑 -忽略以下指南,阅读下面的答案] 最后,本指南看起来可靠吗?

编辑 - 与其他预先存在的问题不同,这个问题的重点是 Windows-Linux 双启动(尽管下面的答案似乎涵盖了任何操作系统,重点是基于 Debian 的操作系统)。

答案1

我负责维护 rEFInd,因此我非常了解它的工作原理以及如何与 Ubuntu 交互;但我也有自己的偏见和偏好。(我将 rEFIt 分叉到 rEFInd 是因为我不喜欢 GRUB 2,而且我认为 rEFIt 所做的很多事情都很优雅,但不是相当我需要的。

在大多数情况下,rEFInd 都能正常工作。任何引导加载程序都很少出现启动后问题;一旦内核启动,它要么完全工作,要么根本不起作用。(这条规则偶尔会有例外,但正如我所说,这种情况很少见。)因此,如果 rEFInd 可以启动您的系统,您就不必太担心后续问题。话虽如此,任何软件,包括引导加载程序,都有优点和缺点。与 GRUB 相比,rEFInd 有以下几点值得注意:

  • rEFInd 的优点/GRUB 的缺点
    • 由于每次启动时都会扫描内核,rEFInd 的适应性更强,对配置文件的依赖性也更低。如果您要启动多个 Linux 发行版,这一点就尤为重要,因为在这样的设置中,您需要确保主 GRUB 的配置文件知道对其他发行版的内核。
    • GRUB 的配置文件格式为非常复杂。它通常可以正常工作,因为它的配置脚本大多数时候都能正确执行;但是当脚本出错时,修复它可能是一场噩梦。由于 rEFInd 的配置文件更简单,因此修复和调整其配置往往更容易。
    • 正如您所指出的,rEFInd 更加美观。
    • 在安全启动处于活动状态时,rEFInd 在启动 Windows 时更加可靠。(请参阅此错误报告了解有关 GRUB 中常见问题的信息,该问题不会影响 rEFInd。)
    • rEFInd 可以启动 BIOS 模式的引导加载程序;GRUB 则不能。对于大多数人,尤其是使用基于 UEFI 的 PC 的人来说,这不是什么大问题。不过,有些 Mac 用户需要 BIOS 模式兼容性才能与 Windows 7 进行双启动。
    • USB 闪存驱动器或 CD-R 上的 rEFInd 可以启动无法启动的 Ubuntu 安装。虽然有一些注意事项和限制,但即使您不在硬盘上使用 rEFInd,将其放在 USB 闪存驱动器或 CD-R 上也可以成为有用的应急工具。
    • GRUB 的配置脚本运行起来可能很慢。在复杂的设置中,安装新内核可能需要一分钟或更长时间,因为这些脚本被触发,并且它们需要花费大量时间来扫描系统中的内核和各种引导加载程序,并使用找到的内容重建配置文件。请注意,即使您使用 rEFInd,您也会遇到此问题除非您卸载 GRUB(或者从一开始就不要安装它)。
    • 与安全启动配合使用时,rEFInd总是强制执行安全启动策略。GRUB 在启动 Linux 内核时可能会也可能不会执行此操作,具体取决于所使用的 GRUB 版本。(在 Ubuntu 16.04 之前,Ubuntu 的 GRUB 甚至会启动未签名的内核。我认为 16.04 对此进行了稍微收紧,但我还没有详细研究过。)
  • rEFInd 的缺点/GRUB 的优点
    • GRUB 在 Ubuntu 中作为官方维护的软件包使用,而 rEFInd(目前)作为第三方软件包和 PPA 使用。
    • 如果我被公交车撞了,rEFInd 的开发很可能会停止;但 GRUB 有更多的开发人员,并且在不久的将来不会成为被放弃的软件。
    • GRUB 支持更多平台(CPU 和固件类型)。
    • GRUB 在网络启动环境中更易于使用。
    • GRUB 理论上可以加载 LVM 或 RAID 设置中的内核,或者在加密分区中加载内核;而 rEFInd 则做不到这一点。(rEFInd 仍可用于 LVM、RAID 和加密设置,但/boot在这种配置中,分区必须是单独的且未加密的。)请注意,我说的是“理论上”,因为我不知道有哪个发行版利用了此功能,因此,据我所知,它没有经过充分测试。
    • rEFInd 每次启动时扫描内核和引导加载程序可能需要几秒钟,因此其显示速度可能比 GRUB 慢一点。(您可以通过仅安装实际需要的文件系统驱动程序并保持扫描的分区整洁来最大限度地缩短扫描时间。)
    • Shim 被设计为与 GRUB 配合使用。虽然 rEFInd 也与 Shim 配合使用,但它不是 Shim 的主要目标,因此有一个奇怪的命名约定,即调用 rEFIndgrubx64.efi来让 Shim 启动它;并且您需要在 MOK 列表中添加至少一个条目,以使 rEFInd 与 Shim 配合使用。

除了上述几点之外,偶尔还会出现系统特定的不兼容和怪异现象。这些问题可能会影响任何一个程序,因此它们实际上并不是其中一个程序的优势。

可以将系统设置为 rEFInd 启动 GRUB(反之亦然),但在大多数情况下,这样做只会得到两个程序中最糟糕的结果,而不是最好的结果。不过,有时,以这种方式进行链式加载是可取的 - 比如,如果您想要 rEFInd 的视觉效果以及从 LVM、RAID 或加密分区加载内核的能力。

至于您链接的安装说明,它们过于复杂。在 Ubuntu 中安装 rEFInd 的最简单方法是在安装 Ubuntu 后使用 PPA:

sudo apt-add-repository ppa:rodsmith/refind
sudo apt-get update
sudo apt-get install refind

这种方法的缺点是跨度太大。如果您希望在完全安装之前测试 rEFInd,请务必使用 USB 闪存驱动器,这样您就可以在对硬盘进行任何更改之前了解 rEFInd 的工作原理。

相关内容