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はロードサイクルエラーを報告しますが、実際の問題はパスワードを2回入力する必要があることです/dev/sda2(1回はGRUB用、もう1回はLinux用)。私はこのガイドロックを解除するためのキーファイルを設定しようとしまし/dev/sda2たが、ダメで、依然としてパスワードを求められます。

これは私のフックの順序ですmkinitcpio.conf:

base udev autodetect modcont block keyboard zfs encrypt filesystems

zfsとの順序を逆にしてみましたencryptが、別の問題が発生し、スワップ パーティションが設定されませんでした (GRUB も台無しになった可能性があります [/boot のマウントに失敗したと推測します]。修正するには、archiso を再起動する必要がありました)。いずれにしても問題は解決せず、/dev/sda2 のパスワードを 2 回入力する必要がありました。

私の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( のフック順序を入れ替えた場合でもmkinitcpio.conf)。

調べてみたところ、問題は ZFS の systemd ターゲットが何かを実行する前に暗号化されたパーティションのロックを解除する必要があるということのようですが、修正方法がわかりません。

関連情報