Contexte
Après un récent contact avec une panne de disque dur, j'ai voulu créer un HOWTO sur la mise en miroir d'un disque dur, en ignorant les erreurs sous Linux. Il est essentiel de s'assurer que ces commandes sont émises correctement et que les bons noms de lecteur et de périphérique sont utilisés. dd n'offre aucune invite ni confirmation - à utiliser avec prudence !
La récupération des données du disque dur dans le cas de secteurs cassés n'est généralement pas trop compliquée.
Mise en miroir
Tout d'abord, nous devons déterminer la taille d'E/S optimale pour maximiser notre vitesse de lecture et d'écriture :
fdisk -l /dev/sda|grep "Taille d'E/S"
Dans mon cas, le résultat affiche 512 octets. Ensuite, en supposant que notre disque défaillant est /dev/sdb et que notre nouveau disque est /dev/sdc, nous allons démarrer le miroir comme suit :
dd if=/dev/sdb of=/dev/sdc conv=sync,noerror bs=512
Le drapeau noerror est passé pour indiquer à dd de ne pas quitter en cas d'erreur de lecture
Vérification de la progression
dd imprimera une vérification d'état à la réception du signal USR1. Dans un terminal séparé, lancez :
kill -USR1 $(pidof jj)
Reprise
Souvent, après une série de secteurs défectueux, la vitesse de transfert de dd chute et reste limitée. Pour atténuer cela, arrêtez d'abord le transfert avec Ctrl-C permettant à dd d'imprimer sa progression actuelle :
6002656+0 records in 6002656+0 records out 3073359872 bytes (3.1 GB) copied
Assurez-vous maintenant que toutes les données sont vidées :
synchroniser
Une fois cela fait, retirez et reconnectez le lecteur, avant de continuer là où dd s'est arrêté pour la dernière fois :
dd if=/dev/sdb of=/dev/sdc bs=512 conv=sync,noerror seek=6002656 skip=6002656
Une fois terminé, vous voudrez analyser le ou les systèmes de fichiers du nouveau lecteur pour détecter et réparer les erreurs et la corruption du système de fichiers.
Liens
Sec numérique IO