実行中のLinuxシステムを、暗号化されていないライブデータとともにHDDにインストールしたら。そのHDD全体を適切な場所にdm-cryptする合理的な方法はありますか? (バックアップせずに、新しいFSに復元または転送します。)
もしそうなら、それをオンラインで行う方法はありますか?つまりLinuxシステムを1時間程度で操作できるので、すべてのデータを暗号化するのに時間がかかりますか?
(a)十分な空きディスク容量があり、(b)LVMを使用している場合は、次のことができます。
pvresize
)pvmove
を使用して、実際にデータをオンラインで移動できるようになりました。LVMを使用していない場合は、おそらく絶望的です。確かに、たとえばrsyncを使用して、あるファイルシステムから別のファイルシステムにデータをコピーすることもできますが、マシンをアイドル状態にして最終同期を行う必要があります(そうしないと、ファイルをコピーしようとするとファイルが変更されます)。
ツールは存在するはずですが、名前やURLを提供できません。しかし、あなたが恐れていなければ:-)それは難しいことではありません。暗号化されていないデバイスから読み取り、暗号化されたデバイスに書き込むだけです。また、ファイルシステムのサイズを少し小さくする前にサイズを変更しない限り、LUKSを使用することはできません。そしてもちろん、これはマウントされているデバイスでは機能しません(おそらく、roにマウントされている場合でも機能しません)。コア機能(クラッシュに対する保護なし)はこれです(そして、ええ、私はそれをうまく試しました):
for((i=0;i<100;i++)); do
echo "Copying block with offset ${i} to tmpfs"
dd if=/dev/storage2/test of=/mnt/tmpfs/cryptoblock skip=$i bs=10M count=1 &>/dev/null
echo "Copying block with offset ${i} from tmpfs"
dd if=/mnt/tmpfs/cryptoblock of=/dev/mapper/crypt_test seek=$i bs=10M count=1
done
改善の明らかな要求は次のとおりです。代わりにブロックを不揮発性媒体にコピーし、それらのオフセットをログに記録します。クラッシュした場合は、中断されたトランザクションのブロックを手動でコピーし、次のブロックのオフセットを開始値としてループを開始します。