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 | Révision précédente Prochaine révision Les deux révisions suivantes | ||
ddrescue [Le 18/02/2019, 22:06] 37.171.113.236 [Support endommagé] |
ddrescue [Le 18/06/2019, 14:20] 88.182.40.86 [ddrescue par des exemples] Une bonne astuce. |
||
---|---|---|---|
Ligne 78: | Ligne 78: | ||
=====Utilisation===== | =====Utilisation===== | ||
+ | Si le disque usagé est un disque assez classique, il peut être équipé de pas mal de partitions **dont une seule contient les données de l'utilisateur.** | ||
+ | Dans un tel contexte, il ne faut dupliquer que cette partition. Dans l'ensemble cette partition est "moins abîmée" que les partitions contenant les O.S. Il est alors inutile de vouloir dupliquer le disque entier. | ||
====Fonctionnement de base==== | ====Fonctionnement de base==== | ||
Ligne 145: | Ligne 147: | ||
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. | ||
+ | La commande sera du style <code>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. | ||
Ligne 160: | Ligne 168: | ||
- 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 | ||
- | - sudo 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 | ||
- | - exécuter le contenu du fichier /home/ubuntu/dd/ecrire | + | - 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> |
+ | - exit | ||
=== Sauvegarde d'une partition dans une partition avec un livecdrom === | === Sauvegarde d'une partition dans une partition avec un livecdrom === | ||
La taille du secteur est de 4096 bytes. | La taille du secteur est de 4096 bytes. | ||
Ligne 171: | Ligne 180: | ||
- 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 /dev/sde2 /media/ubuntu/dd/suivi6 | + | - sudo ddrescue -f -c1 -b4096 /dev/sda6 /media/ubuntu/dd/suivi6 |
== 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 | - sudo ddrescue -d -f -R -r27 -b4096 -c1 /dev/sda6 /dev/sde2 /media/ubuntu/dd/suivi6 | ||
Ligne 177: | Ligne 186: | ||
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 | - sudo -i | ||
- | - ddrescuelog -l- -b4096 /media/ubuntu/dd/suivi >/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/sde 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 | ||
- | - exécuter le contenu du fichier /media/ubuntu/dd/ecrire | + | - 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 | ||
- | == 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 | 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 | ||
+ | ===== 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. | ||
+ | Lire de telles données peut donc se révéler problématique si elles sont accidentellement de même [[https://www.cgsecurity.org/wiki/Formats_de_fichier_r%C3%A9cup%C3%A9r%C3%A9s_par_PhotoRec|type de format]] puisque les logiciels de lecture vont alors pouvoir lire normalement les fichiers. | ||
+ | |||
+ | Pour un film, ce n'est pas très grave. Personne ne verra qu'un paquet de 512 bytes est remplacé par une autre animation. | ||
+ | |||
+ | Pour une image, cela pourrait être visible avec une petite zone sans rapport avec le dessin. | ||
+ | |||
+ | 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 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 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. | ||
+ | __ | ||
+ | |||
+ | |||
+ | A titre d'exemple avec le visionneur d'images. Mettre 16 blocs à zéro à partir du bloc 100 provoque l'erreur suivante | ||
+ | //"Erreur fatale de lecture du fichier d'image XXXX.png IDAT.CRC error//". Mais en mettre seulement 8 permet l'ouverture du fichier avec seulement l'affichage du début. | ||
+ | |||
+ | Il est fort probable que chaque logiciel de lecture dispose de sa propre logique. | ||
+ | |||
+ | |||
==== Connaître les fichiers stockés dans une partition EXT4 impactés par les blocs défectueux. ==== | ==== Connaître les fichiers stockés dans une partition EXT4 impactés par les blocs défectueux. ==== |