完成図
vda 254:0 0 20G 0 disk
├─vda1 254:1 0 512M 0 part /boot
└─vda2 254:2 0 19.5G 0 part
├─VGroup00-lvroot 253:0 0 15G 0 lvm
│ └─cryptroot 253:2 0 15G 0 crypt /
└─VGroup00-lvhome 253:1 0 4.5G 0 lvm
└─crypthome 253:3 0 4.5G 0 crypt /home
目的
- LVMを使用してパーティションのサイズを変更可能とする
- /を暗号化
- /homeを暗号化
- UEFI+GPT+GRUBを使用
手順
- パーティション(gdisk)
Number Start (sector) End (sector) Size Code Name
1 2048 1050623 512.0 MiB EF00 EFI system partition
2 1050624 41943006 19.5 GiB 8E00 Linux LVM
- 暗号化するパーティションの消去
cryptsetup open --type plain /dev/vda2 cnt --key-file /dev/random
dd if=/dev/zero of=/dev/mapper/cnt status=progress bs=1M
sleep 5
cryptsetup close cnt
- Physical volumes、Volume groups、Logical_volumesの作成
pvcreate /dev/vda2
vgcreate VGroup00 /dev/vda2
lvcreate -L 15G -n lvroot VGroup00
lvcreate -l 100%FREE -n lvhome VGroup00
- 暗号化
cryptsetup luksFormat -c aes-xts-plain64 -s 512 /dev/mapper/VGroup00-lvroot
cryptsetup open /dev/mapper/VGroup00-lvroot cryptroot
※/dev/mapper/VGroup00-lvhomeは別途暗号化
- フォーマット
mkfs.ext4 /dev/mapper/cryptroot
mount /dev/mapper/cryptroot /mnt
dd if=/dev/zero of=/dev/vda1 bs=1M status=progress
mkfs.fat -F32 /dev/vda1
arch-chroot後
- パッケージの追加が必要
- /etc/mkinitcpio.confのHOOKにlvm2とencryptが必要
- /etc/default/grubに追記が必要
GRUB_CMDLINE_LINUX_DEFAULT="cryptdevice=/dev/mapper/VGroup00-lvroot:cryptroot
root=/dev/mapper/cryptroot loglevel=3 quiet"
GRUB_PRELOAD_MODULES="part_gpt part_msdos lvm"
- /dev/mapper/VGroup00-lvhomeの暗号化
mkdir -m 700 /etc/luks-keys
dd if=/dev/random of=/etc/luks-keys/home bs=1 count=256 status=progress
cryptsetup luksFormat -v -s 512 /dev/mapper/VGroup00-lvhome /etc/luks-keys/home
cryptsetup -d /etc/luks-keys/home open /dev/mapper/VGroup00-lvhome crypthome
- フォーマット
mkfs.ext4 /dev/mapper/crypthome
- /etc/crypttabに追記