ここではパーティションにいくつかのI / Oエラーがあります。コピーしたものを別のドライブにコピーしましたが、I / Oエラーが原因で読み取れないファイルを知って、他のソースから正確なファイルを復元できるようになりました。
Bashでこのエラーのあるファイルをディスクからどのように検索できますか?
編集する
ファイルシステムはNTFSであり、現在cpを使用してファイルをzfsディスクにコピーしていますが、問題ではありません。 300GBを超え、時々I / Oエラーが発生し、個々のファイルをスキップするために1日以上かかりました。
これらのファイルはDAWコンポーネントの一部であり、個々のMIDIファイルまたはWAVサンプルとして読み取ることはできません。正常に通過したプロジェクトファイルについては、別のバックアップから特定のサンプルパッケージを再インストールしたいのですが、本当に量が多いため、すべてを再インストールしたり、欠落または破損した可能性があるすべてのプロジェクトファイルとサブフォルダをテストしたくありません。ファイルを保存し、1日以上を無駄にしました。したがって、I/O エラーのあるファイルへのパスを知ることで、破損したパッケージをいくつか再インストールするだけで時間を節約できます。
答え1
これは、パーティションのファイルシステムの種類によって異なります。 ext2/ext3 と ReiserFS の場合は、以下のヘルプを見つけることができます。smartmontoolsの不良ブロックHOWTO。
基本的にあなたがすることは次のとおりです。
- ハードドライブのセルフテストを開始すると、所要
smartctl
時間が表示されます。 - セルフテストが完了した後、セルフテストの結果を確認し、最初の不良ブロックを識別します。不良ブロックがなければ、作業は完了です。
- 不良ブロックのパーティションとパーティション内のオフセットを決定します。
debugfs
オフセットがファイル内にあるかどうか、そうであれば、どのファイルがあるかを判断するために使用されます。- 不良ブロックには何でも書き込みを使用してください
dd
。ハードドライブは不良ブロックをスペアブロックに置き換えます。 - 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
使用してください。
どのファイルが完全であるかを確認できません。残念ながら、実際にファイルを開いてファイルに含まれている内容を表示または聞く以外には他の方法はありません。
オフセットなしで画像を直接マウントできます。私は一般的なやり方ですが、単純化のために...
引用:
GNU
ddrescue
マニュアルの場合クリックしてくださいデータ保存エラー訂正アルゴリズムの基本情報クリックしてください
一般的なUUIDトピックの場合クリックしてください