私はこのフォーマットのディスクを持っています:
_sdc 8:32 0 1,8T 0 disk
└─sdc1 8:33 0 1,8T 0 part
├─vg-lv1 (dm-0) 254:0 0 900G 0 lvm /media/lv1
└─vg-lv2 (dm-1) 254:1 0 923G 0 lvm
└─lv2 (dm-9) 254:9 0 923G 0 crypt /media/lv2
_
_lv2
_はext4ファイルシステムですが、その下のブロックデバイス(論理ボリューム_vg-lv2
_)は_dm-crypt
_で暗号化されています。
このファイルシステムを安全に拡張するための手順は何ですか?
私はすでに論理ボリュームを拡大しており、_resize2fs
_を実行する必要があることはわかっていますが、_dm-crypt
_レイヤーで何かを実行する必要があると思います。
私は最初にこのファイルシステムを2つのステップ(疑似シェルスクリプト)で作成しました:
ブロックデバイスを消毒します
lvcreate vg-lv2
_$randompassword = $(pwgen)
cryptsetup luksFormat --cipher aes-cbc-essiv:sha256 --key-size 256 /dev/mapper/vg-lv2
_、キーとして_$randompassword
_。cryptsetup luksOpen /dev/mapper/vg-lv2 sanitize
_Nice -20 ionice -c 3 dd if=/dev/zero of=/dev/mapper/sanitize bs=1M
_cryptsetup remove sanitize
_実稼働用のブロックデバイスを準備します
cryptsetup luksFormat --cipher aes-cbc-essiv:sha256 --key-size 256 /dev/mapper/vg-lv2
_、新しいキーを使用。cryptsetup luksOpen /dev/mapper/vg-lv2 lv2
_mke2fs /dev/mapper/vg-lv2
_(引数は覚えていませんが、おそらくありませんでした)本番環境で使用する準備ができたら、暗号化されていないブロックデバイスをゼロにしました(暗号化されたデバイスに疑似ランダムデータを効果的に書き込みます)。
さて、ファイルシステムを拡張したいので、最初のステップを実行して、使用する前にサニタイズする必要があります。これは私がする方法ではないことです:
/dev/mapper/vg-lv2
_と_dd if=/dev/zero of=/dev/mapper/vg-lv2 bs=1M skip=$SKIPBLOCKS
_のオフセットが何であるかを知る必要があります。 notこの_$SKIPBLOCKS
_変数を間違える可能性があるので、実際に知る必要があるのは、その後の最初の空のブロックである既存のファイルシステムを前提として、どのように知ることができるかです。そのスペース以降をランダム化できます。Dmcryptボリュームのサイズはresize
で変更できます。
cryptsetup --help|grep -i resize
resize <name> - resize active device
それが完了したら、resize2fs
できます。
ランダムデータについてコメントする場合は、ファイルシステム内からコメントすることもできます。したがって、サイズを変更してマウントし、最後のすべてのバイトをランダムファイルで埋めます。
dd if=/dev/urandom of=/deleteme bs=1M
そして、ファイルを削除します。
(最良の結果を得るには、tune2fs
を使用して予約済みブロック数を0%(一時的)に設定します)