dd 入出力エラー

Linux で dd を使用して通常のディスクをコピーするときに入出力エラーが発生した場合はどうすればよいですか?

シトゥエヴィナは非常に悲しいですが、解決可能です。おそらく、使用、書き込み、読み取りができなくなった不良ブロックを含む故障したディスクを扱っていると考えられます。

そのようなディスクは必ず S.M.A.R.T. を使用してチェックしてください。ディスク エラーが表示される可能性が高くなります。私の場合はこれに当てはまりました。不良ブロックの数が非常に多かったので、古いハードドライブに別れを告げて、新しい SSD に交換する必要がありました。

問題は、このディスクには、作業に必要なライセンスされたソフトウェアを備えた完全に動作するシステムが含まれていることです。 partimage を使用してデータをすばやくコピーしようとしましたが、ユーティリティがディスクの 3 分の 1 だけをコピーし、セグメンテーション違反かその他の面白い Sishny/Sipplusplus ジョークで終了することに突然気づきました。

次に、ddを使用してデータをコピーしようとしましたが、ddがpartimageとほぼ同じ場所に到達し、入出力エラーが発生することがわかりました。同時に、conv=noerr、skip などのあらゆる種類の面白いフラグはまったく役に立ちませんでした。

しかし、ddrescue という GNU ユーティリティを使用すると、データは問題なく別のディスクにコピーされました。

После этого мои волосы стали шелковистыми, вернулась жена, дети и собака перестала кусать диван.

Большим плюсом ddrescue является наличие встроенного прогрессбара, поэтому не приходится костылять какие-то ухищрения навроде pv и всяких не особо красивых флажков dd. Также ddrescure показывает количество попыток прочитать данные; еще на вики написано что утилита обладает каким-то сверх алгоритмом для считывания поврежденных данных, оставим это на проверку людям которые любят ковыряться в исходниках, мы же не из этих да?

https://ru.wikipedia.org/wiki/Ddrescue
https://www.gnu.org/software/ddrescue/ddrescue_ru.html