LVM no LUKS no bcache
Aqui o jogo boneca russa é um pouco mais profundo com 3 pilhas / camadas ...
Minha ideia inicial sobre essa questão era usar uma instalação padrão do Ubuntu com LVM em LUKS e convertê-la em um dispositivo de backup bcache com blocks mas não funcionou para mim no meu teste com o LVM.
Além disso, o instalador do ubuntu ( ubiquity ) é muito limitado para instalar dentro de um bcache dispositivo preparado antecipadamente (pelo menos com LUKS no LVM), então nós recorremos a um método de fazer as coisas manualmente.
Inicialize no live CD / USB, escolha "Try Ubuntu" e abra um terminal
Pré-instalação
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
Instalação
Mantenha o terminal aberto e agora execute a instalação. Escolha "Outra coisa" ao particionar e especifique
- sua partição de inicialização (
/dev/sda2
) - sua partição raiz (
/dev/mapper/vg-root
) - seu swap (
/dev/mapper/vg-swap
)
e marque a caixa de seleção para formatar suas partições
No final da instalação, não reinicialize , mas clique em "Continuar tentando o Ubuntu"
Pós-instalação
No nosso terminal aberto
# 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
Há um bug de reinicialização do Ubuntu 15.04 conhecido do Live CD / USB, então você pode ter que forçar a reinicialização / desligamento
Verifique
Uma vez iniciado, você pode verificar se /dev/bcache0
é de fato uma partição LUKS com
if sudo cryptsetup isLuks /dev/bcache0; then \
echo "crypted";\
else echo "unencrypted";\
fi
Isso ocorre porque é o cache de sua partição LUKS e agora você acessa seus dados por meio do dispositivo /dev/bcache0
e nunca do dispositivo de backup original ( /dev/sda3
here)
Referências
bcache-status não está oficialmente integrado em bcache-tools, ainda. Você pode tê-lo aqui: link[1] Pode haver maneiras melhores de fazer este limpar