Outils pour utilisateurs

Outils du site


app:ddrescue:documentation

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
app:ddrescue:documentation [2017/06/23 09:21] yoannapp:ddrescue:documentation [2024/03/15 15:39] (Version actuelle) yoann
Ligne 8: Ligne 8:
 ===== Concepts ===== ===== Concepts =====
  
-** Block**: Quantité quelconque 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.+** 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. **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.
Ligne 42: Ligne 42:
 ===== Algorithme ===== ===== Algorithme =====
  
 +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):
 +
 +  - Optionnellement lecture du mapfile décrivant le statut d'une récupération multi-parties ou précédente. Si aucun mapfile n'est précisé, s'il est vide ou n'existe pas, tout le domaine de restauration est marqué comme non essayé **non-tried**.
 +  - **Première phase: la copie** (en 5 passes). Lecture des parties non essayées (**non-tried**) du domaine de restauration dans le fichier d'entrée. Marque les blocs illisibles ou répondant trop lentement comme **non-trimmed** (non arrangé) et passe au delà en laissant un espace. Ces zones délaissées seront essayées plus tard avec 4 passes additionnelles avant abandon (**triming**), inversant le sens de lecture entre chaque passe jusqu'à ce que tout le domaine de restauration ait été essayé.\\ La 2ieme passe délimite les blocs laissés par la première passe. Les passes 3 et 4 tentent de lire dans le même sens les zone délaissées car trop lentes. Pour chaque blocs, les passes 2 à 4 abandonnent le bloc dès la première erreur. La dernière passe est un passe de balayage avec abandon désactivé. L’intérêt des passes multiples est de déterminer de larges zones défectueuses rapidement, sauvegarder en premier les zones les plus prometteuses, garder le fichier map petit et produire un bon point de départ pour le trimming.\\ Seulement les zones **non-tried** sont lues par blocs. Les étapes de **trimming**, **scraping** et **retrying** sont faites secteurs par secteurs. Chaque secteur est essayé au plus 2 fois. La première fois comme partie d'un bloc, la seconde en lecture du secteur seul.
 +  - **Deuxième phase: le trimming**. Le trimming s'effectue en une passe. Pour chaque bloc marqué **non-trimmed** lecture par secteur de l’extrémité du bloc jusqu’à un secteur défaillant, marque le secteur comme mauvais **bad** et le reste du bloc **non-scraped** sans essayer de le lire.
 +
 +===== Installation =====
 +
 +Sur une debian like, le paquet à installer via apt est **gddrescue** :
 +<code bash>
 +sudo apt-get install gddrescue
 +</code>
 +
 +La documentation complète est disponible au format info :
 +<code bash>
 +info ddrescue
 +</code>
 +
 +
 +===== Options/arguments usuels =====
 +
 +  * **-f** [Force] obligatoire si le clone est écrit directement sur un périphérique plutôt que dans un fichier.
 +  * **-d** [Direct Access] au périphérique de stockage, non obligatoire et peut générer des erreurs si le système ne supporte pas l'option.
 +  * -R [Reverse Clone] Refait une passe ou commence le clonage par la fin du périphérique. Pratique pour éviter une large zone de secteurs défectueux.
 +  * **-r** [retries] Cette option ne devrait être définie qu' après la première passe de clonage. Réessaye de lire les secteur défectueux.
 +  * **-A** [Try Again] Marque tous les secteurs defectueux du fichier log en non lu et essaye à nouveau d'y accéder.
 +
 +===== Exemple =====
 +
 +<code bash>
 +$ sudo ddrescue /dev/sda1 /data/recovery/sda1.img /data/recovery/journal-sda1.log
 +</code>
 +
 +Cette commande permettra de cloner la partition /dev/sda1. Le travail de restauration se fera ensuite a partir du clone.
 +
 +===== Références =====
 +
 +  * https://www.data-medics.com/forum/how-to-clone-a-hard-drive-with-bad-sectors-using-ddrescue-t133.html
    
app/ddrescue/documentation.1498209687.txt.gz · Dernière modification : 2021/02/01 21:51 (modification externe)