Orden de montaje incorrecto con ZFS, sistemas de archivos cifrados y Systemd

Orden de montaje incorrecto con ZFS, sistemas de archivos cifrados y Systemd

Tengo una instalación 'a prueba de balas' de Arch Linux que está estructurada así:

  1. /dev/sda1: Partición FAT32 EFI: montada como /boot/efi
  2. /dev/sda2: Partición ext4 cifrada LUKS: montada como /boot (solicitar contraseña)
  3. /dev/sda3: Partición de intercambio cifrada
  4. /dev/sda4: zpool cifrado que contiene el sistema de archivos raíz (solicita contraseña)

El sistema se inicia y funciona, pero algunas funciones no funcionan correctamente. Al arrancar, systemd se queja de un error en el ciclo de carga, pero el verdadero problema es que tengo que ingresar la contraseña /dev/sda2dos veces (una para GRUB y otra para Linux). solíaesta guíapara configurar un archivo de claves para desbloquear /dev/sda2, pero no importa, todavía solicita una contraseña.

Este es el orden de los ganchos en mi mkinitcpio.conf:

base udev autodetect modcont block keyboard zfs encrypt filesystems

Intenté invertir el orden de zfsy, encryptpero eso creó un problema diferente en el que no configuraba mi partición de intercambio (también podría haber estropeado GRUB [¿supongo que no se pudo montar/arrancar?], tuve que reiniciar en el archiso para arreglarlo). No solucionó mi problema de todos modos, todavía tuve que ingresar la contraseña de /dev/sda2 dos veces.

Mi crypttab:

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

Los parámetros de mi kernel en /etc/default/grub:

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

Mi 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

Al arrancar, el sistema me pide la contraseña /dev/sda2antes de pedirme la /dev/sda4de (incluso cuando cambié el orden de los enlaces mkinitcpio.conf).

Después de investigar un poco, parece que el problema es que el objetivo systemd de ZFS requiere que las particiones cifradas estén desbloqueadas antes de hacer algo, sin embargo, no sé cómo solucionarlo.

información relacionada