Xubuntuをインストールした後にSSDを暗号化したくなった
やること
Xubuntuをインストールして使っていたけど、後からディスク(SSD)全体を暗号化したくなったときにやること。 同じSSDを使って暗号化するため、一度データは全部消す。システムを動かしたまま暗号化はできない。
この手順は、実機でやる前にKVM上のXubuntu 19.10でやった。
暗号化後に必要なものを、暗号化前のシステムでインストールしておく
sudo apt install lvm2 cryptsetup-initramfs
バックアップとパーティション作成
これは、USBからXubuntuを起動して行う。
まずは、バックアップ
sudo mkdir /backup sudo mount -t ext4 /dev/vdb1 /backup sudo mount -t ext4 -o ro /dev/vda2 /mnt sudo apt install dump sudo dump -0 -z -f /backup/root.dump /mnt sudo umount /mnt sudo umount /backup
次にパーティションを作成する。
sudo cgdisk /dev/vda
ここまで終わったら、システムを再起動する。 再起動しないで進めたら、cryptsetupの時にパーティションの容量が何故か少なくなった。 cgdiskの終了時にも警告が出るが、多分、カーネルが古いパーティションテーブルをキャッシュしているからだと思う。
暗号化パーティション作成
再起動が終わったら、パーティションを暗号化する。
sudo cryptsetup luksFormat /dev/vda3
sudo cryptsetup open /dev/vda3 vda3_crypt
sudo cryptsetup status vda3_crypt
暗号化したパーティション状にLVMのボリュームを作る。
sudo pvcreate /dev/mapper/vda3_crypt sudo pvdisplay sudo vgcreate vgxubuntu /dev/mapper/vda3_crypt sudo vgdisplay sudo lvcreate --size 1024m vgxubuntu -n swap sudo lvcreate -l 100%FREE vgxubuntu -n root sudo lvdisplay
作ったら、ext4でフォーマットする。
sudo mkfs -t ext4 -L boot /dev/vda2 sudo mkfs -t ext4 -L root /dev/mapper/vgxubuntu-root
swapも。
sudo mkswap /dev/mapper/vgxubuntu-swap
リストア
バックアップを元に戻す。
sudo mount -t ext4 -o noatime /dev/mapper/vgxubuntu-root /mnt Sudo mkdir /backup sudo mount -t ext4 -o ro /dev/vdb1 /backup cd /mnt sudo mkdir boot sudo mount -t ext4 -o noatime /dev/vda2 /mnt/boot sudo apt install dump sudo restore -v -r -f /backup/root.dump cd sudo umount /backup /mnt/boot /mnt
crypttab, fstab, grub
起動できるように設定する。 マウントしてから設定する。
sudo mount -t ext4 -o noatime /dev/mapper/vgxubuntu-root /mnt sudo mount -t ext4 -o noatime /dev/vda2 /mnt/boot sudo mount -t vfat -o noatime /dev/vda1 /mnt/boot/efi
マウントしたら、crypttab, fstabを書き換える。 crypttabにはvda3をマウントするように設定しておく、 fstabは/に/dev/mapper/vgxubuntu-rootをマウントするようにする。 そのほか、swapなども忘れずに設定する。
最後に、grubとinitramfs。
sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys sudo mkdir /mnt/run/udev sudo mount --bind /run/udev /mnt/run/udev sudo chroot /mnt grub-install --efi-directory=/boot/efi --boot-directory=/boot --target=x86_64-efi --removable --recheck sudo chroot /mnt update-initramfs -k all -u sudo chroot /mnt update-grub
これで終わり。
sudo umount /mnt/dev /mnt/proc /mnt/sys /mnt/run/udev /mnt/boot/efi /mnt/boot /mnt
再起動して、パスワードを入力すると、起動できる。