故障したUSBハードドライブからデータを回復するためにddrescueを使用しようとしています。 4日ほどddrescueを実行したところ、いよいよ1段階が完了しました。ステップ2が始まった後、ある時点でラップトップとハードドライブが暖かくなったため、休憩を取るためにプロセスを中止しました。 ddrescueを再起動すると、中断された部分から再開されましたが、ステップ2(カウントダウン)ではなくステップ1が再び増加することがわかりました。さらに、2番目のパスは痛みを伴うほど遅く、次の2日間は5GBしか処理しませんでした。現在の状態はエラー0個、errsizeは0B、保存されたサイズは769755MBで、私が記憶しているドライブのデータ量程度です。私の質問は、ddrescueが回復するデータを回復したと仮定できること、そして画像ファイルの内容を別のUSBドライブに安全に抽出できるかどうかです。それとも、残りの2回でもddrescueを実行する必要がありますか?
「指定されていないエラーが発生しました」というメッセージとともに、USBハードドライブでPS Chkdskが失敗します。新しいハードドライブにイメージファイルを抽出し、chkdskを再実行して問題を解決できることを確認したいと思います。 Linuxでイメージファイルをマウントしようとすると、欠落しているNTFS署名が返されます。
答え1
ログ/マッピングファイルをに提供しましたかddrescue
?たとえば、
# ddrescue /dev/sdc file.img map.txt
マップファイルを提供する場合は、中断したddrescue
ところから続行する必要があります。これは、元々回復されたすべてのデータを再保存しようとせず、誤ったビットのみを再保存しようとすることを意味します。しかし、私が知っている限り、パスは再起動とは何の関係もありません。マッピングファイルを使用すると、ddrescue
どのデータが含まれているのか、どこで問題が発生したのか、現在のアルゴリズムのどのステップが実行されているのかを確認できます。ただし、パスはステージがディスクを通過した回数だけカウントするだけddrescue
、マップファイルには記録されないようです。 「パス2」の途中で中断して再度実行すると、「パス1」と呼ばれるまったく新しい「パス3」が効果的に実行されますが、パス1ですでに実行されている操作は再実行されません。または部分的にパス2に含まれます。この場合、スループットが低いと予想されます。元のパス1を除くすべてのエントリは、障害点まで読み取ろうとします。ddrescue
まず、ドライブから簡単に読み取れるすべてのビットをできるだけ早く回復しようとし、戻って読み取れない部分を再試行するように動作します。再起動したら、最後に "rescued" 値が実行されたときに停止したときの値と同じであることを確認する必要があります。
マッピングファイルを指定しないと、中断した部分から再起動する方法はありません。停止しddrescue
て再起動することは、基本的に最初から開始するのと同じです。どのデータがあるのか、処理されていないのか分からないからです。障害が発生したディスクからデータを回復するときは、必ずマップファイルを使用してください。
全体として、ddrescue
ドライブの100%回復が完了したり、データ回復試行を放棄したりすると終了します。ddrescue
まだ読み取っていない残りのデータを削除したい場合を除き、実行が完了するようにしてください。常に1つ以上の完全パスが完了することを許可する必要があります。それ以外の場合、完全なデータが欠落します(最初のパスが完了することを許可すると上書きされます)。回復されたデータ量は、ドライブ上の実際のファイル量ではなく、ドライブの合計サイズに関連しています。したがって、1000000MBドライブから769755MBを回復すると、ddrescue
ドライブ内のセクタ/ブロック全体の約77%が回復したことを意味します。ドライブを使用していますが、この 77% が使用中のブロックに該当するのか、使用可能なブロックに対応しているのかは不明です。ドライブが77%になった場合、最良のケースは、データとファイルシステムの構造を100%回復したことです(運が悪い場合)。最悪のシナリオでは、ドライブの未使用の23%(つまり空き容量)とドライブデータの別の77〜23 = 54%の両方を回復しました。ドライブが 77% になると 0.54/.77 = 約 70% データです。平均して、回復されたデータ部分がランダムである場合、データの約77%が得られます。運が悪いと、重要なファイルシステム構造が欠落し、残りのデータを回復するのが難しくなる可能性があります。
答え2
ddrescue
ファイルの代わりにブロックで動作します。 60Gbデータを含む100Gbドライブでは、ブロックを60Gbに復元できますが、これにより20Gbのデータのみが復元されます。 60Gbブロックがデータを完全に覆う可能性はリーンです。
私の考えでは、ddrescue
実行することをお勧めします(バックアップと競合の間に発生した数時間のデータ変更が失われても、バックアップから復元する方がコスト効果が高いかどうかを再検討してください)。