내 /etc/crypttab은 다음과 같습니다.
sda7_crypt UUID=<...> /dev/sda8:/keyfile luks,discard,keyscript=/lib/esi/tpm_key_pass
sda7_crypt
내 루트 파일 시스템이므로 update-initramfs
초기에 이를 사용하여 암호를 해독합니다(그렇지 않으면 부팅을 계속할 수 없습니다).
그러나 systemd는 systemd-cryptsetup@sda7_crypt.service
a에 의존하는 유닛을 자동으로 생성하며 dev-sda8:-keyfile.device
해당 유닛은 시간 초과됩니다. 이는 결국 실패하지만 시작 시간이 느려지고 오류 메시지가 생성됩니다.
initram에 의해 이미 마운트되었으며 systemd에 의해 마운트될 필요가 없음을 표시하는 방법은 무엇입니까? noauto
crypttab에서 옵션을 고려했지만 이로 인해 ini 트램에 로드되지 않을 수도 있다는 걱정이 됩니까?
고쳐 쓰다:
나는 그것을 시도했지만 noauto
성공하지 못했습니다. 여전히 initram에 설치되어 있지만 여전히 부팅을 시도 중입니다. crypttab은 이제 다음과 같습니다:
sda7_crypt UUID=<...> /dev/sda8:/keyfile luks,discard,keyscript=/lib/esi/tpm_key_pass,noauto
이것을 청소하려면 어떻게 해야 합니까?
답변1
데비안의 버그 보고서에 따르면 systemd 장치를 비활성화하는 것이 현재 최선의 해결책입니다.
systemctl mask systemd-cryptsetup@root_crypt.service
이 아이디어를 생각해낸 Michel에게 감사드립니다!
답변2
이것은 systemd와 그것이 정확히 어떻게 작동하는지에 대한 두 가지 별도의 문제인 것으로 나타났습니다 systemd-cryptsetup-generator
.
- 옵션을 인식하지 못하므로
keyscript=...
다음과 같은 유효한 키를 차단합니다.passdev
/dev/sda8:/keyfile
- 자동으로 생성된 systemd 장치는
systemd-cryptsetup-generator
프로젝트가 설치되었음을 인식할 만큼 똑똑하지 않으며 다시 설치를 시도합니다.
자세한 내용은 이 데비안 버그 보고서를 참조하세요.https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=618862
버그 보고서에 따르면 커널 옵션을 전달하여 시스템 단위 생성을 방지할 수 있지만 luks=no
이렇게 하면 방지됩니다.모두crypttab이 자동으로 마운트됩니다. 암호화된 루트만 있으면 괜찮지만 별도의 파티션이 있는 경우에는 마운트되지 않습니다.