次の手順でハードドライブ全体(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
チェックサムを変更します。変更しなくても(多くのファイルシステムで最後にマウントされた日付が更新されます)、チェックサムは変更されます。後で整合性を確認したい場合は、バックアップ時にディスクのチェックサムをどこかに書き留めます。