Đây là cách giải quyết của tôi về debian, với lỗi được tham chiếu ở trên bởi @sebasth.
Thiết lập của tôi là hơi khác nhau. Tôi có một phân vùng gốc được mã hóa và một loạt các đĩa đột kích. Đối với tôi, tôi đã phải thêm tùy chọn initramfs vào crypttab:
<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
Điều này nói với update-initramfs rằng tôi muốn có các mục nhập tiền điện tử này được gắn kết trong initramfs. Tôi đã kiểm tra tiền điện tử của mình bằng cách chạy
cryptdisks_start part1_crypt
cryptdisks_start part2_crypt
Lưu ý rằng các đĩa đột kích của tôi là dm-crypt đơn giản. Điều này có nghĩa là tôi không thể sử dụng phương thức keyfile luks hoạt động xung quanh lỗi keycript systemd. Đối với dm-crypt đơn giản, tôi sẽ phải lưu cụm mật khẩu trong văn bản gốc.
Các đĩa được mã hóa phải được gắn trước khi update-initramfs
chạy; nếu không nó sẽ ném lỗi. Tôi đã phải tìm các dòng sau khi initramfs của tôi được xây dựng:
update-initramfs -k -u -v | grep 'keyctl'
trong đó cho thấy hai tập tin sau:
/bin/keyctl
cryptkeyctl
được thêm vào initramfs.
Cuối cùng, tôi đã phải vô hiệu hóa systemd xử lý crypttab của mình, để xử lý lỗi được tham chiếu ở trên: systemd không hỗ trợ tùy chọn keycript trong crypttab. Đối với điều này, tôi đã thêm tùy chọn kernel
GRUB_CMDLINE_LINUX_DEFAULT="quiet luks.crypttab=no"
đến / etc / default / grub và chạy update-grub
. systemd bây giờ bỏ qua crypttab và tất cả các phân vùng được mã hóa được tải trong initramfs.
Bởi vì tôi có một phân vùng gốc được mã hóa, cryptroot không xuất hiện để lưu trữ khóa của tôi. Điều này có nghĩa là tôi phải nhập mật khẩu của mình hai lần; một cho phân vùng gốc và một lần cho mảng đột kích của tôi.
expect
tập lệnh hoặc tương tự được gọi để gắn các đĩa thay vì hệ thống thực hiện nó. Thay vào đó, hệ thống sẽ gọi tập lệnh sẽ yêu cầu mật khẩu, lưu trữ và cung cấp nó cho từng hoạt động gắn kết.