dd 输入/输出错误

如果在 Linux 中使用 dd 复制普通磁盘时出现输入/输出错误,该怎么办?

西图维娜很伤心,但也是可以解决的。您很可能正在处理包含无法再使用、写入或读取的坏块的故障磁盘。

请务必使用 S.M.A.R.T. 检查此类磁盘,它很可能会显示磁盘错误。我的情况就是这样;坏块数量如此之大,以至于我不得不告别旧硬盘并更换为新的 SSD。

问题在于该磁盘包含一个完整工作的系统,其中包含工作所需的许可软件。我尝试使用partimage来快速复制数据,但突然我发现该实用程序只复制了磁盘的三分之一,然后它以段错误或其他一些有趣的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

Leave a Comment

Your email address will not be published. Required fields are marked *