失敗したドライブを新しいドライブに盲目的に追加

失敗したドライブを新しいドライブに盲目的に追加

samish GBの場所に読み取りエラーのある欠陥のある320 GBのドライブがありますが、正確な場所はさまざまです。私はここでは不可能なエラーの可能性に満足しています。

conv=syncまず、私は本当に役に立たなければならないという事実に驚きましたconv=noerror。しかし、まあ、新しい足を育てる自由時間があります。最後のパーティション(つまり、ソースドライブと同じ)のための合理的な出力を提供していなかったので見つけました。file -s /dev/sdc*その逆でしたdata。ただし、syncコマンドラインに追加した後は、実質的な改善は行われません。file -sFS説明セクションにエラーがない最初のパーティションを除いて、出力はまだ意味がないため、file -sコマンドはFSを正しく検出します。mount -o ro両方のドライブのコピーが不安定であることを確認し、すべてのファイルを比較しましたmd5sum(ただし、ディレクトリ構造自体が不安定でした)。

このようにして、より大きな新しいドライブに追加しようとしています。

dd if=/dev/sda3 conv=noerror,sync bs=1M of=/dev/sdc3 2> /part3_log
grep -oPaz '[[:digit:]]*(?=\+[[:digit:]]+ records out\n)' </part3_log >/part3_log_bads # parsing is ok for this specific case
rm /part3_log_01
for i in $(cat /part3_log_bads); do dd if=/dev/sda3 conv=noerror,sync bs=1M of=/dev/sdc3 skip=$((i-1)) seek=$((i-1)) count=1 2>>/part3_log_01; done # retrying erratic blocks. i-1 because of number of records is written after erratic block was padded and written. noerror does not make any practical difference here. 

/part3_log(予想通り)各不安定なブロックの出力を取得します。

dd: error reading ‘/dev/sda3’: Input/output error
71051+3 records in  <<<<<<<<< second number increments from 0 after each erratic block indicating partial read, this is expected
71054+0 records out
74505519104 bytes (75 GB) copied, 2546,96 s, 29,3 MB/s

次の場所のすべてのチャンクに対して奇妙な出力が表示されます(速度差が予想されます)/part3_log_01

1048576 bytes (1,0 MB) copied, 6,5663 s, 160 kB/s
0+1 records in
0+0 records out
0 bytes (0 B) copied, 6,41877 s, 0,0 kB/s
0+1 records in
1+0 records out
1048576 bytes (1,0 MB) copied, 7,42028 s, 141 kB/s
1+0 records in
1+0 records out

私の興味は、ほとんどすべての入力レコードが実際に発生したにもかかわらず、エラーが報告されずに部分的に読み込まれたことです(参考資料で確認しましたdmesg)。エラーは報告されていませんsdc(予想通り新しいドライブです)。

それでは、失敗したドライブを盲目的にコピーして失敗した録音を再試行するにはどうすればよいですか?私のアプローチは2つの点で失敗したようです。

  • 不安定なブロック以降は移動せずにデータをコピーできませんconv=sync
  • 不良ブロックを再試行するとエラーを報告できません。

PS:私はそれをやりたいですddddrescueそのATMを使用してください。

PPS これはDebian 8.7.1とdd 8.23です。

ベストアンサー1

ddrescueを試してみてください(ほとんどのディストリビューションではgddrescue):

GNU ddrescue - データ復旧ツール。読み取りエラーが発生した場合は、まず、良い部分を保存しようとしているファイルまたはブロックデバイスから別のファイルまたはブロックデバイスにデータをコピーします。

おすすめ記事