私のデータは私のハードドライブ(他のハードドライブで利用可能な最も重要なデータの部分バックアップ)にあり、現在LUKS経由のLVM経由のExt4としてフォーマットされています。 LUKSレイヤーを削除したいのですが、バックアップからデータを再フォーマットして復元する作業が長すぎて面白くありません。大きなバッファを使用せずにデータを破損することなく、LUKSパーティションをその内容で上書きする可能性/機会はありますか?
ベストアンサー1
とにかくすべてのデータをコピーする必要があります。この時点では必ずバックアップが必要です。バックアップデバイスがアクティブディスクよりはるかに遅くない限り、バックアップから復元する速度はできるだけ速くなります。
LUKSボリュームはヘッダー(最大2MB)。ヘッダーが失われると、ボリュームのデータも失われます。ヘッダーが破損しない限り、個々の512バイトセクタのデータにアクセスできます。
この戦略は、cat /dev/mapper/encrypted >/dev/sdz99
暗号文がプレーンテキストと比較して正のオフセット(ヘッダーサイズ)にあるために機能します。ただし、これは同じディスク上のコピーなので、バックアップから復元するよりも遅くなる可能性があります(読み取りと書き込みはディスク間コピーを使用して並列に実行されます)。同じディスクコピーの場合dd
ブロックサイズは次よりも高速です。cat
。この戦略には1つの重要な注意事項があります。コピー中に停電やその他のシステムクラッシュが発生すると、ヘッダーが最初に上書きされたため、パーティション全体がフラッシュされます。
最初の2MBのデータを別の場所に保存し、残りを移動できます。
dd if=/dev/mapper/encrypted of=/dev/sdz99 bs=2M skip=1 seek=1
この方法では、中断後に再起動できます(ただし、ファイルシステムをマウントすることは言うまでもなく、論理ボリュームを組み立てようとしないでください)。ただし、これを行うには中断した場所を知る必要があります。これは事実上確認することはできません(複製ツールを使用してコピー中のブロックのトレースを出力し、それをブロックコピーと同時にディスクに書き込む必要があります)。
バックアップストレージが非常に遅い場合は、この転送戦略を使用できます(単純なcat
転送で十分です)、問題が発生した場合はバックアップから復元に戻ることができます。
バックアップストレージの容量が非常に大きい場合、他のアプローチは次のとおりです。
- ファイルシステムを縮小します(
resize2fs
)。 - 論理ボリューム(
lvreduce
)を縮小します。 - 物理サイズを小さくします(
pvresize
)。 - 暗号化されたボリュームの縮小。
- パーティションを縮小(
fdisk
またはgdisk
)して、空き領域に新しいパーティションを作成します。 - 新しいパーティション(
pvcreate
)に物理ボリュームを作成し、それをボリュームグループ(vgextend
)に追加します。 - ボリュームからできるだけ多くの物理拡張領域を移動します(
pvmove
)。 - 暗号化されたボリュームが空でない場合は、手順1から繰り返します。
- 現在使用していない物理ボリュームを削除します(
vgreduce
その後pvremove
)。
長くて曲がりませんか?はい。もう一度申し上げますが、バックアップから復元するようアドバイスします。