jj erreur d’entrée/sortie

Que devez-vous faire si vous recevez une erreur d’entrée/sortie lors de la copie d’un disque normal à l’aide de dd sous Linux ?

Situevina est très triste, mais résoluble. Il s’agit très probablement d’un disque défaillant contenant des blocs défectueux qui ne peuvent plus être utilisés, écrits ou lus.

Assurez-vous de vérifier un tel disque à l’aide de S.M.A.R.T., il est fort probable qu’il vous montrera des erreurs de disque. Ce fut le cas dans mon cas ; le nombre de blocs défectueux était si énorme que j’ai dû dire au revoir à l’ancien disque dur et le remplacer par un nouveau SSD.

Le problème était que ce disque contenait un système entièrement fonctionnel avec un logiciel sous licence nécessaire au travail. J’ai essayé d’utiliser partimage pour copier rapidement des données, mais tout à coup j’ai découvert que l’utilitaire ne copie qu’un tiers du disque, puis cela se termine soit par une erreur de segmentation, soit par une autre blague amusante de Sishny/Sipplusplus.

Ensuite, j’ai essayé de copier les données en utilisant dd, et il s’est avéré que dd arrive à peu près au même endroit que partimage, puis une erreur d’entrée/sortie se produit. En même temps, toutes sortes de drapeaux amusants comme conv=noerr, skip ou autre n’aidaient pas du tout.

Mais les données ont été copiées sur un autre disque sans problème à l’aide d’un utilitaire GNU appelé ddrescue.

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

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

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