luks のディスクを作る
LUKSのディスクを作るときに、鍵ファイルや、スペア鍵、パスフレーズを設定するのがめんどうだったの手順をできる限り、簡素化して、スクリプトにまとめた
## デバイスを措定 DEV=/dev/sde ## 鍵ファイルを用意 SPARE=/boot/keys/spare.keybin KEY=/boot/keys/disk.keybin SECTOR=512 ## パスフレーズを用意 PASS=$(cat /enc/pass | openssl enc -d -pbkdf2 -base64 -aes256) ## 鍵を3つ登録 ## --sector-size 注意する sudo cryptsetup luksFormat --key-file=$KEY --sector-size=$SECTOR $DEV sudo cryptsetup luksAddKey --key-file=$KEY --new-keyfile=$SPARE $DEV sudo cryptsetup luksAddKey --key-file=$KEY $DEV < <(echo -n $PASS) ## テスト sudo cryptsetup luksOpen --test-passphrase $DEV < <(echo -n "$PASS") sudo cryptsetup luksOpen --test-passphrase --key-file=$KEY $DEV sudo cryptsetup luksOpen --test-passphrase --key-file=$SPARE $DEV ## luks のIDを表示 sudo cryptsetup luksUUID $DEV # Extract the model number and serial number using grep hdparm_output=$(sudo hdparm -I "$DEV" ) model_number=$(echo "$hdparm_output" | grep -oP "Model Number: \K.*" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//') serial_number=$(echo "$hdparm_output" | grep -oP "Serial Number: \K.*" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//') echo $model_number echo $serial_number ## crypttab に登録 MAP_NAME=crypt-disk10 printf "%s UUID=%s %s luks,keyslot=0 # %s/%s %s \n" \ $MAP_NAME $(sudo cryptsetup luksUUID $DEV) $KEY "$model_number" "$serial_number" $(date -I)
/etc/crypttab に書いたらテスト
暗号ディスクを展開する。
sudo cryptdisks_start crypt-disk10 sudo cryptdisks_stop crypt-disk10 sudo cryptdisks_start crypt-disk10
既存のディスクを入れ替える。
既存のLVMに、組み込んで
sudo pvcreate /dev/mapper/crypt-disk10 sudo vgextend data /dev/mapper/crypt-disk10
既存のLVMのデータを移動させる
sudo pvmove /dev/mapper/crypt-disk05 /dev/mapper/crypt-disk10 sudo vgreduce data /dev/mapper/crypt-disk05 sudo pvremove /dev/mapper/crypt-disk05 ## もし、容量拡大ディスクなら resizeも必要。容量縮小なら、shrink する。 sudo resize2fs /dev/mapper/NAME
数TBあると時間かかるので、あとはのんびりと。
過去記事に書いた内容を整理整頓した。