비밀번호로 암호화된 키 파일을 사용하여 GPG로 암호화된 LUKS 컨테이너 내부의 LVM 논리 볼륨에 젠투를 설치하려고 합니다. 부팅을 시도하기 전까지는 모든 것이 순조롭게 진행됩니다. 저는 커널과 initramfs를 빌드하기 위해 genkernel을 사용하고 있습니다:
genkernel --lvm --luks --install --menuconfig --busybox all
GRUB2를 사용하여 시작하십시오. 따라서 커널을 부팅한 후 키 파일을 찾았다는 메시지가 표시되지만 다음 줄에서 "LUKS 장치를 열 수 없습니다..."라는 메시지가 표시되고 커널 패닉이 발생합니다. 해결 방법이 무엇입니까?
커널 구성 -http://pastebin.com/YR7TfaVm
GRUB2 메뉴 항목:
menuentry 'Gentoo'{
root='hd1,gpt1'
linux /kernel-genkernel-x86_64-3.17.7-gentoo initrd=/dev/ram0 crypt_root=/dev/disk/by-partuuid/PARTUUID_OF_LUKS_CONTAINTER_PARTION dolvm real_root=/dev/mapper/vg1-root rootfstype=ext4 real_init=/usr/lib/systemd/systemd root_keydev=/dev/disk/by-partuuid/PARTUUID_OF_MY_PENDRIVE_WITH_KEY root_key=luks-key.gpg
initrd /initramfs-genkernel-x86_64-3.17.7-gentoo
echo "initing..."
}
답변1
내 문제는 커널 버전을 3.10으로 변경하고 gpg 버전을 이전 버전으로 변경한 후 해결되었습니다. 이는 pinentry 없이 작동했으며 정적으로 컴파일했습니다. 새 버전에서 모든 내용을 두 번 확인했는데도 pinentry에 항상 문제가 있는 것 같습니다. 또한 나는 genkernel이 pinentry를 자동으로 포함하지 않는다고 생각합니다. 나는 그것을 직접 포함해야했다.
결론적으로:
- 귀하의 gpg 버전에 pinentry가 필요한지 확인하십시오. (제 경우에는 initrd를 만들기 위해 이전 버전으로 되돌렸습니다.)
- 보다 안정적인 커널 버전을 고려하십시오.
- gpg를 정적으로 컴파일하는 것을 고려하십시오.
- initrd 생성 후 모든 라이브러리 종속성을 확인하십시오.심지어genkernel과 같은 것을 사용한다면