Неправильный порядок монтирования с 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).

После некоторых исследований выяснилось, что проблема в том, что systemd target ZFS требует разблокировки зашифрованных разделов, прежде чем что-либо делать, однако я не знаю, как это исправить.

Связанный контент