Ubuntu 17.04 无法在具有 XFS 系统分区的 UEFI 系统上启动

Ubuntu 17.04 无法在具有 XFS 系统分区的 UEFI 系统上启动

我正在尝试将 Ubuntu 安装到一个干净的系统上并使用 XFS 作为系统分区,但是我的 UEFI 系统似乎不喜欢 XFS。

安装时我选择其他内容并手动对磁盘进行分区。作为故障排除的一部分,我已将分区恢复为单个 ESP 分区和系统分区的最小值。当我为系统分区选择 ext4 时,系统安装并成功启动。当我执行完全相同的操作但将系统分区更改为使用 XFS 时,系统会安装,但当它重新启动时,我会看到 grub 提示符。列出磁盘 (ls (hd0,gpt2)) 时,XFS 分区被视为未知且不可读。

我做错了什么?如何使用 XFS 作为系统磁盘格式来安装 Ubuntu?

答案1

我已经有一段时间没有尝试过这样的安装,但听起来 GRUB 的 XFS 支持中有一个错误,或者至少 Ubuntu 的设置方式存在错误。我有三个建议的解决方法:

  • 创建单独的/boot分区-- 如果你创建一个单独的/boot分区并在其上使用 ext4fs,这将消除 GRUB 读取 XFS 的需要,这应该绕过这个问题。我建议/boot至少设置 500 MB 大小,最好设置成 1 GB。
  • 将 ESP 安装在/boot-- 这种方法是前一种方法的变体。我非常确定 Ubuntu 安装程序会拒绝接受此布局,因此您需要以其他方式安装,然后使用紧急启动系统调整配置。即使不考虑设置难度,还有一个大的警告:Ubuntu 有时(但并非总是)会创建符号链接作为安装新内核的临时部分。由于 FAT(用于 ESP)不支持符号链接,因此这将失败,任何创建符号链接的内核更新也将失败。因此,这种方法有时会引起小问题。如果您的计算机是 Mac(或者您正在安装到 VirtualBox 虚拟机),您可以在 ESP 上使用 HFS+,这违反了 EFI 规范,但可以在 Mac 或 VirtualBox 下运行。据我所知,在 ESP 上使用 HFS+ 在任何基于 UEFI 的 PC 上都行不通。无论如何,如果您尝试这样做,您需要确保 ESP 足够大(至少 512 MiB)。
  • 使用 rEFInd 和 efifs XFS 驱动程序-- GRUB 不是 Linux 的唯一 EFI 引导加载程序;但大多数都要求内核与引导加载程序本身位于同一分区上。GRUB 和我自己的重新索引是此规则的两个例外。rEFInd 的窍门在于它不包含 XFS 支持;但是,适用于 EFI 的 XFS 驱动程序有效效率软件包。因此,从 efifs 安装 rEFInd 和 XFS 驱动程序应该工作。诀窍在于您需要至少手动执行一些操作,并且从紧急系统执行,因此设置起来会很麻烦。此外,efifs 源自 GRUB 的文件系统驱动程序,因此如果 GRUB 的 XFS 支持不稳定,efifs 可能不会更好。

总体而言,创建一个单独的 ext4fs/boot分区可能是最简单的解决方案;但是,如果你真的希望拥有一切(ESP 除外)在 XFS 上,您可以尝试 rEFInd 或将 ESP 安装在/boot。在这两个中,我建议使用 rEFInd 而不是将 ESP 安装在/boot;将 ESP 安装在/boot远远不是 Ubuntu 所期望的好选择,特别是因为您可能会偶尔看到内核包更新失败。我提到该选项主要是为了完整性,而不是说它是个好主意。

相关内容