インターネットのどこかで、少なくとも問題のあるセクターで実行されたディスク読み取りの量を区別できるという点で、gddrescueはdd より優れていると私は読んだ。これは本当ですか?
時間dd if = / dev / sda skip = 900343967 of = a.bin count = 4 iflag = direct conv = noerror、sync
dd: `/ dev / sda 'を読み取る:入出力エラー
2 + 0レコード
2 + 0レコードアウト
1024バイト(1.0 kB)コピー、18.6057秒、0.1 kB /秒
3 + 1レコード
4 + 0レコードアウト
2048バイト(2.0 kB)コピー、18.6707秒、0.1 kB /秒実際0m18.672s
ユーザー0m0.000s
sys 0m0.004s
ところで、直接フラグは本当に役立ちます。私は4のうち1セクターしか読み取ることができませんでした(vs 3/4の場合)。ただし、これにより転送速度が著しく遅くなります-私にとっては、少なくとも約5倍遅くなります。このフラグがない場合、5MB /秒vs 25MB /秒です。とにかく、今はgddrescue(ddrescue)の部分です。
時間ddrescue -b512 -c1 -s4b -dnvD -i900343967b -o0b / dev / sda b.bin
/ dev / sdaからb.binに2048バイトをコピーしようとしています。
開始位置:infile = 460976 MB、outfile = 0 B
コピーブロックサイズ:1ハードブロック
ハードブロックサイズ:512バイト
Max_retries:0
Direct:yes Sparse:no Split:切り捨てなし:いいえCtrl-Cを押して中断を
救出:1536 B、エラーサイズ:512 B、現在のレート:53 B / s
ipos:460976 MB、エラー:1、平均レート:53 B / s
opos:1536 B、最後の正常な読み取りからの時間: 0秒
終了実際0m18.736s
ユーザー0m0.004s
sys 0m0.000s
上記のように、実行にはまったく同じ時間がかかりました。予想通り-同じ統計:3/4。ただし、問題のあるセクターにdd(conv = sync)の0x00を埋め込むことはできますが、gddrescueにはこの機能がないようです。代わりに、問題のあるセクターをスキップして、その位置に何かを書き込むことなく、次のセクターに進みます(出力ファイルでそのセクターにデータが既に書き込まれている場合、上書きされません:望ましくない場合もあります) )。-t(truncate)オプションがgddrescueを使用するブロックデバイスでどのように機能するかわかりません(私は推測すると、0x00で完全に上書きします)が、通常のファイルでは、予測どおり、オフセットディメンション(つまり-o1)内でのみファイル全体を切り捨てます。したがって、それはdd syncにいくらか似ていますが、出力デバイス/ファイル全体を上書きする準備ができている場合にのみidenticle機能を模倣するので、同じではありません。
ただし、冗長オプションの存在と不良セクター/ブロックをログに記録する機能のおかげで、gddrescueの方が適しているようです。どちらのアプリも(かなり)同一のパラメーターで起動されていることに注意してください。
の出力
diff?.bin
空(出口0)です。つまり、ファイルはまったく同じです。
これは私が理解していない部分です:
ddは小さな読み取りと書き込みを行うため、エラーのないものでも低速です。ドライブのエラーのある部分をできるだけ多く読み取るのではなく、ドライブの誤った部分を噛み砕くのに多くの時間を費やしてから、ハードな部分に戻ります。
それは何についてですか?特に、「エラーのないものをできるだけ多く読み取るのではなく、ドライブの誤った部分を噛み砕くのに多くの時間を費やし、その後、ハードなことをするために戻る」という部分。上に示したのと同じ時間がかかりました(データの非常に小さな部分を検査しましたが、それで問題ないでしょうか?)。
gddrescueは-rスイッチを提供します。これは「不良セクター」での再読み取りの量を制御する必要がありますが、ddは-r0で実行されているようです(同じ時間がかかったため)。それで、このオプションは単に「後処理」のためのものですか?私が得ているのは、元々ddとgddrescueの両方が-r0で実行されているようで、ddはgddrescueよりも誤った部分を噛んでいないようです(どちらも15-18の不良ブロックで停止しているようです)秒は与えるか、取るか、それで取り引きは何ですか、どのようにgddrescueは速くなりますか???)
また、-Dオプション(出力ファイルに同期書き込みを使用)とは何ですか?実施したテストとの違いに気づきませんでした。
誰でも全体についてコメントできますか?ありがとう。