Outils pour utilisateurs

Outils du site


sauvegarde:ddrescue

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
sauvegarde/ddrescue.txt · Dernière modification : 2025/05/07 09:40 de elesouef