不良ディスクヘッド、不良モーター、またはハードドライブがデータを非常に遅く大量に読み取る原因となるその他の問題など、潜在的な機械的な問題が原因で読み取りに失敗している不良ブロックまたはセクターのハードドライブがあります読み取りエラーの。平均50KB /秒で、一部の読み取りが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/
読み取りが非常に遅い3TBHitachiがあり、ddrescueはファイルレベルで動作します。しかし、ディレクトリにはありません。ただし、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
たぶん、この質問がされてから数年でrsyncが変わったのでしょう。
私の経験では、rsync
は現在、死にかけているハードドライブからものをコピーするのに素晴らしい仕事をしています。
rsync -a <src> <dest>
エラーが発生した場合はすぐに先に進み、再実行するとそれらのファイルを再試行するために戻ります。
rsync --version
レポートrsync version 2.6.9 protocol version 29
その他の回答について:
2011年の回答は、ddrescueと商業的に同等のツールを宣伝しているようです。ファイルを認識していることを示すものではありません。魚っぽい。 2013年の回答は興味深いものです。
すばらしい質問です。詳細レベルが大好きです。このシナリオでうまく機能するユーティリティについては、 Quetek からFilescavengerを試すことをお勧めします。 100以上のカウントで過剰な再読み取りが可能になりますが、さらに重要なのは、ファイルの評価を試みてから画像をロードしてスキャンする時間を無駄にすることなく、コンテンツ全体を画像にダンプできるディスクイメージング機能を備えていることです。ファイル用。このユーティリティはホームユーザー向けに50ドルで実行されますが、ダウンロードしてテストし、お金を使う前にイメージから何を復元できるかを確認できます。
プロフェッショナルな使用の場合、かなりの費用がかかりますが、論理およびハードウェアRAIDアレイのサポートを含む重要な機能が得られます。
これも失敗した場合は、ソフトウェア回復ツールのポイントを過ぎている可能性があります。ラボの復旧費用を正当化できる場合は、お住まいの国、州、都市をお知らせください。お近くのラボまたは競合他社のラボをお勧めします。
クリス
あなたが欲しい プログレッシブコピー機 。ドライブ全体を実行することを目的としていますが、パラメーターとしてファイルパスを使用するため、個々のファイルでも機能するはずです。ディレクトリでは機能しないと思います。各ファイルを指定する必要があります。