Table des matières
Utilisation de DDrescue pour la récupération de données
Affreusement récupéré d'un billet de blog MicroLinux.
Prérequis : démarrer sur une clé Linux bootable, par exemple. Disposer un shell root et du paquet “ddrescue”.
Première étape : identifier le nom du fichier de périphérique de bloc (le disque et la partition concerné)
Utiliser la commande suivante pour lister les disques et partitions :
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 931.5G 0 disk ├─sda1 8:1 0 1G 0 part /boot ├─sda2 8:2 0 922.5G 0 part / └─sda3 8:3 0 8G 0 part [SWAP] sdb 8:16 0 238.5G 0 disk ├─sdb1 8:17 0 8M 0 part ├─sdb2 8:18 0 500M 0 part ├─sdb3 8:19 0 8G 0 part └─sdb4 8:20 0 230G 0 part
Ici, pour l'exemple, on va tenter de récupérer des données sur la partition de 230G (donc sdb4, que l'on pourra appeler par le fichier /dev/sdb4).
Seconde étape : utiliser ddrescue pour créer une image du disque dur "sans erreurs de stockage"
On utilise ddrescue de la manière suivante :
# ddrescue -f -n /dev/sdb4 rescue.img rescue.log
- L’option -f force l’ouverture des fichiers ou périphériques en écriture.
- L’option -n évite les tentatives de relecture des secteurs défectueux, ce qui permet d’accélérer le processus.
- L'argument “/dev/sdb4” correspond au fichier de périphérique trouvé lors de l'étape précédente.
- L'argument “rescue.img” indique qu'on souhaite créer une image propre du disque dans un fichier qui se nommera rescue.img.
- Le dernier argument “rescue.log” indique qu'on va sauvegarder le journal d’exécution de la commande dans un fichier rescue.log.
Si la commande précédente s'arrête du fait d'erreurs trop importantes sur le disques, il est possible de la relancer de la manière suivante :
# ddrescue -d -f -r3 /dev/sdb4 rescue.img rescue.log
- L’option -d utilise l’accès direct au disque.
- L’option -r3 tente de relire les secteurs défectueux jusqu’à trois fois.
Au terme de la récupération, on dispose donc d'un fichier image du disque dur :
# ls -lh rescue.img -rw-r--r--. 1 root root 230G Apr 21 17:22 rescue.img
Troisième étape : accéder au donner restaurées dans l'image
On crée tout d'abord un point de montage pour monter l'image du disque :
# mkdir -v /mnt/rescue mkdir: created directory '/mnt/rescue'
On monte ensuite l'image du disque en loopback :
# mount -v -o loop rescue.img /mnt/rescue/ mount: /dev/loop0 mounted on /mnt/rescue.
Et on peut du coup utiliser ls ou tout autre outil pour accéder au données :
# ls /mnt/rescue/ bin dev home lib64 mnt proc run selinux sys usr boot etc lib lost+found opt root sbin srv tmp var