@sebasth가 위에서 언급 한 버그를 감안할 때 데비안에 대한 해결 방법은 다음과 같습니다.
설정이 약간 다릅니다. 암호화 된 루트 파티션과 많은 레이드 디스크가 있습니다. 나를 위해 crypttab에 initramfs 옵션을 추가해야했습니다.
<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
이것은 update-initramfs에게이 crypttab 항목을 initramfs에 마운트하고 싶다고 알려줍니다. 나는 crypttab을 실행하여 확인했다.
cryptdisks_start part1_crypt
cryptdisks_start part2_crypt
내 레이드 디스크는 일반 dm-crypt입니다. 이것은 systemd 키 스크립트 버그를 해결하는 luks 키 파일 방법을 사용할 수 없음을 의미했습니다. 일반 dm-crypt의 경우 암호를 일반 텍스트로 저장해야합니다.
암호화 된 디스크 update-initramfs
는 실행 되기 전에 마운트해야 합니다. 그렇지 않으면 오류가 발생합니다. 내 initramfs를 만들 때 다음 줄을 찾아야했습니다.
update-initramfs -k -u -v | grep 'keyctl'
다음 두 파일이 표시되었습니다.
/bin/keyctl
cryptkeyctl
initramfs에 추가됩니다.
마지막으로 위에서 언급 한 버그를 처리하기 위해 crypttab을 처리하는 systemd를 비활성화해야했습니다. systemd는 crypttab의 keyscript 옵션을 지원하지 않습니다. 이를 위해 커널 옵션을 추가했습니다
GRUB_CMDLINE_LINUX_DEFAULT="quiet luks.crypttab=no"
/ etc / default / grub으로 가서 실행하십시오 update-grub
. systemd는 이제 crypttab을 무시하고 모든 암호화 된 파티션이 initramfs에로드됩니다.
암호화 된 루트 파티션이 있으므로 cryptroot가 내 키를 캐시하지 않는 것 같습니다. 즉, 비밀번호를 두 번 입력해야합니다. 하나는 루트 파티션이고 다른 하나는 RAID 배열입니다.
expect
시스템에서 수행하는 대신 디스크를 마운트하도록 호출 되는 스크립트 또는 이와 유사한 스크립트를 작성할 수 있습니다 . 대신 시스템은 스크립트를 호출하여 암호를 요청하고 저장 한 다음 각 마운트 작업에 암호를 제공합니다.