使用rEFInd而不是GRUB有什么不利之处吗?

最终编辑- If you are planning on installing rEFInd you might want to read Rod's answer below.

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

如果仍然看到无用的条目(我有一个没有指定任何.efi文件的"fallback boot loader etc"条目),只需添加以下行:dont_scan_dirs EFI/boot,EFI/Dell,EFI/memtest86。这应该解决问题。


我有一台机器,上面安装了一个基于Ubuntu的双系统,同时运行Windows 10。目前我正在使用GRUB引导程序,但计划切换到rEFInd,主要是为了视觉效果。
我担心的是可能存在的缺点,特别是像rEFInd这样更花哨的引导程序是否会减慢我的启动过程。
[编辑 - 忽略下面的指南,阅读下面的答案] 最后,this guide 这个指南看起来可靠吗?
编辑 - 与其他现有问题不同,这个问题的重点是Windows-Linux双系统(尽管下面的答案似乎涵盖了任何操作系统,重点是基于Debian的系统)。

有rEFInd-grub组合。 - earthmeLon
虽然有一些重叠,但这个问题并不是完全重复了muru指向的那个问题。那个问题是关于Mac特定的,而这个问题则不是。muru所指的那个问题还描述了必须克服的问题,而这个问题则是在询问两个引导程序的比较。 - Rod Smith
1个回答

我维护rEFInd,所以我对它的工作原理和与Ubuntu的交互非常了解;但是我也有自己的偏好和喜好。(我将rEFIt分叉为rEFInd,因为我不喜欢GRUB 2,并且我认为rEFIt的许多功能很优雅,但并不完全符合我的需求。)
在大多数情况下,rEFInd都能正常工作。使用任何引导加载程序后出现启动问题的情况很少见;一旦内核启动,要么完全正常工作,要么完全无法启动。(当然,偶尔也会有例外情况,但如我所说,这种情况很少。)因此,如果rEFInd成功引导您的系统,您就不必过多担心后续问题。话虽如此,任何软件(包括引导加载程序)都有其优点和缺点。与GRUB相比,以下是我对rEFInd的一些看法:
rEFInd优势/GRUB劣势
- 因为它在每次启动时扫描内核,所以rEFInd更具适应性,不太依赖配置文件。这对于引导多个Linux发行版非常重要,因为在这种设置中,您需要确保主GRUB的配置文件知道对“其他”发行版内核的更改。 - GRUB的配置文件格式非常复杂。通常情况下它能正常工作,因为大部分时间其配置脚本都会做正确的事情;但是当脚本出错时,修复起来可能会很困难。由于rEFInd的配置文件更简单,修复和调整配置更容易。 - rEFInd有更多的视觉效果,正如你所指出的。 - 在启用Secure Boot的情况下,rEFInd更可靠地引导Windows。(请参阅this bug report了解GRUB存在的一个相对常见的问题,而rEFInd则不受影响。) - rEFInd可以启动BIOS模式的引导加载程序;GRUB不能。对于大多数人,特别是使用UEFI的PC用户来说,这并不重要。然而,一些Mac用户需要BIOS模式兼容性以与Windows 7双启动。 - 在USB闪存驱动器或CD-R上的rEFInd可以引导无法启动的Ubuntu安装。虽然存在一些注意事项和限制,但即使您不在硬盘上使用rEFInd,将其放在USB闪存驱动器或CD-R上也是一个有用的紧急工具。 - GRUB的配置脚本可能运行缓慢。在复杂的设置中,安装新内核可能需要一分钟或更长时间,因为这些脚本被触发,并且它们花费了很长时间来扫描系统中的内核、各种引导加载程序,并重新构建配置文件。请注意,即使您使用rEFInd,如果您不卸载GRUB(或者根本不安装它),您也会遇到这个问题。 - 在使用Secure Boot时,rEFInd始终执行Secure Boot策略。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出
除了这些要点之外,还有偶尔会出现系统特定的不兼容性和怪癖。这些问题可能会影响任何一个程序,所以它们并不是一个比另一个更好的优势。
你可以设置你的系统,让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的工作原理。

所以,我尝试了Live USB。我遇到了以下问题:在启动Ubuntu时,启动画面没有显示出来;相反,我只看到了详细的描述信息。另一方面,Windows的启动速度像是禁用了快速启动,这使得它的启动速度变得更慢。 - random_human_being_
如果你从显示启动画面的引导中将其安装到硬盘上,你也可以从rEFInd中获取它。你还可以手动编辑引导选项——通过永久编辑/boot/refind_linux.conf或者临时编辑按下F2或Insert键两次。在Ubuntu中,quiet splash选项会产生启动画面。 - Rod Smith
谢谢。正如您所说,一旦安装了rEFInd,它会显示启动画面(而在从U盘启动时则不会)。此外,与我上面写的不同,快速启动现在运行良好,也许只是我的错误。所以现在一切都像魔法般地运行;唯一仍然有点困扰我的是,在选择操作系统后出现的丑陋的“正在引导操作系统”屏幕,有没有办法摆脱它? - random_human_being_
2зњ‹дёЂдё‹refind.confдё­зљ„use_graphics_forйЂ‰йЎ№гЂ‚ - Rod Smith
完成。此外,我从rEFInd菜单中删除了所有额外的条目,只保留了一个说“从EFI系统分区引导回退引导加载程序”的选项,但我不知道如何隐藏它。有什么建议吗? - random_human_being_
没关系,我已经做了。我会相应地编辑问题。 - random_human_being_
备用引导加载程序是EFI\BOOT\bootx64.efi,所以你应该能够使用它来隐藏条目。但要注意,备用引导加载程序仅适用于可移动磁盘,因此如果你这样做,rEFInd将无法引导它们,除非你还包括一个磁盘标识符,例如 dont_scan_dirs ESP:EFI\BOOT\,以便不扫描名为ESP的卷上的EFI\BOOT目录。refind.conf文件中还包含了更多关于dont_scan_dirsdont_scan_files的示例。 - Rod Smith
@RodSmith 感谢您提供如此好的介绍。我有一个详细的问题:我应该如何从扫描列表中准确地排除不相关的分区?我可以将"PARTUUID"添加到"vol"列表中,例如dont_scan_volumes "$vol", "$PARTUUID"吗? - funicorn
rEFInd是一个非常棒的工具。我只希望它永远不会成为"废弃软件",因为我依赖它来进入我的五个操作系统之一。就在今天,我注意到我们可以截屏,或者显然地说,refind的截屏保存在主efi文件夹中。 - himanshuxd
@RodSmith,你能帮我处理这个帖子吗:https://askubuntu.com/questions/1332631/how-to-create-a-secure-boot-enabled-usb-flash - hamed