これは の拡張ですrsyncがすでに最新のファイルをコピーしようとするのはなぜですか?
--copy-devices
パッチをrsync
に使用して、ディスクドライブ全体をコピーし、別のマシンにイメージとして保存しようとしています。
コピーは正しく実行されたように見えますが、同じ値でrsync
を再度実行すると、毎回一部のデータが再度コピーされているように見えます。
冗長性を上げてrsync
を実行し、次のようにしました。
$ Sudo rsync -vvz --partial --progress --copy-devices /dev/sdb me@otherserver:/backupdisks/mydisk.img
opening connection using: ssh -l me otherserver rsync --server -vvze.Lsfx --partial --copy-devices . /backupdisks/mydisk.img (11 args)
me@otherserver's password:
delta-transmission enabled
sdb
320,071,851,520 100% 63.47MB/s 1:20:09 (xfr#1, to-chk=0/1)
total: matches=2441955 hash_hits=2441955 false_alarms=204015955 data=0
sent 188 bytes received 21,979,001 bytes 2,837.31 bytes/sec
total size is 0 speedup is 0.00
Rsyncが時間による変更を決定することは知っていますが、ディスクはrsync間で変更されていません(とにかくディスクの変更された時間をどのように決定しますか?)ただし、リモートイメージの時間は毎回更新されます。したがって、これが問題になる可能性があります。
もう1つの可能性は、ディスクに不良セクタがあり、毎回異なる値を返し、使用されているチェックサムを無効にすることです。
私の質問は2つあります。
イメージは正常に転送されましたか?もしそうなら、再度実行するとディスクの多くを再送信しているように見えるのはなぜですか?当然の質問の一部として部分的に回答されました rsync出力の「matches」、「hash_hits」、および「false_alarms」とは何ですか。「data = 0」は成功を意味しますか? )
これを正しく機能させるためのスイッチがありませんか?(多分--checksum
?)によって使用されるブロックレベルの障害をリストすることは可能ですか? rsyncアルゴリズム?
rsync --partial --inplace
と他のオプションの使用を検討する必要があります。そうしないと、動作中に宛先側でディスクイメージの完全なコピーが作成されるためです。 -B 4096
も使用しています。これは、デバイスの自然なセクターサイズであり、rsyncのデフォルトのブロックサイズがこのタイプの操作には小さすぎるためです。
イメージがすべて正しくコピーされたことを再確認するには、ソース側と宛先側の両方で独立したsha1sum
を実行することをお勧めします。必須ではないはずですが、確実にしたいのであれば、それは簡単で信頼できます。私はあなたのソースディスクがライブマウントまたはそのような厄介なものではないと推測しています。そうでなければ、すべての賭けがオフになり、それを送信するための信頼できる方法がありません。