20.10:无法设置 EFI 或传统启动

20.10:无法设置 EFI 或传统启动

系统规格(包括下文描述的所有内容):https://pastebin.ubuntu.com/p/87pyy86mZq/

我正在尝试从 LiveUSB 安装 Kubuntu 20.10 来替换现有的 Ubuntu 安装。驱动器 (sda) 有一个 MBR 表,其中包含两个现有的 ext4 分区,sda1 (/) 和 sda2 (/home)。我选择格式化 sda1 并保留 sda2,使用相同的挂载点。我还将 sda1 的大小缩小了几 GB,并使用可用空间创建交换分区 (sda5)。

安装程序似乎运行良好,但最终终止,unable to install GRUB on dev/sda1. executing grub-install /dev/sda failed. This is a fatal error.当我尝试启动驱动器时,我进入 grub 救援模式:

error: file '/boot/grub/i386-pc/normal.mod' not found.
Entering rescue mode...
grub rescue>

运行 LiveUSB/boot/grub后,我发现除了几个文件外,其他文件都丢失了,因此我无法在 grub 救援中做很多事情。我尝试运行启动修复:https://help.ubuntu.com/community/Boot-Repair

修复告诉我:The boot of your PC is in EFI mode, but no EFI partition was detected. You may want to retry after creating a EFI partition(FAT32, 100MB~250MB, start of the disk,boot flag).

大概这就是安装程序失败的原因。意识到我对不同的启动模式了解不够,我退出了启动修复并开始阅读。后来,我的理解是,我应该

  1. 如果我想要传统启动(我以前可能有过),则以传统模式启动 LiveUSB,然后修复/重新安装,或者
  2. 创建一个 EFI 系统分区(ESP),然后修复/重新安装,如果我想要 EFI 启动,在这种情况下我将从 ESP 启动。

我首先尝试选项 1。在机器启动时,我进入华硕 UEFI Bios 实用程序,它在启动菜单中显示两次 USB 驱动器:其中一个以“UEFI:”为前缀,另一个应该是传统模式。但是,选择传统模式显然无法启动 USB,并恢复到默认启动顺序。没有错误消息,只是黑屏了一会儿,然后我进入 grub 救援。我尝试摆弄高级设置,但无济于事。

接下来我尝试选项 2。我再次运行 Kubuntu 安装程序,从交换中取出 512 MB 来创建 EFI 系统分区 (sda3)。这次安装程序完成时没有出现错误。我重新启动,但 EFI 分区显然无法启动,我仍然进入 grub 救援。我再次尝试从 LiveUSB 运行引导修复。我不再收到之前的消息,修复似乎运行正常。日志:https://pastebin.ubuntu.com/p/tsqjr9SX9f/

最后修复显示Please do not forget to make your UEFI firmware boot on the Ubuntu 20.10 entry (sda3/EFI/ubuntu/shimx64.efi file) !。查看日志,似乎这已经完成了(我错了吗?)。“UEFI:ubuntu”显示为 UEFI 实用程序中的第一个启动选项,但仍然无法启动。我最终进入启动顺序中的下一个,无论是 LiveUSB 还是 sda(启动 grub 救援)。为了确定,我移除了 USB 并禁用了 CSM,这样“UEFI:ubuntu”就成为唯一剩下的选项,但它仍然无法启动。相反,UEFI 实用程序会在启动时自动启动。

关于如何继续,您有什么想法吗?有什么方法可以判断启动失败的原因吗?我发现关于 MBR 表是否与 EFI 启动兼容以及我是否应该改用 GPT 的信息存在矛盾。但是,切换到 GPT 会完全格式化驱动器,对吗?即使 LiveUSB 以 EFI 模式启动,有没有办法设置传统启动?我通常先在我的计算机上安装 Ubuntu,然后在其上安装 KDE,但我认为这不会有太大区别?

可能相关:我之前的安装总是(似乎)直接启动到 Ubuntu,没有引导加载程序菜单。我不确定它是如何工作的,但我不记得当时安装时遇到任何问题。我确实在旧根的备份中看到了 grub。

答案1

我最终设法让传统启动按如下方式工作。我在多个地方读到,只要 LiveUSB 本身以传统模式启动,它也会以传统启动方式安装 Linux。使用 Rufus (https://rufus.ie/)我能够创建一个 LiveUSB,并在我的计算机上成功以传统模式启动。我使用 inxi 验证了启动模式,现在显示BIOS而不是UEFI,并使用 efibootmngr 验证了启动模式,显示EFI variables are not supported on this system.

安装程序本身一开始似乎也承认传统模式。然而,在我删除了现在不需要的 ESP 并确认我的新分区表后,安装程序说:No EFI System Partition was found. This system will likely not be able to boot successfully, and the installation process may fail. Please go back and add an EFI System Partition, or continue at your own risk.

这似乎很奇怪,因为如果我使用传统启动进行安装,我就不再需要 ESP 了?此外,尽管当时我也没有 ESP,但我在第一次尝试时并没有收到此警告LiveUSB 以 EFI 模式启动。我决定继续,但安装程序再次无法安装 grub,与第一次一样。

但这次,启动修复工具正确识别了传统模式。按照说明(在 shell 中粘贴几行代码),该工具成功安装了 grub,我的机器现在可以正常启动到 Kubuntu。

我唯一担心的是安装程序在安装 grub 失败时终止。安装 grub 是最后一步吗,还是之后可能还有其他事情要做?至少到目前为止一切似乎都运行良好。

答案2

我在旧版 BIOS 机器上安装 Kubuntu 时遇到了这个问题。我总是安装到根分区,而将 /home 保留原样。安装需要(不言而喻)创建一个 /boot/efi 分区,但由于我的其他分区,没有空间。如上所述,安装失败。

不知道该怎么做,我进行了安装并让它重新分区整个驱动器。然后我将主分区拆分为 / 和 /home,并从备份中恢复我的 /home。虽然不是最理想的,但这是一种简单的恢复方法,其他人可能会觉得有用。

最大的问题是:为什么从 Kubuntu 20.10 开始,旧的传统 Bios 机器上需要 /boot/efi?

相关内容