ハードドライブのI/Oエラーを探す

ハードドライブのI/Oエラーを探す

ここではパーティションにいくつかのI / Oエラーがあります。コピーしたものを別のドライブにコピーしましたが、I / Oエラーが原因で読み取れないファイルを知って、他のソースから正確なファイルを復元できるようになりました。

Bashでこのエラーのあるファイルをディスクからどのように検索できますか?

編集する

ファイルシステムはNTFSであり、現在cpを使用してファイルをzfsディスクにコピーしていますが、問題ではありません。 300GBを超え、時々I / Oエラーが発生し、個々のファイルをスキップするために1日以上かかりました。

これらのファイルはDAWコンポーネントの一部であり、個々のMIDIファイルまたはWAVサンプルとして読み取ることはできません。正常に通過したプロジェクトファイルについては、別のバックアップから特定のサンプルパッケージを再インストールしたいのですが、本当に量が多いため、すべてを再インストールしたり、欠落または破損した可能性があるすべてのプロジェクトファイルとサブフォルダをテストしたくありません。ファイルを保存し、1日以上を無駄にしました。したがって、I/O エラーのあるファイルへのパスを知ることで、破損したパッケージをいくつか再インストールするだけで時間を節約できます。

答え1

これは、パーティションのファイルシステムの種類によって異なります。 ext2/ext3 と ReiserFS の場合は、以下のヘルプを見つけることができます。smartmontoolsの不良ブロックHOWTO

基本的にあなたがすることは次のとおりです。

  1. ハードドライブのセルフテストを開始すると、所要smartctl時間が表示されます。
  2. セルフテストが完了した後、セルフテストの結果を確認し、最初の不良ブロックを識別します。不良ブロックがなければ、作業は完了です。
  3. 不良ブロックのパーティションとパーティション内のオフセットを決定します。
  4. debugfsオフセットがファイル内にあるかどうか、そうであれば、どのファイルがあるかを判断するために使用されます。
  5. 不良ブロックには何でも書き込みを使用してくださいdd。ハードドライブは不良ブロックをスペアブロックに置き換えます。
  6. 1. 再起動して次の不良ブロックを取得します。

上記のHOWTOで詳細を確認できます。

答え2

質問のタイトルから始めましょう。

ハードドライブのI/Oエラーを探す

この言葉は意味がありません。入出力エラーは、ドライブの摩耗によって自然に発生するか、最悪の場合はある種の損傷によって発生します。誤解しないでください。次のようにできます。

不良セクタを見つけてゼロで埋めます。


さて、元の質問は次のとおりです。

このエラーのあるファイルをディスクから検索する方法強く打つ

壊れにくいです。シェルスクリプト(bash)ソリューションが必要ですか?それでは、理由を説明できますか?


質問の中心を見てみましょう(おそらく):

ハードドライブが特定のセクタを読み取れません。

正しいですか?もしそうなら、あなたは実際にはできませんcpこれに使用されます。


あなたは何ができますか?

GNUを始めようddrescue ミッション(それはUbuntuパッケージ名は次のとおりです。gddrescue、一つあります。g! )。

どうしたのか、純粋な例として、私の言葉を歪めないでください。その後、次のようになります。

ddrescue -d -f -r3 /dev/disk/by-partuuid/xxxxxxxxxxxx /path/where/to/store/image/of/the/partition /path/to/log/file/of/this/rescue

もちろん、を使用しても構いませんが、/dev/sdx1複数のディスクを接続すると再起動時に問題が発生するため、何でもblkid /dev/sdx1使用してください。

どのファイルが完全であるかを確認できません。残念ながら、実際にファイルを開いてファイルに含まれている内容を表示または聞く以外には他の方法はありません。

オフセットなしで画像を直接マウントできます。私は一般的なやり方ですが、単純化のために...


引用:

  1. GNUddrescueマニュアルの場合クリックしてください

  2. データ保存エラー訂正アルゴリズムの基本情報クリックしてください

  3. 一般的なUUIDトピックの場合クリックしてください

関連情報