不良セクタまたはハードウェア障害のあるハードドライブからのデータ回復のための、ddrescueなどのエラー処理を備えたrsyncなどのファイルコピーユーティリティ


12

不良ディスクヘッド、不良モーター、またはハードドライブがデータを非常にゆっくりと大量に読み取る原因となるその他の問題など、潜在的な機械的問題のために読み取りに失敗する不良ブロックまたはセクターのハードドライブがあります読み取りエラー。平均50 KB /秒で、一部の読み取りが10 KB /秒未満に低下し、通常は2〜10分以上(非常に長い時間)ファイルまたはセクター全体で停止することがよくあります。タイムアウトする前にrsyncを使用します)。

速度は大幅に変化するようで、ファイルに多くのスタックが発生します。最終的に「スタック」が解除されると、再びスタックする前に短いバーストが続くだけです。また、ドライブは非常に静かで、ファイルコピーの音がときどきあります(通常は、再びスタックする前に、短時間スタック/スタックが解除されたとき)。したがって、通常、HDDの死に関連する悪音はありません。誰かが、問題の原因はディスクヘッドの位置ずれが原因であるように聞こえるのではないかと示唆しました。ディスクヘッドは、データを正常に読み取る前に多くの再読み取りが必要です。もっともらしいですが、私は脱線します...

とにかく、rsyncの問題は、適切なエラー処理サポートがないように見えることです。もちろん、それはハードドライブの失敗からデータを回収するのに使用するためのものではありませんでしたが、そこにすべての、いわゆる「データ復旧」ユーティリティされているように使用するためのもので、通常は削除されたファイルまたはめちゃめちゃパーティションの回復に焦点を当てるのではなく、死にかけているハードドライブからファイルをコピーします。削除されたファイルの回復は明らかに私が必要なものではないので、おそらくあなたは私がまだ何を求めているのか見つけられないという失望を理解できるでしょう。

当然、これはおそらく「ddrescueを使用する必要があります!」と言うところです。まあ、それはすべてうまくできていますが、ほとんどのデータはすでにバックアップされているので、特定のファイルを回復したいだけです。ddrescueのように、完全なパーティションをブロックごとに回復しようとすることには関心がありません。特定のファイルとディレクトリだけを救うことに興味があります。

理想的には、rsyncとddrescueの間のある種のクロスです。ソースと宛先をrsync(ddrescueが必要とする2つの完全なパーティションではなく)のような通常のファイルのディレクトリとして指定できるようにします。最初の実行でエラーが発生し、その後の実行でエラーが発生したファイルのリカバリを試みることができます(もちろん、少し変更されたコマンドを使用して)。 ddrescueがブロックでどのように機能するか、rsyncのように特定のファイル/ディレクトリで機能するユーティリティのみが必要です。

だから私はここで空想にふけっているのか、それを可能にする何かがそこに存在するのか?または、rsyncまたはddrescueをこのような方法で動作させる方法もありますか?私は「救助」したいファイルを選択でき、最初の実行でエラーのあるファイルをスキップし、後でそれらのエラーを再試行/再試行できる限り、どんなソリューションでもうまくいくでしょう。

これまでのところ、次のオプションでrsyncを試しましたが、多くの場合、タイムアウトよりも長い間ファイルにスタックします。理想的には、次のファイルに移動して、後で取得したファイルに戻るようにしたいです立ち往生。私はそれが可能だとは思わない。とにかく、これまで私が使ってきたものは次のとおりです。

rsync -avP --stats --block-size=512 --timeout=600 /path/to/source/* /path/to/destination/

回答:


3

読み取り速度が非常に遅く、ddrescueがファイルレベルで動作する3TBの日立があります。しかし、ディレクトリ上ではありません。ただし、ddrescueの--timeoutまたは--min-read-rateオプションを使用することはできませんでした。

スクリプトでこれを行い、一度に1つのファイルを抽出します。

cat listoffiles | while read file
pipe while> do
pipe while> ls -l "$file"
pipe while> ddrescue -n -e1  "$file" /cc/RecoveredFiles/"$file" /cc/RecoveredFiles/"$file".llog
pipe while> date
done | tee -a  /cc/RecoveredFiles/ddrescue.log

3

たぶん、rsyncはこの質問が聞かれてから数年で変わったのでしょう。

私の経験では、rsync現在、死にかけているハードドライブからものをコピーするという素晴らしい仕事をしています。

rsync -a <src> <dest>

エラーが発生するとすぐに移動し、再実行するとそれらのファイルを再試行します。

rsync --version レポート rsync version 2.6.9 protocol version 29

他の答えについて:

2011年の回答は、ddrescueと商業的に同等のツールを宣伝しているように思われます。ファイルに対応していることを示すものではありません。うさんくさい。2013年の回答は興味深いものです。


2

すばらしい質問です。詳細のレベルが大好きです。このシナリオでうまく機能するユーティリティについては、QuetekからFilescavengerを試すことをお勧めします。100以上のカウントで過剰な再読み取りが可能になりますが、さらに重要なことは、ファイルを評価してから画像をロードしてスキャンする時間を無駄にすることなく、コンテンツ全体を画像にダンプできるディスクイメージング機能がありますファイル用。このユーティリティは、ホームユーザーに対して50ドルで実行できますが、ダウンロードして、お金をかける前にイメージから何を回復できるかをテストすることができます。

プロの使用であれば、かなりの費用がかかりますが、論理的およびハードウェアRAIDアレイのサポートを含む重要な機能が得られます。

これも失敗する場合は、ソフトウェア回復ツールのポイントを過ぎている可能性があります。ラボの復旧にかかる費用を正当化できる場合は、お住まいの国、州、市をお知らせください。お近くの当社または競合他社のラボのいずれかをお勧めします。

クリス


1

Progressive Copierが必要です。ドライブ全体を対象としていますが、パラメータとしてファイルパスを使用するため、個々のファイルでも機能するはずです。ディレクトリでは機能しないと思います。各ファイルを指定する必要があります。

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