Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | Prochaine révision Les deux révisions suivantes | ||
ddrescue [Le 18/06/2019, 14:20] 88.182.40.86 [ddrescue par des exemples] Une bonne astuce. |
ddrescue [Le 07/07/2019, 15:52] L'Africain |
||
---|---|---|---|
Ligne 20: | Ligne 20: | ||
Vérifiez que le disque sur lequel vous enregistrez le fichier cible et le fichier journal soit en bon état ! | Vérifiez que le disque sur lequel vous enregistrez le fichier cible et le fichier journal soit en bon état ! | ||
- | + | <code bash>smartctl -a /dev/disque_recepteur</code> | |
- | smartctl -a /dev/disque_recepteur | + | |
| | ||
Vérifiez que l'espace libre soit supérieur à la taille du périphérique à sauver ! | Vérifiez que l'espace libre soit supérieur à la taille du périphérique à sauver ! | ||
- | + | <code bash>df -h</code> | |
- | df -h | + | |
| | ||
- | Il est inutile de continuer à faire des tests automatiques de qualité sur le disque défectueux. La déactivation se fait par la commande: | + | Il est inutile de continuer à faire des tests automatiques de qualité sur le disque défectueux. La désactivation se fait par la commande: |
- | smartctl -o off /dev/disque_emetteur. | + | <code bash>smartctl -o off /dev/disque_emetteur.</code> |
Ligne 43: | Ligne 41: | ||
=== Dans une instance "live". === | === Dans une instance "live". === | ||
En ligne de commande | En ligne de commande | ||
- | <code>sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe" | + | <code bash>sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe" |
sudo apt-get update | sudo apt-get update | ||
sudo apt install gddrescue</code> | sudo apt install gddrescue</code> | ||
Ligne 53: | Ligne 51: | ||
Désactivez le //montage// automatique des partitions, afin d'éviter que le système n'essaye de réparer une partition endommagée, risquant ainsi de l'endommager encore plus. | Désactivez le //montage// automatique des partitions, afin d'éviter que le système n'essaye de réparer une partition endommagée, risquant ainsi de l'endommager encore plus. | ||
- | + | <code bash>gsettings set org.gnome.desktop.media-handling automount false</code> | |
- | gsettings set org.gnome.desktop.media-handling automount false | + | |
| | ||
Évitez d'utiliser une partition NTFS pour accueillir une image disque de taille importante (plus de quelques Go). Plusieurs personnes ont rapporté que la récupération ralentit au fur et à mesure de la récupération, à telle point qu'il est impossible de finir la récupération. | Évitez d'utiliser une partition NTFS pour accueillir une image disque de taille importante (plus de quelques Go). Plusieurs personnes ont rapporté que la récupération ralentit au fur et à mesure de la récupération, à telle point qu'il est impossible de finir la récupération. | ||
Ligne 63: | Ligne 60: | ||
=== ddrescueview === | === ddrescueview === | ||
- | Vous pouvez utiliser //ddrescueview// pour suivre l'avancement de la sauvegarde de façon graphique. Le résultat est présenté sous la forme d'une grille de couleur à la manière des outils de défragmentation sous Windows. | + | Vous pouvez utiliser **[[apt>ddrescueview]]** pour suivre l'avancement de la sauvegarde de façon graphique. Le résultat est présenté sous la forme d'une grille de couleur à la manière des outils de défragmentation sous Windows. |
- | + | ||
- | Il n'existe pas de paquet pour ce logiciel. Vous pouvez le télécharger depuis http://sourceforge.net/projects/ddrescueview/. Une fois décompressé, activez les droits d'exécution (clic droit, Propriétés, Permissions, cocher la case Exécution), lancez le logiciel (double-clic). Lancez la sauvegarde en ligne de commande avec //ddrescue// puis ouvrez le journal ainsi créé avec //ddrescueview// et activez la relecture automatique du journal (Options, Automatic updates, 30 sec). | + | |
- | + | ||
- | Dans ce contexte, le fichier de suivi de ddrescue doit avoir une terminaison .log | + | |
- | + | ||
- | Sur Ubuntu 16.04 le paquet existe : **[[apt>ddrescueview]]**. | + | |
- | + | ||
- | === ddr_utils === | + | |
- | + | ||
- | Cette suite d'utilitaires va vous permettre de connaître la liste des fichiers affectés par les secteurs défectueux. | + | |
- | <note help>Il serait bon d'en dire un peu plus ou de ne rien dire.....</note> | + | |
=====Utilisation===== | =====Utilisation===== | ||
Ligne 83: | Ligne 68: | ||
====Fonctionnement de base==== | ====Fonctionnement de base==== | ||
L'application est lancée depuis une [[console]] ou un [[terminal]] : | L'application est lancée depuis une [[console]] ou un [[terminal]] : | ||
- | + | <code bash>sudo ddrescue <nom_fichier_source> <nom_fichier_cible>.img <nom_fichier_journal></code> | |
- | sudo ddrescue <nom_fichier_source> <nom_fichier_cible> <nom_fichier_journal> | + | |
| | ||
Avec:\\ | Avec:\\ | ||
Ligne 92: | Ligne 76: | ||
Pour obtenir une liste exhaustive des fonctions du logiciel, se reporter au site officiel ou à sa documentation: | Pour obtenir une liste exhaustive des fonctions du logiciel, se reporter au site officiel ou à sa documentation: | ||
- | + | <code bash> man ddrescue</code> | |
- | man ddrescue | + | |
ou encore | ou encore | ||
- | info ddrescue | + | <code bash>info ddrescue</code> |
| | ||
Ligne 101: | Ligne 84: | ||
Il est vivement conseillé d'utiliser un fichier de log, soit pour pouvoir l'exploiter ultérieurement et analyser l'état matériel du disque, soit pour pouvoir interrompre puis reprendre une récupération. | Il est vivement conseillé d'utiliser un fichier de log, soit pour pouvoir l'exploiter ultérieurement et analyser l'état matériel du disque, soit pour pouvoir interrompre puis reprendre une récupération. | ||
- | + | <code bash>sudo ddrescue <nom_fichier_source> <nom_fichier_cible>.img <chemin_fichier_log></code> | |
- | sudo ddrescue <nom_fichier_source> <nom_fichier_cible> <chemin_fichier_log> | + | |
| | ||
Avec:\\ | Avec:\\ | ||
Ligne 117: | Ligne 99: | ||
=== Option -n === | === Option -n === | ||
- | sudo ddrescue <source> <cible> <log> -n | + | <code bash>sudo ddrescue <source> <cible>.img <log> -n</code> |
permet de s'occuper en priorité des zones non endommagées et de revenir traiter celles-ci après. | permet de s'occuper en priorité des zones non endommagées et de revenir traiter celles-ci après. | ||
Ligne 123: | Ligne 105: | ||
=== Option -T === | === Option -T === | ||
- | sudo ddrescue <source> <cible> <log> -T | + | <code bash>sudo ddrescue <source> <cible>.img <log> -T</code> |
permet de reprendre une copie qui a été interrompue du fait de la disparition du matériel (déconnexion brutale, matériel instable qui "disparaît"). En fait, reprend toutes les zones qui n'ont pas encore été explorées. | permet de reprendre une copie qui a été interrompue du fait de la disparition du matériel (déconnexion brutale, matériel instable qui "disparaît"). En fait, reprend toutes les zones qui n'ont pas encore été explorées. | ||
Ligne 129: | Ligne 111: | ||
=== Option -r === | === Option -r === | ||
- | + | <code bash>sudo ddrescue <source> <cible>.img <log> -r1</code> | |
- | sudo ddrescue <source> <cible> <log> -r1 | + | |
Reprend la copie en se concentrant sur les zones considérées comme erronées en première lecture : le chiffre derrière r est un paramètre qui spécifie combien de tentative d'accès doivent être effectuées à chaque erreur rencontrée. | Reprend la copie en se concentrant sur les zones considérées comme erronées en première lecture : le chiffre derrière r est un paramètre qui spécifie combien de tentative d'accès doivent être effectuées à chaque erreur rencontrée. | ||
Ligne 144: | Ligne 125: | ||
==== ddrescue par des exemples ==== | ==== ddrescue par des exemples ==== | ||
- | Ce sous-chapitre est écrit par un 'débutant' de ddrescue le 31/12/2015. Merci à ceux qui connaissent bien l'outil de faire les corrections qu'ils jugeront nécessaire. | ||
- | |||
D'abord, il faut déterminer si la technique "sauvetage des partitions" est possible. Si oui, c'est la solution à privilégier car on peut fabriquer les partitions de duplication de taille identique sur d'autres supports avec l'application [[:gnome-disk-utility|Disques]] en fournissant la taille exacte de chaque partition en précisant que l'unité est le **Kio**. Cela sous-entend que la commande " **sudo fdisk -l** " a pu fonctionner. Il suffit de diviser par deux, le nombre de secteurs indiqués. | D'abord, il faut déterminer si la technique "sauvetage des partitions" est possible. Si oui, c'est la solution à privilégier car on peut fabriquer les partitions de duplication de taille identique sur d'autres supports avec l'application [[:gnome-disk-utility|Disques]] en fournissant la taille exacte de chaque partition en précisant que l'unité est le **Kio**. Cela sous-entend que la commande " **sudo fdisk -l** " a pu fonctionner. Il suffit de diviser par deux, le nombre de secteurs indiqués. | ||
- | <note important>Une bonne astuce est de commencer à écrire des zéros dans l'espace destiné à recevoir la récupération. Cela permet de vérifier immmédiatement que la zone de sortie est saine. Cela évite d'avoir à dérouler la procédure de mise à zéro des zones qui n'ont pas pu être copiées. | + | <note important>Une bonne astuce est de commencer à écrire des zéros dans l'espace destiné à recevoir la récupération. Cela permet de vérifier immédiatement que la zone de sortie est saine. Cela évite d'avoir à dérouler la procédure de mise à zéro des zones qui n'ont pas pu être copiées. |
- | La commande sera du style <code>sudo dd if=/dev/zero of=/dev/Le_support_de_sortie bs=64k status=progress</code> </note> | + | La commande sera du style <code bash>sudo dd if=/dev/zero of=/dev/Le_support_de_sortie bs=64k status=progress</code> </note> |
- | |||
=== Sauvegarde du disque interne "sda" sur un disque externe "sde" avec une liveusb__PERSISTANTE__ === | === Sauvegarde du disque interne "sda" sur un disque externe "sde" avec une liveusb__PERSISTANTE__ === | ||
La taille du secteur est de 512 bytes. | La taille du secteur est de 512 bytes. | ||
== Faire la copie des secteurs de bonne qualité == | == Faire la copie des secteurs de bonne qualité == | ||
- | - sudo mkdir /home/ubuntu/dd | + | <code bash>sudo mkdir /home/ubuntu/dd |
- | - sudo ddrescue -f -n -b512 /dev/sda /dev/sde /home/ubuntu/dd/suivi | + | sudo ddrescue -f -n -b512 /dev/sda /dev/sde /home/ubuntu/dd/suivi |
- | - sudo ddrescue -f -c1 -b512 /dev/sda /dev/sde /home/ubuntu/dd/suivi | + | sudo ddrescue -f -c1 -b512 /dev/sda /dev/sde /home/ubuntu/dd/suivi</code> |
ATTENTION : Si la cible est un disque dur, toutes les données de ce disque dur (ici /dev/sde) seront écrasées donc perdues. Pour que ce ne soit pas le cas il faut que la cible soit un fichier par exemple /dev/sde/chemin/fichier_de_recup.img | ATTENTION : Si la cible est un disque dur, toutes les données de ce disque dur (ici /dev/sde) seront écrasées donc perdues. Pour que ce ne soit pas le cas il faut que la cible soit un fichier par exemple /dev/sde/chemin/fichier_de_recup.img | ||
== Faire la copie des secteurs endommagés == | == Faire la copie des secteurs endommagés == | ||
- | - sudo ddrescue -d -f -R -r3 -b512 -c1 /dev/sda /dev/sde /home/ubuntu/dd/suivi | + | <code bash>sudo ddrescue -d -f -R -r3 -b512 -c1 /dev/sda /dev/sde /home/ubuntu/dd/suivi |
- | - sudo ddrescue -d -f -R -r27 -b512 -c1 /dev/sda /dev/sde /home/ubuntu/dd/suivi | + | sudo ddrescue -d -f -R -r27 -b512 -c1 /dev/sda /dev/sde /home/ubuntu/dd/suivi</code> |
==Fabriquer les secteurs qui n'ont pas été copiés == | ==Fabriquer les secteurs qui n'ont pas été copiés == | ||
J'ai pensé à cette action afin de récupérer 'facilement' les fichiers qui sont en mauvais état suite à certains blocs manquants. C'est possible pas les outils de gestions des mauvais blocks ou la recherche dans les fichiers. | J'ai pensé à cette action afin de récupérer 'facilement' les fichiers qui sont en mauvais état suite à certains blocs manquants. C'est possible pas les outils de gestions des mauvais blocks ou la recherche dans les fichiers. | ||
- | - sudo -i | + | <code bash>sudo -i |
- | - ddrescuelog -l- -b512 /home/ubuntu/dd/suivi >/home/ubuntu/dd/badblocs | + | ddrescuelog -l- -b512 /home/ubuntu/dd/suivi >/home/ubuntu/dd/badblocs |
- | - echo "SECTEUR ILLISIBLE On va marquer au fer rouge tous ces secteurs faussement défectueux afin de rechercher dans les fichiers ceux qui sont impactés par SECTEUR ILLISIBLE" >/home/ubuntu/dd/marque | + | echo "SECTEUR ILLISIBLE On va marquer au fer rouge tous ces secteurs faussement défectueux afin de rechercher dans les fichiers ceux qui sont impactés par SECTEUR ILLISIBLE" >/home/ubuntu/dd/marque |
- | - sed 's|^|sudo dd if=/home/ubuntu/dd/marque of=/dev/sde bs=512 count=1 seek=|' /home/ubuntu/dd/badblocs>/home/ubuntu/dd/ecrire | + | sed 's|^|sudo dd if=/home/ubuntu/dd/marque of=/dev/sde bs=512 count=1 seek=|' /home/ubuntu/dd/badblocs>/home/ubuntu/dd/ecrire |
- | - pg /home/ubuntu/dd/ecrire | + | pg /home/ubuntu/dd/ecrire</code> |
- | - exécuter le contenu du fichier /home/ubuntu/dd/ecrire. Il est aussi possible de simplement y mettre des zéros avec cette commande: <code>ddrescue --fill-mode=- --force --synchronous /dev/zero /dev/sde /home/ubuntu/dd/suivi</code> | + | - exécuter le contenu du fichier /home/ubuntu/dd/ecrire. Il est aussi possible de simplement y mettre des zéros avec cette commande: <code bash>ddrescue --fill-mode=- --force --synchronous /dev/zero /dev/sde /home/ubuntu/dd/suivi</code> |
- exit | - exit | ||
=== Sauvegarde d'une partition dans une partition avec un livecdrom === | === Sauvegarde d'une partition dans une partition avec un livecdrom === | ||
Ligne 177: | Ligne 155: | ||
Le disque externe a été formaté avec au moins deux partitions; sde1 pour le suivi du processus (taille 1 Go) et sde2 pour recevoir la duplication (la taille étant au moins égale à sda6). | Le disque externe a été formaté avec au moins deux partitions; sde1 pour le suivi du processus (taille 1 Go) et sde2 pour recevoir la duplication (la taille étant au moins égale à sda6). | ||
== Faire la copie des secteurs de bonne qualité == | == Faire la copie des secteurs de bonne qualité == | ||
- | - sudo mount /dev/sde1 /media/ubuntu | + | <code bash>sudo mount /dev/sde1 /media/ubuntu |
- | - sudo mkdir /home/ubuntu/dd | + | sudo mkdir /home/ubuntu/dd |
- | - sudo ddrescue -f -N -n -b4096 -K524288 /dev/sda6 /dev/sde2 /media/ubuntu/dd/suivi6 | + | sudo ddrescue -f -N -n -b4096 -K524288 /dev/sda6 /dev/sde2 /media/ubuntu/dd/suivi6 |
- | - sudo ddrescue -f -c1 -b4096 /dev/sda6 /media/ubuntu/dd/suivi6 | + | sudo ddrescue -f -c1 -b4096 /dev/sda6 /media/ubuntu/dd/suivi6</code> |
== Faire la copie des secteurs endommagés == | == Faire la copie des secteurs endommagés == | ||
- | - sudo ddrescue -d -f -R -r27 -b4096 -c1 /dev/sda6 /dev/sde2 /media/ubuntu/dd/suivi6 | + | <code bash>sudo ddrescue -d -f -R -r27 -b4096 -c1 /dev/sda6 /dev/sde2 /media/ubuntu/dd/suivi6</code> |
== Fabriquer les secteurs qui n'ont pas été copiés == | == Fabriquer les secteurs qui n'ont pas été copiés == | ||
J'ai pensé à cette action afin de récupérer 'facilement' les fichiers qui sont en mauvais état suite à certains blocs manquants. C'est possible pas les outils de gestions des mauvais blocks ou la recherche dans les fichiers. | J'ai pensé à cette action afin de récupérer 'facilement' les fichiers qui sont en mauvais état suite à certains blocs manquants. C'est possible pas les outils de gestions des mauvais blocks ou la recherche dans les fichiers. | ||
- | - sudo -i | + | <code bash>sudo -i |
- | - ddrescuelog -l- -b4096 /media/ubuntu/dd/suivi6 >/media/ubuntu/dd/badblocs | + | ddrescuelog -l- -b4096 /media/ubuntu/dd/suivi6 >/media/ubuntu/dd/badblocs |
- | - echo "SECTEUR ILLISIBLE On va marquer au fer rouge tous ces secteurs faussement défectueux afin de rechercher dans les fichiers ceux qui sont impactés par SECTEUR ILLISIBLE" >/media/ubuntu/dd/marque | + | echo "SECTEUR ILLISIBLE On va marquer au fer rouge tous ces secteurs faussement défectueux afin de rechercher dans les fichiers ceux qui sont impactés par SECTEUR ILLISIBLE" >/media/ubuntu/dd/marque |
- | - sed 's|^|sudo dd if=/media/ubuntu/dd/marque of=/dev/sde2 bs=4096 count=1 seek=|' /media/ubuntu/dd/badblocs>/media/ubuntu/dd/ecrire | + | sed 's|^|sudo dd if=/media/ubuntu/dd/marque of=/dev/sde2 bs=4096 count=1 seek=|' /media/ubuntu/dd/badblocs>/media/ubuntu/dd/ecrire |
- | - pg /media/ubuntu/dd/ecrire | + | pg /media/ubuntu/dd/ecrire</code> |
- exécuter le contenu du fichier /media/ubuntu/dd/ecrire. Il est aussi possible de simplement y mettre des zéros avec cette commande: <code>ddrescue --fill-mode=- --force --synchronous /dev/zero /dev/sde2 /media/ubuntu/dd/suivi6</code> | - exécuter le contenu du fichier /media/ubuntu/dd/ecrire. Il est aussi possible de simplement y mettre des zéros avec cette commande: <code>ddrescue --fill-mode=- --force --synchronous /dev/zero /dev/sde2 /media/ubuntu/dd/suivi6</code> | ||
- exit | - exit | ||
- | === Copier dans un fichier. === | + | === Copier dans un fichier === |
- | sudo ddrescue -b 512 --sparse --log-rates=/mnt/rescueRate.log /dev/disk/by-id/ata-MAXTOR_STM3160215A_9RA8V0BK-part1 /mnt/disk.img /mnt/rescue.map | + | <code bash>sudo ddrescue -b 512 --sparse --log-rates=/mnt/rescueRate.log /dev/disk/by-id/ata-MAXTOR_STM3160215A_9RA8V0BK-part1 /mnt/disk.img /mnt/rescue.map</code> |
===== Remarques concernant le forçage en écriture des secteurs qui n'ont pas pu être copiés. ===== | ===== Remarques concernant le forçage en écriture des secteurs qui n'ont pas pu être copiés. ===== | ||
Ces secteurs du support de sortie contiennent donc des informations sans rapport avec le support d'entrée. | Ces secteurs du support de sortie contiennent donc des informations sans rapport avec le support d'entrée. | ||
Ligne 205: | Ligne 183: | ||
Pour une musique, les experts pourraient entendre une fausse note. | Pour une musique, les experts pourraient entendre une fausse note. | ||
- | Pour un document du style word, on pourra s'apercevoir que 512 octets ne sont pas dans la même langue ou qu'ils sont sans rapport avec l'histoire racontée. | + | Pour un document du style writer, on pourra s'apercevoir que 512 octets ne sont pas dans la même langue ou qu'ils sont sans rapport avec l'histoire racontée. |
- | Pour un document du style excel, il va être plus difficile de s'apercevoir que les chiffres ne sont pas valables. Si par malheur cela concerne le tableau final....... | + | Pour un document du style calc, il va être plus difficile de s'apercevoir que les chiffres ne sont pas valables. Si par malheur cela concerne le tableau final....... |
Pour toutes ses raisons, il est tentant de mettre des données fictives (des zéros ou autre chose) dans ces secteurs. Cependant c'est à double tranchant pour les logiciels car ceux-ci pourraient ne plus lire le fichier abîmé. __Il faudrait alors utiliser la version moins un du fichier qui est très certainement inexistante. | Pour toutes ses raisons, il est tentant de mettre des données fictives (des zéros ou autre chose) dans ces secteurs. Cependant c'est à double tranchant pour les logiciels car ceux-ci pourraient ne plus lire le fichier abîmé. __Il faudrait alors utiliser la version moins un du fichier qui est très certainement inexistante. | ||
Ligne 252: | Ligne 230: | ||
* [[mount]] et [[umount]] pour accéder au contenu des partitions ; | * [[mount]] et [[umount]] pour accéder au contenu des partitions ; | ||
* [[convmv]] pour convertir les noms de fichiers en UTF8 ; | * [[convmv]] pour convertir les noms de fichiers en UTF8 ; | ||
+ | =====Restaurer une sauvegarde d'un disque==== | ||
+ | Pour restaurer une sauvegarde effectuée par ddrescue, soit vous utilisez la commande [[dd]] soit cette commande ddrescue: | ||
+ | <code bash>sudo ddrescue -f <nom_de_votre_fichier_de_sauv>.img /dev/sdx restore.logfile</code> | ||
+ | modifier sdx par le disque sur lequel vous souhaitez restaurer l'image de sauvegarde. | ||
===== Désinstallation ===== | ===== Désinstallation ===== |