ZFS、加密文件系统和 Systemd 的安装顺序不正确

ZFS、加密文件系统和 Systemd 的安装顺序不正确

我有一个“防弹”的 Arch Linux 安装,其结构如下:

  1. /dev/sda1:FAT32 EFI分区:挂载为/boot/efi
  2. /dev/sda2:LUKS加密的ext4分区:挂载为/boot(提示密码)
  3. /dev/sda3:加密交换分区
  4. /dev/sda4:包含根文件系统的加密zpool(提示密码)

系统启动并运行,但某些功能无法正常工作。在启动时,systemd 抱怨加载周期错误,但真正的问题是我必须输入/dev/sda2两次密码(一次用于 GRUB,一次用于 Linux)。我用了本指南设置一个密钥文件来解锁/dev/sda2,但没有骰子,它仍然要求输入密码。

这是我的钩子顺序mkinitcpio.conf

base udev autodetect modcont block keyboard zfs encrypt filesystems

zfs我尝试颠倒和的顺序encrypt,但这产生了一个不同的问题,它不会设置我的交换分区(它也可能弄乱了 GRUB [我假设它无法挂载 /boot?],我不得不重新启动到archiso 来修复它)。无论如何它并没有解决我的问题,我仍然必须输入 /dev/sda2 的密码两次。

我的crypttab

cswap /dev/sda3 /dev/urandom swap,cipher=aes-cbc-essiv:sha256,size=256

我的内核参数在/etc/default/grub

GRUB_CMDLINE_LINUX="zfs=zroot/ROOT/default rw cryptdevice=/dev/sda2:cboot"

我的fstab

# Static information about the filesystems.
# See fstab(5) for details.

# <file system> <dir> <type> <options> <dump> <pass>
# /dev/mapper/cboot
/dev/mapper/cboot       /boot           ext4            rw,relatime     0 2

# /dev/sda1
UUID=CE42-9249          /boot/efi       vfat            rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=re
mount-ro        0 2

# /dev/mapper/cswap
/dev/mapper/cswap       none            swap            defaults        0 0

启动时,系统在要求/dev/sda2我输入/dev/sda4's 之前先要求我输入密码(即使我交换了 中的钩子顺序mkinitcpio.conf)。

经过一些研究后,问题似乎是 ZFS 的 systemd 目标要求在执行任何操作之前解锁加密分区,但我不知道如何修复它。

相关内容