ddバックアップの整合性を確認する方法は?

ddバックアップの整合性を確認する方法は?

次の手順でハードドライブ全体(50 GB)をバックアップしましたssh

dd if=/dev/hda | buffer -s 64k -S 10m | ssh myuser@myhost "cat > ~/image.img"

今ファイルの整合性を確認する最良の方法は何ですかimage.img?つまり、すべてが正しくコピーされたことを確認する方法は何ですか?

ベストアンサー1

コマンドが正常に終了すると、ハードウェアエラー(実行可能なすべての確認に再び影響を与える)がない限り、バックアップは正しいです。ハードウェアに障害が発生すると、後で不正になる可能性がありますが、ほとんどのストレージハードウェアは損傷を検出します。

これには注意事項があります。パイプラインでは、シェルは左側にエラーを報告しません。 (これは右側がすべてのデータを読み取る必要がない非常に一般的な状況によるものです。たとえば、some_command | head左側は出力が不要になるために死にます。)したがって、ここで読み取りエラーはdd無視されます。 Bashでpipefailパイプラインのすべての部分に関するエラーを報告するオプションを設定します。

また注意事項dd bs=…いくつかのエラーを無視そしてdd一般的に代替より遅い。まったく使用しないことをお勧めしますdd。ファイル全体をコピーするだけでは利点はありません。どこかで読み取ったのとは異なり、ddこれは特別な属性を持つ低レベルのディスクアクセスコマンドではなく、魔法はまったくありません。dd魔法はにあります。/dev/hda

shopt -s pipefail
set -e
</dev/hda buffer -s 64k -S 10m | ssh myuser@myhost "cat > ~/image.img"

それでもバックアップを確認するための最善の方法は、両方の暗号化チェックサムをインポートして比較することです。たとえば、

ssh myuser@myhost "sha1sum image.img" &
sudo sha1sum /dev/hda

両方のチェックサムが同じであることを確認してください。

確認時にバックアップファイルと元のファイルが同じかどうかをテストするので注意してください。ファイルシステムのマウントやマウント解除など、で変更した内容はすべて/dev/hdaチェックサムを変更します。変更しなくても(多くのファイルシステムで最後にマウントされた日付が更新されます)、チェックサムは変更されます。後で整合性を確認したい場合は、バックアップ時にディスクのチェックサムをどこかに書き留めます。

おすすめ記事