我正在尝试将 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 所期望的好选择,特别是因为您可能会偶尔看到内核包更新失败。我提到该选项主要是为了完整性,而不是说它是个好主意。