私は debootstrapから完全に暗号化されたウォッシャブルシステムを作成するスクリプト に取り組んでいます。うまくいきますが、出力されるinitramfs
イメージはcryptrootを適切に取得しません。 qemuでイメージを起動した後、busyboxシェルに移動し、cryptsetup
を使用して手動でluks暗号化のロックを解除する必要があります。
cryptsetup luksOpen /dev/sda1 system
/scripts/local-premount/flashback
exit
(フラッシュバックは、ブートごとに行われた変更を忘れるために、いくつかのbtrfsスナップショットの魔法を行います)
この後、qemuでのブートは通常どおり続行され、適切なinitramfs
イメージを生成できます。これをbtrfs @ root.baseサブボリュームにコピーし、それ以降はすべて順調です。
Cryptsetup/cryptrootの部分がupdate-initramfs
によってchroot環境で取得されない理由を理解するのに助けが必要です。
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"
原則的には、次のとおりです。機能するinitramfsイメージをencryptedchrootでどのように生成しますか? debianstrapped debian?
本当にありがとう
これは、空のcrypttabがあっても常に機能します。
echo 'export CRYPTSETUP=y' > /etc/initramfs-tools/conf.d/cryptsetup
または、これを/ etc/environmentに追加できます。
CRYPTSETUP=y
/etc/initramfs-tools/conf.d/cryptsetup
の使用は、stretchでは非推奨です。
新しく推奨される方法は、"CRYPTSETUP=y"
に/etc/cryptsetup-initramfs/conf-hook
を設定することです。