Debian'da benim geçici çözümüm, yukarıda belirtilen hata @sebasth.
Kurulumum biraz farklı. Şifreli bir kök bölümü ve bir sürü baskın diskim var. Benim için crypttab'a bir initramfs seçeneği eklemek zorunda kaldım:
<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
Bu, initramfs güncelleştirmesine initramfs içine bu crypttab girişlerinin monte edilmesini istediğimi söyler. Kripttabımı çalıştırarak kontrol ettim
cryptdisks_start part1_crypt
cryptdisks_start part2_crypt
Baskın disklerimin düz dm-crypt olduğuna dikkat edin. Bu, systemd keyscript hatası etrafında çalışan luks keyfile yöntemini kullanamayacağım anlamına geliyordu. Düz dm-crypt için parolayı düz metin olarak saklamak zorunda kalacağım.
Şifrelenmiş disklerin update-initramfs
çalıştırılmadan önce takılması gerekir ; Aksi takdirde hata atar. İnitramfs kurulurken aşağıdaki satırlara bakmak zorunda kaldım:
update-initramfs -k -u -v | grep 'keyctl'
hangi iki dosyayı gösterdi:
/bin/keyctl
cryptkeyctl
initramfs'a ekleniyor.
Son olarak, yukarıda belirtilen hatayı gidermek için crypttab'ımı kullanıp systemd'yi devre dışı bırakmak zorunda kaldım: systemd, crypttab'daki keyscript seçeneğini desteklemiyor. Bunun için çekirdek seçeneğini ekledim
GRUB_CMDLINE_LINUX_DEFAULT="quiet luks.crypttab=no"
/ etc / default / grub ile koştu update-grub
. systemd şimdi crypttab'ı yok sayar ve tüm şifreli bölümler initramfs içine yüklenir.
Şifreli bir kök bölüme sahip olduğum için, anahtarımı önbelleğe almak için cryptroot görünmüyor. Bu, şifremi iki kez girmem gerektiği anlamına geliyor; kök bölüm için bir tane ve bir kez baskın dizilim için.
expect
sistemin bunu yapmak yerine diskleri monte etmek için çağrılan bir komut dosyası veya benzeri bir yazı yazabilirsiniz . Bunun yerine, sistem parola isteyecek olan betiği arayacak, saklayacak ve her montaj işleminde bunu sağlayacaktır.