rEFInd 显示 3 个 ubuntu .efi 而不是 2 个

rEFInd 显示 3 个 ubuntu .efi 而不是 2 个

这其实不是问题,不过我只是好奇为什么我突然看到 3 个 ubuntu,而不是通常的 2 个。应该是 grub64.efi 和 shim64.efi。虽然现在是 grub64.efi,vm-linuz-3.13.0.32-generic.efi.signed by UBUNTU

vm-linuz-3.13.0.52-generic.efi.signed by UBUNTU

这是为什么?我应该使用哪一个?我使用 grub64.efi,我想知道它们有什么区别,我应该使用其他的吗?在我安装 bcmwl 以使我的 Wi-Fi 正常工作后,这种变化就发生了。


我正在使用 Linux 14.04 LTS (Trusty Tahr)

本机操作系统是 Mac OS X 10.10.3

答案1

rEFInd 旨在自动删除某些冗余条目。其中一个冗余是shimx64.efi,如果grubx64.efi也存在。因此,您所说的“应该是 grub64.efi 和 shim64.efi”是不正确的,除非您为其中一个或两个文件创建了手动启动节。

就您而言,您有三个条目:

  • grubx64.efi-- 这是 Ubuntu 安装的 GRUB 二进制文件。选择它会启动 GRUB,它会加载 Linux 内核并使用 Linux 内核的 GRUB 引导加载程序机制启动它。GRUB 可能会显示自己的菜单,也可能不会,具体取决于其配置。此菜单可能包含所有 Linux 内核的选项,也可能包含其他操作系统或特殊功能的选项。如果您没有从 GRUB 菜单中选择任何选项,它可能会启动最新的(当前为 3.13.0-52)内核
  • vm-linuz-3.13.0.32-generic.efi.signed-- 此选项加载 3.13.0-32 Linux 内核,这是 Ubuntu 14.04 LTS(2014 年 4 月发布的版本)附带的内核。rEFInd 像启动 EFI 应用程序一样启动内核,依赖于EFI 存根加载器作为引导加载程序并绕过 GRUB。
  • vm-linuz-3.13.0-52-generic.efi.signed-- 此选项与前一个选项类似,不同之处在于它启动更新的 3.13.0-52 内核,其中包含过去一年收集的错误修复和新功能。

从实际角度来说,您应该使用最适合您的方法。在大多数情况下,最新内核的 GRUB 选项和 rEFInd 选项将使系统在大多数方面都功能相同。可能会有一些细微的差异,例如输出Command line:中略有不同的行dmesg,但这些差异不会产生实际影响。根据您的 GRUB 配置和 的内容/boot/refind_linux.conf,可能存在其他差异,例如图形模式与文本模式的启动消息;或者在极端情况下,一个可能启动而另一个可能不启动。如果出现问题,直接内核启动可能更容易修复,因为 GRUB 可能很复杂且难以调试。此外,如果您出于某种原因想要启动较旧的内核,从 rEFInd 菜单执行此操作可能比从 GRUB 执行此操作更容易一些,特别是如果 GRUB 配置为启动时不显示其自己的菜单。另一方面,如果没有/boot/refind_linux.conf文件或配置错误,GRUB 可能会正确启动,而 rEFInd 的直接内核启动可能会失败或设置不理想。

随着您继续使用和升级系统,您可能会看到 rEFInd 菜单中出现其他直接内核选项。您可以手动卸载您知道不会使用的内核;或者sudo apt-get autoremove在终端中键入将删除除三个内核(通常是原始内核和两个最新内核)之外的所有内核。通常,保留至少两个内核是个好主意。原因是有时会引入内核错误,因此您希望有启动回旧内核的选项,以防您遇到此类问题。

如果您想从 rEFInd 的显示中删除不使用的选项,您可以通过多种方式进行:

  • 您可以使用dont_scan_volumesdont_scan_dirsdont_scan_files选项refind.conf(通常在/boot/efi/EFI/refind/Ubuntu 中)。这些选项会根据位置或文件名从菜单中删除特定的引导加载程序,而不会真正删除它们。
  • 您可以scan_all_linux_kernels false在 中设置refind.conf。这将导致 rEFInd 忽略缺少.efi扩展的 Linux 内核。(请注意,您的内核有.efi.signed扩展,如果将此选项设置为 ,则会忽略这些扩展false。)
  • 您可以删除内核所在文件系统的 EFI 驱动程序。此驱动程序通常来自/boot/efi/EFI/refind/drivers_x64Linux。删除此驱动程序将删除所有直接 Linux 启动选项。
  • 您可以彻底删除这些文件。这是不是如果您想删除直接启动 Linux 内核的条目,则这是一个选项,因为 GRUB 需要这些文件来启动 Linux;但如果您不想看到 GRUB 选项或出现其他内容(例如,您已删除的 Windows 安装的旧 Windows 启动条目),则可能需要考虑它。大多数启动条目将显示在/boot/efi/EFI/Ubuntu 下的子目录中,但有些可能在其他地方。

如果您恰好拥有您描述的三个条目,那么如果您要删除直接内核条目,您最好绕过 rEFInd 并直接使用 GRUB——毕竟,只有一个启动选项的启动管理器没有什么意义。删除 GRUB 条目可能有些道理,但保留它也是值得的,以防您以后遇到 EFI 存根加载程序的问题。

答案2

启动项的描述中给出了答案:

3.13.0。三十二-通用的对阵3.13.0。52-通用的,即后者将启动更新的内核。

这是因为 Ubuntu(其他发行版也这样做)在安装新内核映像时会保留旧内核映像,因此如果更新没有按预期工作或最终拒绝启动,您可以轻松地恢复。

但是,你可以使用以下方法手动卸载较旧的通用内核映像:

sudo apt-get remove linux-image-(old version string)-generic

注意力:切勿使用正则表达式或通配符一次性卸载多个内核,而应一次只删除一个,并始终检查 的输出uname -r,以获得您当前的内核版本,您不应删除该版本。否则,您将面临因一个拼写错误而删除所有内核并导致系统无法启动的风险……

相关内容