Dmesgは「回復されていない読み取りエラー」を多く報告しますが、rsyncは正常に複製されます。なぜ?

Dmesgは「回復されていない読み取りエラー」を多く報告しますが、rsyncは正常に複製されます。なぜ?

私はかなり貴重なデータ(失われた場合は世界の終わりではなく持っていれば良い)を、いくつかの古いHDDからより安定したストレージを備えた新しいNASにコピーしてきました。

読み込み中に、出力に次のような多くのエラーが発生します(ディスクがかなり古いため、完全に予期しないわけではありません)dmesg

[88577.880874] sd 38:0:0:0: [sdh] tag#5 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=3s
[88577.880889] sd 38:0:0:0: [sdh] tag#5 Sense Key : Medium Error [current] 
[88577.880893] sd 38:0:0:0: [sdh] tag#5 Add. Sense: Unrecovered read error
[88577.880897] sd 38:0:0:0: [sdh] tag#5 CDB: Read(10) 28 00 54 25 88 8f 00 02 00 00
[88577.880900] critical medium error, dev sdh, sector 1411745935 op 0x0:(READ) flags 0x80700 phys_seg 64 prio class 2

私が読んだすべてのことで、これはディスクがうまく機能しないことを示し、私はそれについてあまり心配しません。

しかし、驚くべきことに、rsyncデータをコピーするために使用するデータ(主にディスクイメージ、ISOなどの大容量ファイル)は、ほとんどのエラーを報告しないようです。

現在rsyncの通話は1時間以上行われています。私は当時そこにいましたが、2つのI / Oエラーdmesgだけがrsync報告されました。

$ rsync -rlt --no-i-r --info=progress2 /mnt/olddisk/somedir /mnt/target
 47,316,611,088   5%   34.36MB/s    0:21:53 (xfr#26, to-chk=754/787)
rsync: [sender] read errors mapping "/mnt/oldisk/somedir/dir1/chunkyfile1.bin": Input/output error (5)
148,137,878,449  15%   49.70MB/s    0:47:22 (xfr#46, to-chk=734/787)
rsync: [sender] read errors mapping "/mnt/olddisk/somedir/dir2/chunkyfile2.bin": Input/output error (5)
206,615,147,043  22%   55.38MB/s    3:32:44  xfr#61, to-chk=719/787)

私が知りたいのは、「回復されていない」エラーと「重要な」エラーが何とか修正されたことです。彼らは再試行して成功したか。カーネルは、rsyncI/O エラーが発生したという事実を受け入れながら、自動的に不良/破損/空の読み取り結果を返しますか?

私が知る限り、ソースドライブと対話する他のプロセスはありません。

元のディスクが退屈な古いext4でフォーマットされているため、そのデータにエラー修正コードが組み込まれていないようです。

ディスクが外部SATAドックを介して接続され、USB経由で接続されても問題はありますか?これが問題の原因である可能性があることを認識していますが、エラーに「ミドルエラー」が具体的に言及されていることを考慮すると、残りのシステムとの通信ではなく、ディスク上で実際に行われている作業に関連していると疑われます。

答え1

一部の読み取りが再試行された可能性があります。これは複数のレベルのソフトウェアで実行できます。もう一つ:先読み。カーネルは実際に必要な情報よりも多くの情報を要求する可能性があるため、エラーが報告され忘れる可能性があります。キャッシュは後続の要求を満たすことができないため、読み取りは再実行されます。 (さらに、ディスク自体が要求したよりも多くのデータを読み取ることができますか?それとも、完全性チェックを実行してカーネルに報告できますか?)

関連情報