为什么我在安装并擦除 Fedora 后无法启动到 Ubuntu?

Ben*_*Ben 6 xubuntu boot grub2 fedora system-installation

原始问题

我正在尝试在 2015 年戴尔 XPS 13 笔记本电脑上安装 Xubuntu,但我遇到了各种与引导加载程序相关的问题。长话短说,过去几周我在这台机器上安装了几个不同的发行版,但直到我安装了 Fedora 21 之后问题才开始。这里是事件的快速摘要:

  • 我最初在 Windows 8 旁边安装了 Xubuntu 14.10 和 15.04 Beta 1,没有任何问题。
  • 我擦除了整个磁盘并使用带有加密和默认分区方案的 LVM 安装了 Fedora 21。
  • 我曾多次尝试擦除整个磁盘并使用各种分区方案安装 Xubuntu 14.10 和 Xubuntu 15.04 Beta 1。有时我会收到一条错误消息,指出 GRUB 安装失败。在其他时候,安装完成没有错误,但是当我重新启动我的机器时,Ubuntu 没有被检测为启动选项。不幸的是,当 GRUB 安装失败时,我没有任何可用的错误日志,而且我最近无法重现该特定问题。
  • 我尝试擦除磁盘并再次安装 Fedora 21,安装成功完成。我可以毫无错误地启动到 Fedora。
  • 我再次尝试擦除磁盘并安装Xubuntu和Ubuntu 14.10,但遇到了与以前相同的问题:安装成功完成,但戴尔启动菜单中没有条目。

我正在使用 UEFI 并为此禁用了安全启动。我想要做的就是擦除磁盘并在没有安装其他操作系统的情况下执行 Ubuntu 或 Xubuntu 的标准安装。

目前我已经安装了 Xubuntu 14.10(并且没有安装其他操作系统),但是当我打开我的机器时它没有出现在引导选项中。我试过运行引导修复,它给了我这条消息:

检测到 GPT。请创建一个 BIOS 引导分区(>1MB,未格式化的文件系统,bios_grub 标志)。这可以通过 Gparted 等工具执行。然后再试一次。

我对此感到困惑,因为我是使用 UEFI 启动的。(/sys/firmware/efi存在。)

我意识到这不是很多信息,但如果有人能指出我正确的方向或建议可能导致此问题的原因,我将不胜感激。

背景

如果相关,我正在这台机器上运行戴尔 A03 BIOS。我在安装 Fedora 时用 Intel 7260NGW 替换了现有的 Broadcom 无线网卡,以便在不干扰专有驱动程序的情况下获得更好的开箱即用网络支持。这并没有造成任何明显的问题。

这里描述的一切都是在 UEFI 模式下完成的,使用 64 位 ISO 禁用安全启动。

我已经尝试使用 Startup Disk Creator 创建安装媒体,但dd在这两种情况下都遇到了问题。

我一直在不同发行版之间跳来跳去,试图找到一些具有相对较新内核的东西,可以很好地与这台机器配合使用。我一直在尝试安装 Xubuntu 15.04 Beta 1 而不是 Beta 2 以避免这个错误

总结、推测和问题

我暂时排除了以下可能的解释(但如果我在这里弄错了,请随时纠正我):

  • 坏的USB驱动器
  • 创建不当的安装介质
  • 以错误的模式启动

在我安装 Fedora 之后,似乎发生了一些变化,尽管我认为这可能只是巧合。但让我困惑的是:

  • 为什么在格式化分区后进行的安装反复无法正确安装引导加载程序?Ubuntu 的全新标准安装不应该在 99% 的情况下都能正常工作吗?
  • 为什么安装程序在某些情况下会显示“无法安装引导加载程序”错误,而在其他情况下却没有错误地完成?
  • 当我一直使用 UEFI 和 GPT 时,为什么会收到有关 BIOS 兼容模式的错误?

我已经考虑过但不知道如何诊断的可怕可能性:

  • 我的笔记本电脑的硬件有问题。
  • 戴尔 BIOS 有问题。
  • 尽管我反复尝试格式化并安装 Ubuntu,Fedora 还是对磁盘进行了某种更改,该更改仍然存在。

Rod*_*ith 5

首先,您报告了以下引导修复消息:

检测到 GPT。请创建一个 BIOS 引导分区(>1MB,未格式化的文件系统,bios_grub 标志)。这可以通过 Gparted 等工具执行。然后再试一次。

此消息暗示您的引导修复光盘在 BIOS/CSM/传统模式下引导。不过,您稍后报告的消息暗示您的安装程序以 EFI/UEFI 模式启动。这种不一致可能是您的问题的一个因素,尽管我认为这不是您问题的唯一原因。如果可能,我建议您进入固件设置实用程序并禁用BIOS/CSM/legacy 支持。原因是启用此支持意味着您在启动时正在抛硬币关于启动模式,这会产生问题的可能性。最好确定您的启动模式。OTOH,某些计算机具有片状 EFI,因此最好在 BIOS/CSM/legacy 模式下安装。有了这样的系统,

其次,您只关注硬盘,但 EFI 模式启动也严重依赖于 NVRAM 的内容。我怀疑您的 NVRAM 设置出现问题。这可能是固件错误、操作系统安装程序中的错误或安装过程中的错误造成的。在任何情况下,您都应该在 EFI 模式下启动 Live CD并在终端中键入以下命令:

sudo efibootmgr -v
Run Code Online (Sandbox Code Playgroud)

这将产生显示 NVRAM 中引导条目的当前内容的输出,如下所示:

BootCurrent: 0000
Timeout: 1 seconds
BootOrder: 0000
Boot0000* rEFInd (direct)   HD(2,c00,114000,6e49fcaf-d054-47c9-ba69-a668c5ee8192)File(\EFI\refind\refind_x64.efi)
Boot0004* UEFI: Built-in EFI Shell  Vendor(5023b95c-db26-429b-a648-bd47664c8012,)..BO
Run Code Online (Sandbox Code Playgroud)

此示例异常简短,不太可能代表您将看到的内容,因为您可能会看到 Ubuntu 和/或 Fedora 的条目。一旦你知道那里有什么,你就可以修剪无关的条目。例如,如果有一个Boot0005引用 Fedora的条目,您可以像这样删除它:

sudo efibootmgr -b 5 -B
Run Code Online (Sandbox Code Playgroud)

更改5为任何合适的。(请注意,数字是十六进制的。)您可能需要多次发出此命令以删除所有不再有效的条目。如果您不理解某个条目,请谨慎删除它;计算机可能需要正确启动。但是,如果您要将磁盘擦干净,则应该删除所有引用您安装过的任何操作系统的条目,包括 Windows、Fedora 和 Ubuntu。运气好的话,从 NVRAM 中清除未使用或无效的引导条目将使您的 Ubuntu 安装程序能够创建计算机将接受的新条目。如果您看到大量您不理解的条目,请随时编辑您的问题以显示您的efibootmgr -v输出。(回复此回复,以便我知道回来查看。)

可以想象,您的固件也提供了一个设置选项来帮助清除未使用的引导条目,因此您可以通过固件设置实用程序挖掘相关选项。