Hier ist meine Problemumgehung für Debian angesichts des Fehlers, auf den @sebasth oben verwiesen hat.
Mein Setup ist etwas anders. Ich habe eine verschlüsselte Root-Partition und eine Reihe von RAID-Festplatten. Für mich musste ich dem crypttab eine initramfs-Option hinzufügen:
<target> <source> <keyfile> <options>
part1_crypt /dev/disk/... crypt_disks plain,cipher=aes-xts-plain64,keyscript=decrypt_keyctl,initramfs
part2_crypt /dev/disk/... crypt_disks plain,cipher=aes-xts-plain64,keyscript=decrypt_keyctl,initramfs
Dies teilt update-initramfs mit, dass ich diese Crypttab-Einträge in das initramfs einbinden möchte. Ich habe mein Crypttab überprüft, indem ich ausgeführt habe
cryptdisks_start part1_crypt
cryptdisks_start part2_crypt
Beachten Sie, dass meine RAID-Festplatten reine DM-Krypta sind. Dies bedeutete, dass ich die luks keyfile-Methode nicht verwenden konnte, die den systemd keyscript-Fehler umgeht. Für reine dm-Krypta müsste ich die Passphrase im Klartext speichern.
Die verschlüsselten Festplatten müssen eingehängt werden, bevor sie update-initramfs
ausgeführt werden. Andernfalls werden Fehler ausgegeben. Ich musste nach den folgenden Zeilen suchen, als mein initramfs erstellt wurde:
update-initramfs -k -u -v | grep 'keyctl'
das zeigte die folgenden zwei Dateien:
/bin/keyctl
cryptkeyctl
wird zu den initramfs hinzugefügt.
Schließlich musste ich die Behandlung meines crypttab durch systemd deaktivieren, um den oben genannten Fehler zu beheben: systemd unterstützt die Option keyscript in crypttab nicht. Zu diesem Zweck habe ich die Kernel-Option hinzugefügt
GRUB_CMDLINE_LINUX_DEFAULT="quiet luks.crypttab=no"
nach / etc / default / grub und lief update-grub
. systemd ignoriert jetzt crypttab und alle verschlüsselten Partitionen werden in das initramfs geladen.
Da ich eine verschlüsselte Root-Partition habe, scheint Cryptroot meinen Schlüssel nicht zwischenzuspeichern. Dies bedeutet, dass ich mein Passwort zweimal eingeben muss. eine für die Root-Partition und eine für mein RAID-Array.
expect
Skript oder ähnliches schreiben , das aufgerufen wird, um die Datenträger zu mounten, anstatt es vom System ausführen zu lassen. Stattdessen ruft das System das Skript auf, das nach dem Kennwort fragt, speichert es und stellt es den einzelnen Mount-Vorgängen zur Verfügung.