Récupération de données sur disque défectueux
J’ai récupéré, il y a peu, un disque dur d’où une bonne partie des données semblaient irrécupérables. Je dis « semblaient » car nous allons voir ici que ce n’était pas tout a fait le cas. Pour récupérer ces données, nous utiliserons l’outil GNU DDRescue.
Récupération des données brutes
Sous Debian, nous utiliserons le paquet gddrescue
qui correspond à GNU DDrescue.
# apt-get install gddrescue
Pour information, GNU DDrescue
est un outils de récupération de données. Nous allons donc tenter la récupération des données de notre disque dur pour les copier dans un fichier ISO que l’on utilisera par la suite pour récupérer proprement les fichiers désirés. Bien sur il vous faut au moins l’espace de votre disque dur de disponible.
# ddrescue -r 5 -b 512 /dev/sdb target.iso
La commande précédente est exécuté avec les options -b 512
pour spécifier que les données doivent être copiées par block de 512 octets et -r 5
pour demander 5 essais de copie en cas d’erreurs de lecture avant de passer à la suite.
Nous avons donc la copie de notre disque dans un fichier ISO sur un disque qui ne fait plus d’erreur de lecture. C’est déjà un bon point.
Montage de la partition
Le problème est maintenant de monter ce fichier ISO correctement afin qu’il soit utilisable. Dans la commande précédente, nous avons copié le disque entier et pas seulement la partition voulue. Pour monter les partitions de manière indépendantes, il nous faut connaître la table de partition. Pour cela, nous utilisons le logiciel mmls qui permet d’afficher la table de partition d’un volume. Ce programme fait parti du paquet Debian sleuthkit
.
# apt-get install sleuthkit
Nous demandons à mmls
de nous afficher la table de partition à partir du fichier ISO.
$ mmls target.iso DOS Partition Table Offset Sector: 0 Units are in 512-byte sectors Slot Start End Length Description 00: Meta 0000000000 0000000000 0000000001 Primary Table (#0) 01: ----- 0000000000 0000000062 0000000063 Unallocated 02: 00:00 0000000063 1953520064 1953520002 Win95 FAT32 (0x0C) 03: ----- 1953520065 1953525167 0000005103 Unallocated
La partition qui nous intéresse est la partition FAT32 d’index 02. Selon mmls
, elle commence au secteur 63 et chaque secteur fait 512 octets. Le début de la partition se trouve donc à l’octet 63*512=32256.
Nous pouvons donc monter notre partition via l’utilitaire mount
en lui spécifiant de commencer au 32256ème octet.
# mount -o loop,offset=32256 target.iso /mnt/target/
Notre partition est montée, il ne vous reste qu’à copier vos données sur un nouveau disque.