使用 rEFInd 代替 GRUB 有什么缺点吗?

ran*_*ng_ 35 dual-boot refind

最终编辑 - 如果您打算安装 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 的操作系统)。

Rod*_*ith 63

我维护 rEFInd,所以我了解它是如何工作的,并且与 Ubuntu 交互得很好;但我也不是没有自己的偏见和偏好。(我分叉改装成rEFInd,因为我不喜欢GRUB 2,我想很多东西,改装所做的是优雅的,但不是我需要的东西。)

在大多数情况下,rEFInd 有效。任何引导加载程序都很少遇到引导后问题;一旦内核启动,它要么完全运行,要么根本不运行。(此规则偶尔有例外,但正如我所说,它们很少见。)因此,如果 rEFInd 引导您的系统,您不必太担心后续问题。也就是说,任何软件都有其优点和缺点,包括引导加载程序。与 GRUB 相比,有关 rEFInd 的以下几点浮现在脑海中:

  • rEFInd 优点/GRUB 缺点
    • 因为它会在每次启动时扫描内核,所以 rEFInd 具有更强的适应性并且对配置文件的依赖更少。如果您要引导多个 Linux 发行版,这一点最为重要,因为在这样的设置中,您需要注意主 GRUB 的配置文件了解其他发行版内核的更改。
    • GRUB 的配置文件格式非常复杂。它通常工作正常,因为它的配置脚本大部分时间都在做正确的事情;但是当脚本出错时,修复它可能是一场噩梦。由于 rEFInd 的配置文件更简单,因此更容易修复和调整其配置。
    • 正如你所指出的,rEFInd 有更多的吸引力。
    • rEFInd 在安全启动激活的情况下启动 Windows 时更可靠。(有关不影响 rEFInd 的 GRUB 中度常见问题的信息,请参阅此错误报告。)
    • rEFInd 可以启动 BIOS 模式的引导加载程序;GRUB 不能。对于大多数人,尤其是使用基于 UEFI 的 PC 的人来说,这没什么大不了的。不过,一些 Mac 用户需要 BIOS 模式兼容性才能与 Windows 7 双启动。
    • USB 闪存驱动器或 CD-R 上的 rEFInd 可以启动无法启动的 Ubuntu 安装。有一些注意事项和限制,但即使您不在硬盘上使用 rEFInd,将其放在 USB 闪存驱动器或 CD-R 上也可能是一个有用的应急工具。
    • GRUB 的配置脚本运行速度可能很慢。在复杂的设置中,安装新内核可能需要一分钟或更长时间,因为这些脚本被触发,并且它们需要大量时间来扫描系统以查找内核和各种引导加载程序并使用找到的内容重建配置文件. 请注意,除非您卸载 GRUB(或不安装它),否则即使您使用 rEFInd,您也会遇到此问题。
    • 使用安全启动时,rEFInd始终强制执行安全启动策略。启动 Linux 内核时,GRUB 可能会也可能不会这样做,具体取决于使用的 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
Run Code Online (Sandbox Code Playgroud)

这种方法的缺点是它是一个很大的飞跃。如果您更喜欢在完全安装之前测试 rEFInd,请务必使用 USB 闪存驱动器,它可以让您在对硬盘进行任何更改之前查看 rEFInd 的工作原理。

  • 查看 `refind.conf` 中的 `use_graphics_for` 选项。 (2认同)