不良セクターでHDDを救出する:DD対GDDレスキュー


11

インターネットのどこかで、少なくとも問題のあるセクターで実行されたディスク読み取りの量を区別できるという点で、gddrescuedd より優れているとは読んだ。これは本当ですか?

時間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で実行されているようです(同じ時間がかかったため)。それで、このオプションは単に「後処理」のためのものですか?私が得ているのは、元々ddgddrescueの両方が-r0で実行されているようでddgddrescueよりも誤った部分を噛んでいないようです(どちらも15-18の不良ブロックで停止しているようです)秒は与えるか、取るか、それで取り引きは何ですか、どのようにgddrescueは速くなりますか???)

また、-Dオプション(出力ファイルに同期書き込みを使用)とは何ですか?実施したテストとの違いに気づきませんでした。

誰でも全体についてコメントできますか?ありがとう。

回答:


6

引用された著者がどのようにして彼の結論に至ったかはわかりません。彼が正しいかどうかは議論していませんが、私はその経験はありません。

一方、この発言に関しては...

gddrescueは、問題のあるセクターで実行されたディスク読み取りの量を区別できるという点で、ddより優れています。

gddrescueを使用する本当の「少なくとも」理由は、gddrescueが繰り返しの読み取り/書き込み試行で出力を切り捨てないためです。ddを停止する特定の読み取りエラーに関して、gddrescueも完全に自動化されています。

したがって、引用された作者は正しいかもしれませんが、そうではないかもしれません...しかし、ステートメント全体がgddrescueの要点を逃しています。

更新:ddとgddrescueの詳細な違い。

dd conv = noerror、エラー後も続行されますが、不良ブロックはスキップされます。同期オプションを追加しても、スキップせずにゼロを配置するだけです。ddを使用して同じ出力を使用して別の読み取りを行う場合は、以前に回復したものを上書き/失うだけです。

gddrescue、エラー後も続行されます。不良ブロックから部分的な歩留まりを回復でき、戻ってセクターごとにブロックを試行します。gddrescueは、良好なブロック、不良ブロック、および不良ブロックのセクターごとの詳細なエラーログを保持します。再度読み取りを実行しようとすると、gddrescueはカットオフ(切り捨て)し、さらに回復されたデータを追加します。

両方のツールを使用しても、ブロック全体が100%読み取れない場合は注意してください。それでもデータは取得されません。ブロック内の一部のセクターが読み取り可能なままである場合、gddrescueはより多くのデータを取得する可能性があります。


私はについては...まあ、見gddrescueでも全自動ddはされていない、完全に自動化されてコンバージョン= NOERROR?「繰り返しの読み取り/書き込み試行時に出力を切り捨てる」という部分について詳しく説明してもらえますか?最初に読み取れなかったセクターを再検査するようにgddrescueに指示されたとき、「後処理」のものを意味しますか?
XXL、2011年

私はあなたの質問を反映するために私の答えを更新しました。
JMベッカー

ハードドライブや光学メディアでgddrescueを何度も使用しました。読み取り不可能な領域を回復しようとすることが利点です。停止して後で再実行することもでき、中断したところから再開します。
Chris Thompson、

1
@TechZilla - gddrescueは ちょうど同じように、同様に不良ブロックをスキップするddはありません。上で書いたように、ゼロによるパディング(conv = sync)はgddrescueが欠落している正確なオプションであり、これは時々便利です(/ dev / zeroを使用して手動で行うことができます。gddrescue出力ごとに生成される不良セクター)。ありません何の違いgddrescueDD回復の面では、gddrescueはその点では何の異なるを行いません。どうして?なぜなら、同じブロックサイズで同じ量のデータを回復するからです。
XXL '19年

@TechZilla-唯一の実際の違いは、処理するセクターの量がブロックサイズよりも大きく選択されている場合です。これは、あなたの比較ですにおける著しくスピード物事をする能力が得られますDDのように、ddは静的非可変セクタサイズでのみ動作することができます。一方、gddrescueは、指示された数のセクターを最初に読み取りますが、内部の単一のブロックが疑わしい場合、それらのチャンクが不良であると宣言します。最小ブロックサイズに達するまで、セクターサイズを徐々に減らします
XXL

2

hddが製造された時期と製造元、およびそれが実行するファームウェアのバージョンに応じて、最新のhddsでは、不良セクターが検出されると、それらはファームウェアによる使用から削除され、ドライブは不良セクターをスキップすることを認識します。したがって、不良セクターからHDDを「救出」するという考えは、その点では議論の余地があるかもしれません。現在は不良セクターに有効なデータがあったかどうかの問題は、あなたが求めている解決策のようです-駄洒落は意図されていません!

grc.comには、不良セクターでhddsを修正できると主張するspinrite 6と呼ばれるソフトウェアがいくつかあります。これは有料のソフトウェアで、試したことがありません。特にhddを「復活」させようとしていて、実際に上記のように機能する場合は、読む価値があります。スピンライト6に関するgrc.comのFAQは、30日間の返金保証があることを示しています(試用版や無料版はありません)。注:私はgrc.comとは提携していません。私はそれが存在することを知っていて、宣伝どおりに機能する可能性があることを知っています。

問題のあるセクターで実行されたディスク読み取りの量を区別できるという点でgddrescueがddよりも「優れている」かどうかの評価に関して、不良セクターでの読み取りの数(非セクターとしてマークされているため)ファームウェアリストに保持されている不良セクターのリストにある機能セクター)は、gddrescueまたはddの定性的な使用には役に立たないようです。

https://secure.wikimedia.org/wikipedia/en/wiki/Gddrescue#Recovery-oriented_variants_of_ddの Webページdd(Unix)を読むと便利です

また、次のURLも参考にしてください。UBCD、dd-rescue、およびP2 eXplorerを使用して、クラッシュしたハードドライブのイメージを作成する方法:http : //www.myfixlog.com/fix.php? fid = 21

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.