dd erro de entrada/saída

O que você deve fazer se receber um erro de entrada/saída ao copiar um disco normal usando dd no Linux?

Situevina é muito triste, mas tem solução. Provavelmente você está lidando com um disco com falha contendo blocos defeituosos que não podem mais ser usados, gravados ou lidos.

Certifique-se de verificar esse disco usando S.M.A.R.T., provavelmente ele mostrará erros no disco. Este foi o caso no meu caso; o número de blocos defeituosos foi tão grande que tive que dizer adeus ao disco rígido antigo e substituí-lo por um novo SSD.

O problema era que este disco continha um sistema totalmente funcional com software licenciado necessário para o trabalho. Tentei usar o partimage para copiar dados rapidamente, mas de repente descobri que o utilitário copia apenas um terço do disco e termina com um segfault ou com alguma outra piada engraçada do Sishny/Sipplusplus.

Em seguida, tentei copiar os dados usando dd, e descobri que dd chega aproximadamente ao mesmo lugar que partimage e então ocorre um erro de entrada/saída. Ao mesmo tempo, todos os tipos de sinalizadores engraçados como conv=noerr, skip ou qualquer outra coisa não ajudaram em nada.

Mas os dados foram copiados para outro disco sem problemas usando um utilitário GNU chamado ddrescue.

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

Большим плюсом 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 *