완전히 암호화된 시스템 debootstrap chroot의 Initramfs

완전히 암호화된 시스템 debootstrap chroot의 Initramfs

나 하나 작업 중이야debootstrap에서 완전히 암호화된 정리 가능한 시스템을 생성하는 스크립트. 몇 가지 이점이 있지만 initramfs나오는 이미지는 비밀번호 루트를 올바르게 가져오지 못합니다. qemu로 이미지를 부팅한 후 busybox 셸에 들어가서 다음을 사용하여 luks 암호화를 수동으로 잠금 해제해야 합니다 cryptsetup.

cryptsetup luksOpen /dev/sda1 system
/scripts/local-premount/flashback
exit

(플래시백은 부팅할 때마다 변경 사항을 잊어버리도록 btrfs 스냅샷 마법을 수행합니다)

이후 qemu에서 정상적으로 부팅이 이어져서 좋은 이미지를 구축할 수 있었습니다 initramfs. 나는 그것을 btrfs @root.base 하위 볼륨에 복사했고 그때부터 모든 것이 괜찮았습니다.

chroot 환경에서 cryptsetup/cryptroot 부분이 선택되지 않는 이유를 파악하는 데 도움이 필요합니다 update-initramfs.

echo "CRYPTSETUP=y" >> /usr/share/initramfs-tools/conf-hooks.d/cryptsetup
echo "export CRYPTSETUP=y" >> /usr/share/initramfs-tools/conf-hooks.d/cryptsetup
update-initramfs -ut

나는 많은 것을 시도했고, 멋진 fstab과 crypttab을 작성했으며, grub.cfg에서 명시적으로 cryptdevice를 설정해 보았습니다.특정 버전에 대해서는 스크립트를 참조하세요..

fstab과 crypttab을 생성하는 방법은 다음과 같습니다.

export partuuid=$(blkid $partition | sed -re 's/.*: UUID="([^"]+)".*/\1/')
export decruuid=$(blkid /dev/mapper/$decrypted | sed -re 's/.*: UUID="([^"]+)".*/\1/')
echo "Adding flashback with uuid $partuuid"
echo "system UUID=$partuuid none luks" >> "$rootmount/etc/crypttab"
echo "UUID=$decruuid / btrfs [email protected] 0 0" >> "$rootmount/etc/fstab"
echo "UUID=$decruuid /home btrfs subvol=@home 0 0" >> "$rootmount/etc/fstab"

원칙적으로 문제는 다음과 같습니다.암호화됨제거된 데비안 chroot가 있습니까?

매우 감사합니다

답변1

/etc/initramfs-tools/conf.d/cryptsetup스트레칭에 사용하지 않는 것이 좋습니다.

새로 선호되는 방법은 "CRYPTSETUP=y"에서 설정하는 것입니다 /etc/cryptsetup-initramfs/conf-hook.

Buster 이상에서는 initramfs-cryptsetup 패키지가 설치된 경우 기본 동작이 initramfs에서 cryptsetup을 구성하는 것으로 나타나기 때문에 이 구성 매개변수는 중복되는 것으로 보입니다.

답변2

crypttab이 비어 있어도 항상 작동합니다.

echo 'export CRYPTSETUP=y' > /etc/initramfs-tools/conf.d/cryptsetup

또는 /etc/environment에 다음을 추가할 수 있습니다.

CRYPTSETUP=y

관련 정보