ααΆααααΈαα½ααααΈα’αααααΆααα’ααααααΆ! ααΆααααα αααααααΉαααΆααααααααααααααΆααα’ααααααααααΎααΆαα’αα·αααααΈααα·αααααα LUKS α αΎαα αααα·ααααΈαααΆααα αααααααΈαα»α (ααααα, α’ααΌααα»αααΌ) αα ααΎ ααααΆααααΆαααααΆααα·ααααΈαααΆαααΆαααΆ root. α αΎααααα»ααα·αα’αΆα αααααααααααααΆααααααααα ααΎα’ααΈαααΊαα·αααΆαααα
ααααΈαααα ααΆαα½αααΉαααΆαααΎαα‘αΎαααα ααα½αααΆααα αααα»αααααΎ αααα»αααΆααα½ααααα αΆααααΆααα·ααααΈαααΆααααααααΎαα·ααΈααΆααααααααααααΈααΆαααΆαααα /etc/crypttabα αααααααΆαα αααα»αααΌααααααΆααααΈαααα αΆαα½αα ααα½ααααα»αααΆαααααΎααααΆαααα·ααΈααΆαααααααα αααααΊα―αααΆααααα»αααααΌαααΆαα’αΆα αααααΆααααΈαααα»α (αααα) ααΆαααΆαα«ααααααα₯αααα·ααα’αα·αααααΆααααααΆαααΆαα αΌα ZFS ααΆαα·αααααααα·αααΎαα½αααααααΌαααΆααααααΎαα‘αΎαααΈααΆαααΆααα ααΎα§ααααα *_crypt α¬ mdadm ααΆαααααααααααΆααααααΎαααΈααΆαααΆααααααα ααΎαααΆααα’ααααααΆααΉαα αΎαααΆ α’αααα’αΆα ααααΎααααααα ααΎαα»α LUKS ααααα? α αΎαβααβααΆβαααα αΆβααβααΆαβα αΆααβααααΎβαβααααΌαβααβααααΆβαααααβαααβαα βαααβαααβαα·αβααΆαβα’αΆααβαα βα‘αΎαβααβααα»αααα ααααΎ αααα»αβααααΌαβααΆαβα’αααΈβαα½αβαα½α βαα βα αΎα (αααα»αβααααΎβααΆαβααΆαα½α Proxmox VE 5.x αα·α ZFS αααβααΆαβα αααααβααΎ iSCSI)α
ααααα·α α’αααΈ ZFSoverISCSIiSCSI ααααΎαααΆααααααΆαααααα»αααΆαααα LIO α αΎαααΆααα·α αα ααααααααααα iscsi α αΆααααααΎα α αΎααα·αααΎαα§ααααα ZVOL ααΆααααΆαααααααα½αααΆα ααααΈααΆαααααα αααααΆαααΆααααααααααααααααΈααΆαα αΆααααααΎαα ααΌα αααα ααΆααααΆαααααΆαααΆαααααα»ααα»αα―αααΆα json α¬ααΆαααααααα§ααααααααααααΆαα½αααΉαα§ααααααααααα’ααααααααΆααααααΆαα VM ααΈαα½αα ααααα·αααΆαα½αα±αααααααααΆα αα ααααααααΆααααΆαααΈαααααααααΆαααα·α α αΎαααΆααααααααΈαα½ααααΆαα αααΎαααΆα 1 ααΆαα
α αΎααααα½αααΈααΈαααααααα»αααΉααα·α
αΆαααΆααΊαααααα·ααααΈα (αααααΊααΆα
ααα»α
ααααΆααααα’ααααα)α α αΎαβααΎαβααΉαβαα·ααΆαβα’αααΈβα
ααα»α
βαααβαα
βααΆαβαααααβα
α»α!
ααΆαα
αααΎαααΆααΉαααΆαααα
ααΎα’ααΈαααΊαα·α α―αααΆααααααΉααα½αααααΌαααΆαααααΎ (ααααααααααααα½αα―ααα
ααααααααα»αααααααααΆααααααααΆ - cryptsetup luksAddKey) α¬αααα»αααααΈααΎαααααααααα (αα
ααΎα’ααΈαααΊαα·αααΆααΆααΆαα»ααααΈααΆαααααααΆααα·α
αα½α
ααΆαα) - ααααααΈα decrypt_derived αααααΆαααΈααΆαααα
/lib/cryptsetup/script/ (ααΆααΆααα·αααΆαα ααΆααα·ααΈαααααααα ααα»αααααααα»αααΆαααααΎααΆααααΈαααα ααααααααΎαααΆααΌαααααΆαααα’ααααα)α αααα»αααααααΆααΆααααααΆααααΆαααΆαααααα
αΌααααααααΆααααααααααααΆααααΈααΆαα
αΆααααααΎαα‘αΎααα·α αααααααΆαααΆααααααααΆααααααααΆαα½ααα
αααα»ααα»αααΌα ααΌα
ααααα’αααΈαααΉα "α ααα‘αΎα" αααααΆαααααα»ααααα»αααααααα½αα ααΌα
αααα α ααα»α’αααΈααααΌααααα
αΆα? β
αααβα αΆααααααΎα!
α αΌααααααααΆαααααααααα½αααΌα ααΆ Debian αααααΆαααα‘αΎααα ααΎααΆαααΆαααααΈα sda3_crypt αα·αααΆαααΆαααα·ααααααααααα½α ααΆααααα αααα»αααΆαα’αα·αααααΈα αα·ααααααΎααα αααα»αααααΉαααΆααααααααΌαααααα’αααα ααΎαααΆαααααΆαααααΆαα (passphrase) ααΎααααΈααααα sda3_crypt α αΎαααΆααααΈααΆαααΆαααααααααΎαααΉααα βhashβ α ααααΈααΆααααααααΆαααα ααΎααααααααααααααα»αααααΎαααΆα (αα·ααααΈα) α αΎαααααααααΆαα ααΆαααααα αααα α’αααΈααααααααΆαααΊααααα αααα»ααα»αααΌααααααΎαααααα·ααααα·α
/lib/cryptsetup/scripts/decrypt_derived sda3_crypt | cryptsetup luksFormat /dev/sdX
ααα X ααΊααΆααΆαααααααΎα ααΆαααΆαααα
αααααΆααααΈααΆαα’αα·αααααΈαααΆαααα "hash" ααΈααααΆαααααΆααααααααΎα α’αααααααΌαααααααα UUID α¬ ID - α’αΆαααααααΎα’αααααΆαααααααΎααΎααααΈα’αααΈ αα·αα’αααΈα ααΎααααα·ααααααααΈ /dev/disk/by-uuid αα·α by-id αααααααα½αα
ααα αΆααααααΆααααΊααΆααααα αα―αααΆα αα·αααααααΈαααααΆαααΌα αααααΆαααα»αααΆααααααΎαααααΌαααααΎαααΆα αααααααα
cp -p /usr/share/initramfs-tools/hooks/cryptroot /etc/initramfs-tools/hooks/
cp -p /usr/share/initramfs-tools/scripts/local-top/cryptroot /etc/initramfs-tools/scripts/local-top/
ααααααααα
touch /etc/initramfs-tools/hooks/decrypt && chmod +x /etc/initramfs-tools/hooks/decrypt
ααααΉαααΆααα ../αα·ααααΈα
#!/bin/sh
cp -p /lib/cryptsetup/scripts/decrypt_derived "$DESTDIR/bin/decrypt_derived"
ααααααααα
touch /etc/initramfs-tools/hooks/partcopy && chmod +x /etc/initramfs-tools/hooks/partcopy
ααααΉαααΆααα ../partcopy
#!/bin/sh
cp -p /sbin/partprobe "$DESTDIR/bin/partprobe"
cp -p /lib/x86_64-linux-gnu/libparted.so.2 "$DESTDIR/lib/x86_64-linux-gnu/libparted.so.2"
cp -p /lib/x86_64-linux-gnu/libreadline.so.7 "$DESTDIR/lib/x86_64-linux-gnu/libreadline.so.7"
ααααα·α βααα
touch /etc/initramfs-tools/scripts/local-bottom/partprobe && chmod +x /etc/initramfs-tools/scripts/local-bottom/partprobe
ααααΉαααΆα ../partprobe
#!/bin/sh
$DESTDIR/bin/partprobe
α αΎαα α»αααααα αα»ααααα’αΆααααα-initramfs α’αααααααΌαααααααα½αα―αααΆα /etc/initramfs-tools/scripts/local-top/cryptroot α αΆααααααΎαααΈαααααΆαα ~360 α’αααααααΌαααΆαααααα
ααΎα
# decrease $count by 1, apparently last try was successful.
count=$(( $count - 1 ))
message "cryptsetup ($crypttarget): set up successfully"
break
α αΎαααααΆαα αααααααααα
ααΆαααααααα½α
# decrease $count by 1, apparently last try was successful.
count=$(( $count - 1 ))
/bin/decrypt_derived $crypttarget | cryptsetup luksOpen /dev/disk/by-uuid/ *CRYPT_MAP*
/bin/decrypt_derived $crypttarget | cryptsetup luksOpen /dev/disk/by-id/ *CRYPT_MAP*
message "cryptsetup ($crypttarget): set up successfully"
break
α αααΆαααΆ UUID α¬ ID α’αΆα ααααΌαααΆαααααΎαα ααΈαααα ααΏαα αααααΊααΆαααααα·ααΈαααααΆα αΆαααΆα ααααααΆααα§ααααα HDD / SSD ααααΌαααΆααααααααα /etc/initramfs-tools/modules α α’αααβα’αΆα βααΉαβααΆβ Driver αα½αβααΆβααααΌαβααΆαβααααΎβααΆαα½αβααΉαβααΆαααβαααααΆ ααααααΆα udevadm -a -n /dev/sdX | egrep 'ααααΎα|α’αααααΎααα'.
α₯α‘αΌαβαααβααΎαβααΆαβααααΎβαα½α α αΎαβα―αααΆαβααΆααβα’ααβαα βααΉαβαααααα ααΌαβααααΎαααΆα α’αΆααααα-initramfs -u -k ααΆααα’αα -v, αα αααα»αααΆαααΆααααΎ αα·αααααΌα ααα α»ααααα»αααΆαααααα·ααααα·ααααααααΈαααααααΎαα ααΎαα αΆααααααΎαα‘αΎααα·α αααα αΌαααααΆαααααΆαα α αΎααααα αΆαααααα·α α’αΆαααααααΎα ααα½αααΆαα αααααΆααααααααααααααΉαα αΆααααααΎα α αΎααα ααααΆααααΆαα α»ααααααααααΆαα αΆααααααΎα αααααΊαααααΆααααΈ "αααα" ααΆαααΆαααΆ root ααΆααααααααΆ partprobe ααΉαααααΌαααΆαααααα·ααααα· - ααΆααΉαααααααα αα·αααααΆαααΆααααααΆααααααΎαααΆααα’αααα ααΎα§ααααα LUKS αα·αα’αΆααααΆαα½α ααΆααΎ ZFS α¬ mdadm, ααΉαααααΌαααΆααα½αααααα»αααααΆαααααααΆααααα αΆ! α αΎαααΆααα’ααααα αα»αααααααα»α ααααΆααααααααΌα αα·αααααΆαααααααααααΌαααΆαααΆα/α’αΆααααΆαααααα
ααααΎαα
αα
α»ααααααααΆα α£α αααα
ααααα: www.habr.com