刚刚在 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
从整个磁盘卷启动旧版操作系统
我经常看到人们说“好吧,试试这个”,他们只给出方法,却没有给出如何实际操作的说明。有人能给我一组关于如何隐藏这些内容的简单说明吗?
答案1
有多种方法可以做您想做的事情,但首先,请了解您有三个(或四个)条目可以以不同的方式启动 Ubuntu:
- 该
grubx64.efi
条目启动 GRUB,进而启动 Linux 内核(并且还可能提供自己的菜单来启动其他东西,具体取决于它的配置方式)。 - 该
boot\vmlinuz-3.11.0-18-generic.efi.signed
条目启动 3.11.0-18-generic 内核没有使用 GRUB。(它通过EFI 存根加载器,它内置于内核本身。) - 该
boot\vmlinuz-3.11.0-15-generic.efi.signed
条目启动 3.11.0-15-generic 内核 - 比前一个内核稍旧一些。 - “启动旧版操作系统...”选项可能启动 BIOS 模式版本的 GRUB——您没有描述选择该选项时会发生什么,因此并不清楚它是否会执行此操作或是否有用。
无论如何,这里最大的区别在于 GRUB 和 EFI 存根加载器。在大多数情况下,这两种启动 Linux 的方法效果都一样好,但有时其中一种比另一种更好。就我个人而言,我不喜欢 GRUB;在我看来,它很臃肿,而且不必要地复杂。这也是启动路径中的一个额外步骤,因为您可能需要 rEFInd 来管理 Mac 上的三重启动。另一方面,GRUB 是启动 Ubuntu 的标准方式。请注意,尽管 GRUB 在 rEFInd 中只有一个条目,但它自己的菜单(如果您将其设置为显示)可能会使您能够启动 rEFInd 允许您直接启动的两个 Linux 内核中的任一个。
就我个人而言,我会保留所有这三个条目(GRUB 和两个内核),至少如果它们都能正常工作的话。原因是它们为您提供了启动计算机的多个选项;如果一个失败,您将有其他选项作为后备。请注意,随着您升级系统和发布新内核,您的内核选择可能会增加。sudo apt-get autoremove
一旦列表超出该限制,您就可以使用将列表保持在两个或三个。
如果您想要删除条目,您有几种选择,其中大多数涉及编辑refind.conf
(可能在/boot/efi/EFI/refind
Linux 下):
- 将您想要避免扫描的文件名添加到
dont_scan_files
。请注意,以这种方式隐藏单个内核效率低下,因为您需要在安装新内核时更新列表。不过,这可能是隐藏 GRUB 的好方法。 - 将不需要的引导加载程序描述的目录添加到
dont_scan_dirs
。(例如,boot
删除 Linux 内核或EFI/ubuntu
删除 GRUB。) - 将与不需要的引导加载程序关联的卷名添加到
dont_scan_volumes
。请注意,这是唯一dont_scan_*
适用于 BIOS/CSM/旧式引导选项的选项;添加相关名称的任何子集以阻止该条目。 - 禁用全部基于磁盘的 BIOS/CSM/传统启动选项,取消注释并
scanfor
确保hdbios
不是选项之一。这是大概不过,对于你的情况来说,这是不可取的,因为你说你正在启动 Windows 7,而 Windows 7 通常会以 BIOS/CSM/legacy 模式启动。不过,如果你设法以 EFI 模式安装 Windows,这可能是一个不错的选择。 - 要删除内核选项和所有未来的内核选项,您可以从 ESP 目录的子目录中删除 Linux 文件系统的 EFI 文件系统驱动程序
drivers
(或drivers_x64
或drivers_ia32
,取决于您的体系结构)EFI/refind
。这将导致 rEFInd 无法找到 Linux 内核,因此这些选项将消失。GRUB 不会不是依赖这些驱动程序,因此它将继续工作。 - 仅当 rEFInd 认为它在磁盘的 MBR 或分区中检测到引导代码时,BIOS/CSM/legacy 选项才会出现。根据“Boot Legacy OS...”选项的描述,rEFInd 可能在 MBR 中找到了引导代码。(不过,rEFInd 某些最新版本中的错误会导致位置识别错误,因此如果您使用的不是 0.8.7 版本,则该识别可能不正确。)因此,擦除引导代码可以从 rEFInd 的菜单中删除条目。这种方法危险的,不过。我建议只有你已经理解了如何操作后才尝试,这就是为什么我故意不是提供明确的说明——我可以写出关于如何完成这项任务的完整答案,但它可能仍然不完整。
这些refind.conf
选项refind.conf
在rEFInd 配置文档页面。
答案2
轻松修复
在rEFInd 引导程序菜单,您可以通过键盘上的箭头键选择多余的条目,然后按下删除键!将弹出确认信息...选择“是”后,条目将被隐藏,您的引导加载程序即可运行!
干杯!