Traduction partielle de la documentation officielle de l'outil disponible sur https://www.gnu.org/software/ddrescue/manual/ddrescue_manual.html
Block: Quantité quelconque de données (séquence continue de données). Un block est caractérisé par une position de départ et une taille. La position de départ et la plus basse position dans le block. La fin du block correspond à la position de départ + sa taille.
Device: Périphérique, unité/pièce matérielle pouvant contenir des données. Disques-durs, lecteurs DVD/CD-Roms, clés USB sont des périphériques.
Sector: Secteur, c'est le bloc matériel. La plus petite quantité de données accessible sur le périphérique, c'est une caractéristique du périphérique (device).
Cluster: Groupe de secteurs consécutifs lus/écrits en une passe.
Partition: Un périphérique peut être divisé en zone logiques indépendantes, ce sont les partitions. Chaque partition contient un système de fichier.
File: Le fichier est une unité de données nommée. Il est stocké par le système d'exploitation afin d’être retrouvé plus tard via son nom.
Formats récupérables Comme ddrescue utilise les bibliothèques standards pour lire les données sur les périphériques seuls les périphériques montables peuvent être récupérés à l'aide de ddrescue. CD-Roms et DVD-Roms peuvent être récupérés mais pas les Compact Disc audio.
Domaine de restauration Bloc ou ensemble de blocs sur lesquels agir. On peut le définir à l'aide des options --input-position, --size et --domain-mapfile. Le domaine de restauration par défaut s’étend sur l'ensemble du fichier en entrée ou du mapfile. Si ddrescue ne peut déterminer la taille du fichier d' entrée le domaine de restauration est définit avec la taille maximale d'un bloc (2^63 -1 soit 8EiOctets - 1 Octet).
ddrescue n'essaiera pas de lire des données hors du domaine de restauration sauf lorsque l’accès direct non aligné est demandé.
La quantité de données restaurée, le nombre de secteurs corrompus etc peuvent variés ou meme devenir nuls dans le cas ou l'on limite le domaine de restauration. Pas d’inquiétude, ils n'ont pas disparus de la récupération mais sont simplement hors du domaine de restauration spécifié par l'utilisateur.
ddrescue ne diffère pas d'autres outils puissants. Vous avez besoin de comprendre ce qu'il fait et d'appréhender le fonctionnement de quelques éléments des machines afin de l'utiliser correctement et en toute sécurité.
GNU ddrescue n'est pas un dérivé de dd, il n'a pas a y être comparé si ce n'est qu'il peut être utilisé pour copier des données d'un périphérique à un autre. La différence majeure est que ddrescue utilise un algorithme sophistiqué pour copier des données contenu sur un disque défaillant en limitant au maximum les dommages/pertes des données.
L'utilitaire dd peut être utilisé pour sauvegarder les données d'un périphérique défaillant mais il lit séquentiellement les données, ce qui peut endommager le lecteur sans rien récupérer si les erreurs sont au début du disque.
D'autres programmes lisent séquentiellement les données mais basculent sur des tailles de lecture plus petites lorsque ils rencontrent des erreurs. C'est en général une mauvaise idée car cela conduit à passer plus de temps sur une zone défectueuse du disque, endommageant la surface, les têtes et la mécanique du disque au lieu d'essayer de récupérer les données le plus rapidement possible. Ce comportement réduit les chances de pouvoir récupérer les données saines restantes.
L'algorithme de ddrescue est le suivant (l'utilisateur peut interrompre le processus a tout instant mais doit être attentif au fait qu'un périphérique disque endommagé peut bloquer un moment ddrescue avant que le noyau ne rende la main):
Sur une debian like, le paquet à installer via apt est gddrescue :
sudo apt-get install gddrescue
La documentation complète est disponible au format info :
info ddrescue
$ sudo ddrescue /dev/sda1 /data/recovery/sda1.img /data/recovery/journal-sda1.log
Cette commande permettra de cloner la partition /dev/sda1. Le travail de restauration se fera ensuite a partir du clone.