web-dev-qa-db-ja.com

ddを使用して入出力エラーを修正するにはどうすればよいですか?

こんにちは、壊れたハードドライブでWindows 7システムを修正しようとしていますが、まだ実行中です。

すべてのデータを新しいドライブにコピーして、Windows 7を再インストールしようとしています。SQSERVICEというドライブ。

私はまったくコピーできません-以下を参照してください:

$ Sudo dd if=/dev/sdc1 of=/dev/sda1
dd: reading `/dev/sdc1': Input/output error
11233976+0 records in
11233976+0 records out
5751795712 bytes (5.8 GB) copied, 187.731 s, 30.6 MB/s

この「入力/出力エラー」の修正方法は?

10
Erazer

あなたはそれを自分で言った:あなたのディスクが壊れています。 ddrescueを試すことができますが、壊れたパスを回避できる場合があります。ただし、データが失われることに注意してください。

バックアップからの復元が簡単になります:)

ddrescueの正しい使用法は次のとおりです。

Sudo apt-get install gddrescue
Sudo ddrescue /dev/sdc1 /dev/sda1

または、stdoutを進行監視ツールにパイプする場合:

Sudo ddrescue /dev/sdc1 /dev/sda1 | pv
13

これが誰かに役立つかどうかはわかりませんが、検索でこのページを見つけた場合、誰かに役立つかもしれません(数ヶ月前に問題を解決したOP以外)。

デニスが示唆したように、この場合、データ復元(元の質問の言葉どおりにエラー/ディスクを「修正」することとは異なります)には、ddrescueが最適な選択です。

または、ディスクをマウントしてファイルをコピーすることもできます。空きスペースが多い場合、または特定のファイルのみが必要な場合、これは非常に高速です。警告:Linuxマシンから実行すると、ファイル許可などのすべての拡張属性が失われるため、OSファイルには非常に悪い選択ですが、ユーザーファイルには耐えられます。 Windowsからそれを行うとそれらは保存されますが、エラーをスムーズに処理できず、非常に遅くなる可能性があります。

セクタをバイパスするだけでなく、実際にセクタを「修正」する別のオプションは、不良セクタを再割り当てすることです。セクター番号(あなたの場合、ddのブロックサイズ、セクターサイズが512であると仮定して11233976)がわかっている場合は、これを実行し、見つかった新しい不良セクターごとに再度実行します。

hdparm –write-sector 11233976 –yes-i-know-what-i-am-doing /dev/sdb

警告:これにより、そのセクターのデータが破壊されます。ですから、あなたが何をしているかを本当に知っていることを確認してください。このセクターを読み取れない場合、上書きするとエラーが停止しますが、セクターにゴミが含まれ、重要なファイルが破損する可能性があります。

詳細はこちらをご覧ください: http://www.sjvs.nl/forcing-a-hard-disk-to-reallocate-bad-sectors/

また、ディスクに多数の(おそらく数千の)不良セクター(Current_Pending_Sector、Offline_Uncorrectable、またはReallocated_Sector_Ctとして表示される)がある場合、または新品であり保証期間内である場合、または数が継続的に増加する場合は、交換する必要がありますとにかくディスク。再割り当てによってディスクが修正されると言わせないでください。既知の不良セクタのみを修正し、再割り当て用に予約されたセクタを消費します。ディスクがより多くの不良セクタを開発する傾向がある場合、問題はデータが破損するたびに戻ってくるだけです。

6
Peter