LVM บน LUKS บน bcache
ที่นี่เกมตุ๊กตารัสเซียนี้มีความลึกเล็กน้อยด้วย 3 กอง / ชั้น ...
แนวคิดเริ่มต้นของฉันเกี่ยวกับคำถามนี้คือการใช้การติดตั้ง Ubuntu เริ่มต้นด้วยLVM บน LUKSและแปลงเป็นอุปกรณ์สำรองข้อมูลbcacheด้วยบล็อกแต่มันไม่ได้ผลสำหรับการทดสอบกับ LVM ของฉัน
ยิ่งไปกว่านั้นตัวติดตั้ง ubuntu ( ubiquity ) ถูก จำกัด เกินกว่าที่จะติดตั้งในอุปกรณ์bcache ที่เตรียมไว้ล่วงหน้า (อย่างน้อยก็มี LUKS บน LVM) ดังนั้นเราจึงกลับไปใช้วิธีการทำสิ่งต่าง ๆ ด้วยตนเอง
บูตเข้าสู่ CD / USB สดแล้วเลือก "ลอง Ubuntu" และเปิดเทอร์มินัล
ติดตั้งล่วงหน้า
sudo -i
# Define some variable to avoid confusion and error
luks_part=/dev/sda3
boot=/dev/sda2 # boot partition
caching_bcache=/dev/sdb # SSD or partition in SSD
# Do secure erase of encrypted backing and caching device (see Notes [1])
dd if=/dev/urandom of=$luks_part || dd if=/dev/urandom of=$caching_bcache
# Go and grab some coffe, this will take a while...
apt-get install bcache-tools
# Setup bcache caching and backing devices
make-bcache -C $caching_bcache -B $luks_part
# (Optional) Tweak bcache
echo writeback > /sys/block/bcache0/bcache/cache_mode
# Below we now create manually what ubiquity should have done for us
# Setup LUKS device on bcache device
cryptsetup --key-size 512 luksFormat /dev/bcache0
cryptsetup luksOpen /dev/bcache0 crypted
# Setup LVM on LUKS
# You can skip that part if you don't want to use a swap
# or don't want to use multiple partition. Use /dev/mapper/crypted
# as you root latter on
pvcreate /dev/mapper/crypted
vgcreate vg /dev/mapper/crypted
lvcreate -L 1G vg -n swap
lvcreate -l 100%FREE vg -n root
การติดตั้ง
เปิดเทอร์มินัลค้างไว้และทำการติดตั้งในขณะนี้ เลือก "อย่างอื่น" เมื่อแบ่งพาร์ติชันและระบุ
- พาร์ติชันสำหรับเริ่มระบบของคุณ (
/dev/sda2
)
- พาร์ติชั่นรูทของคุณ (
/dev/mapper/vg-root
)
- การแลกเปลี่ยนของคุณ (
/dev/mapper/vg-swap
)
และทำเครื่องหมายในช่องเพื่อจัดรูปแบบพาร์ติชันของคุณ
ในตอนท้ายของการติดตั้งอย่ารีบูตแต่เพียงแค่คลิก "ลองอูบุนตูต่อ"
โพสต์ติดตั้ง
ในเทอร์มินัลที่เปิดของเรา
# Install bcache-tools to add bcache module to initramfs
mount /dev/mapper/vg-root /mnt
mount $boot /mnt/boot
mount -o bind /sys /mnt/sys
mount -o bind /proc /mnt/proc
mount -o bind /dev /mnt/dev
chroot /mnt
# To get apt-get running in the chroot
echo 'nameserver 8.8.8.8' > /run/resolvconf/resolv.conf
apt-get install bcache-tools
# Create /etc/crypttab to add crypted bcached partition
echo "crypted UUID=`blkid -o value /dev/bcache0|head -1` none luks" > /etc/crypttab
exit
sync
umount /mnt/sys
umount /mnt/proc
umount /mnt/dev
umount /mnt/boot
umount /mnt
vgchange -an /dev/mapper/crypted
cryptsetup luksClose crypted
sync
# Reboot & enjoy
มีข้อผิดพลาด Ubuntu 15.04 รีบูทที่รู้จักจาก Live CD / USB ดังนั้นคุณอาจต้องบังคับให้รีบูต / ปิดเครื่อง
ตรวจสอบ
เมื่อบู๊ตแล้วคุณสามารถตรวจสอบว่า/dev/bcache0
จริง ๆ แล้วเป็นพาร์ติชันLUKSด้วย
if sudo cryptsetup isLuks /dev/bcache0; then \
echo "crypted";\
else echo "unencrypted";\
fi
นี่เป็นเพราะมันเป็นแคชของพาร์ติชัน LUKS ของคุณและตอนนี้คุณเข้าถึงข้อมูลของคุณผ่านอุปกรณ์/dev/bcache0
และไม่เคยมาจากอุปกรณ์สำรองข้อมูล ( /dev/sda3
ที่นี่)
อ้างอิง
http://bcache.evilpiepirate.org/
https://wiki.archlinux.org/index.php/Bcache
https://wiki.archlinux.org/index.php/Dm-crypt
bcache-statusยังไม่ถูกรวมเข้ากับ bcache-tools อย่างเป็นทางการ คุณสามารถรับได้ที่นี่: https://gist.github.com/djwong/6343451
[1] อาจมีวิธีที่ดีกว่าในการเช็ดสิ่งนี้