rEFInd 问题:删除多个引导项?

whi*_*ow1 14 grub2 dual-boot bootloader uefi refind

刚刚在我的 Mac Pro 上的单独驱动器上安装了 Ubuntu(未与任何其他操作系统分区)以及 rEFInd。我设法让这一切正常启动,并且可以毫无问题地从 rEFInd 启动到任何位置。问题是,我在启动管理器上加载了 3 个额外的项目,我想摆脱它们。我一直在寻找答案,但似乎仍然没有任何效果。除了我的 OS X、Windows 7 和 Ubuntu Grubx64(不管这意味着什么),我还有以下项目:

boot\vmlinuz-3.11.0-18-generic.efi.signed
boot\vmlinuz-3.11.0-15-generic.efi.signed
从整个磁盘卷启动旧操作系统

我一直看到人们说“试试这个”,他们只是给出方法,而没有给出如何实际操作的指导。有人可以给我一组简单的说明如何隐藏这些吗?

Rod*_*ith 9

有很多方法可以做你想做的事,但首先,要明白你有三个(或四个)以不同方式启动 Ubuntu 的条目:

  • grubx64.efi条目启动 GRUB,后者又启动 Linux 内核(并且还可能提供自己的菜单来启动其他东西,具体取决于它的配置方式)。
  • boot\vmlinuz-3.11.0-18-generic.efi.signed条目在使用 GRUB 的情况下启动 3.11.0-18 通用内核。(它通过内置于内核本身的EFI 存根加载程序启动。)
  • boot\vmlinuz-3.11.0-15-generic.efi.signed条目启动了 3.11.0-15-generic kernel——一个比前一个稍旧的内核。
  • "Boot Legacy OS..." 选项可能会启动 GRUB 的 BIOS 模式版本——您没有描述选择该选项时会发生什么,因此不清楚它是否这样做或是否有用。

无论如何,这里最大的区别在于 GRUB 和 EFI 存根加载器之间。在大多数情况下,这两种引导 Linux 的方法都同样有效,但有时一种比另一种更有效。就个人而言,我不喜欢 GRUB;恕我直言,它臃肿且不必要地复杂。这也是启动路径中的一个额外步骤,因为您可能需要 rEFInd 来管理 Mac 上的三重启动。OTOH,GRUB 是引导 Ubuntu 的标准方式。请注意,尽管 GRUB 在 rEFInd 中只有一个条目,但它自己的菜单(如果您将其设置为出现)可能使您能够引导 rEFInd 允许您直接引导的两个 Linux 内核中的任何一个。

就我个人而言,我会保留所有这三个条目(GRUB 和两个内核),至少如果它们都有效的话。原因是它们为您提供了多种启动计算机的选项;如果一个失败,你将有其他人作为后备。请注意,随着您升级系统和发布新内核,您的内核选择可能会增加。sudo apt-get autoremove一旦列表超出该限制,您可以通过使用将列表保持为两个或三个。

如果你想删除条目,你有几个选项,其中大部分涉及编辑refind.conf(这可能在/boot/efi/EFI/refindLinux 下):

  • 添加要避免扫描的文件名dont_scan_files。请注意,以这种方式隐藏单个内核的效率很低,因为您需要在安装新内核时更新列表。不过,这可能是隐藏 GRUB 的好方法。
  • 将描述不需要的引导加载程序的目录添加到dont_scan_dirs. (例如,boot删除 Linux 内核或EFI/ubuntu删除 GRUB。)
  • 将与不需要的引导加载程序关联的卷名称添加到dont_scan_volumes. 请注意,这是唯一dont_scan_*适用于 BIOS/CSM/legacy 引导选项的选项;添加相关名称的任何子集以阻止该条目。
  • 要禁用所有基于磁盘的BIOS / CSM /遗留的启动选项,取消scanfor和保证hdbios不是选项之一。不过,这在您的情况下可能是不可取的,因为您说您正在启动 Windows 7,并且通常以 BIOS/CSM/传统模式启动。但是,如果您设法在 EFI 模式下安装 Windows,这可能是一个不错的选择。
  • 要删除内核选项和所有未来的内核选项,您可以从ESP 目录的drivers(或drivers_x64drivers_ia32,取决于您的架构)子目录中删除 Linux 文件系统的 EFI 文件系统驱动程序EFI/refind。这将使 rEFInd 无法定位 Linux 内核,因此这些选项将消失。GRUB并没有依靠这些驱动程序,因此它会继续工作。
  • BIOS/CSM/legacy 选项仅在 rEFInd 认为它在磁盘的 MBR 或分区中检测到引导代码时出现。根据您的“Boot Legacy OS...”选项的描述,rEFInd 可能在 MBR 中找到了引导代码。(不过,某些最新版本的 rEFInd 中的错误会导致位置识别错误,因此,如果您使用的不是 0.8.7 版本,则该识别可能不正确。)因此,擦除引导代码可以从 rEFInd 的菜单中删除一个条目。但是,这种方法是危险的。我建议只有在您已经了解如何去做的情况下才尝试它,这就是为什么我故意提供关于这样做的明确说明——我可以写一个关于如何完成这项任务的完整答案,但它可能仍然不完整。

rEFInd 配置文档页面refind.confrefind.conf和上的注释中更详细地描述了这些选项


Sou*_*kar 5

轻松修复

rEFInd 引导加载程序菜单中,您可以通过键盘中的箭头键选择额外的条目,然后按Delete键来隐藏多余的条目!将弹出确认信息...选择是后,该条目将被隐藏,您的引导程序就可以运行了!!

干杯!

  • 这个答案中指定的方法是完全有效的。我在实现这个方法之前写了我之前的答案,所以我的答案省略了这个选项,因为它当时不存在。五年后会发生这样的事...... (3认同)
  • 有趣的事实:另一个答案是由 rEFind 的开发人员编写的。 (2认同)