web-dev-qa-db-ja.com

copy-devicesが有効になっているときにrsyncがデバイスを正しくコピーしたことを確認するにはどうすればよいですか?

これは の拡張です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つあります。

  1. イメージは正常に転送されましたか?もしそうなら、再度実行するとディスクの多くを再送信しているように見えるのはなぜですか?当然の質問の一部として部分的に回答されました rsync出力の「matches」、「hash_hits」、および「false_alarms」とは何ですか。「data = 0」は成功を意味しますか?

  2. これを正しく機能させるためのスイッチがありませんか?(多分--checksum?)によって使用されるブロックレベルの障害をリストすることは可能ですか? rsyncアルゴリズム?

rsync --partial --inplaceと他のオプションの使用を検討する必要があります。そうしないと、動作中に宛先側でディスクイメージの完全なコピーが作成されるためです。 -B 4096も使用しています。これは、デバイスの自然なセクターサイズであり、rsyncのデフォルトのブロックサイズがこのタイプの操作には小さすぎるためです。

イメージがすべて正しくコピーされたことを再確認するには、ソース側と宛先側の両方で独立したsha1sumを実行することをお勧めします。必須ではないはずですが、確実にしたいのであれば、それは簡単で信頼できます。私はあなたのソースディスクがライブマウントまたはそのような厄介なものではないと推測しています。そうでなければ、すべての賭けがオフになり、それを送信するための信頼できる方法がありません。

0
Tel