bcache의 LUKS에 대한 LVM
여기에 러시아 인형의 게임은 좀 더 깊이 3 스택 / 레이어입니다 ...
이 질문에 대한 나의 초기 아이디어는 LUKS 에서 LVM 과 함께 기본 Ubuntu 설치를 사용하고 블록이 있는 bcache 백업 장치 로 변환하는 것이 었지만 LVM 테스트에서는 작동하지 않았습니다.
또한 우분투 설치 프로그램 ( ubiquity )은 사전에 준비된 bcache 장치 (적어도 LVM의 LUKS) 내부에 설치하기에는 너무 제한되어 있으므로 수동으로 작업하는 방법으로 대체됩니다.
라이브 CD / USB로 부팅하고 "Try 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
Live CD / USB의 알려진 Ubuntu 15.04 재부팅 버그가 있으므로 재부팅 / 종료를 강제해야 할 수도 있습니다
검사
부팅되면 /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] 이 와이 핑 을 수행하는 더 좋은 방법이있을 수 있습니다