#1 Le 25/06/2012, à 19:18
- bastienb
Exploiter l'image bit à bit d'un disque dur
Bonjour,
J'ai cogné mon disque dur externe il y a quelques temps. Il refuse maintenant de s'ouvrir, me disant qu'il faut tout d'abord le formater. J'ai pensé que la tête de lecture s'était décalée et que le début n'est plus le début de la partition (enfin je ne suis pas très calé, ce sont des suppositions). J'ai donc tenté de récupérer la partition sur windows avec des logiciels spéciaux. Tout ce que j'ai réussis à faire c'est d'afficher l'arborescence du disque dur (ce qui veut au moins dire que l'on peut y accéder, et que l'histoire de partition n'est pas si bête que ça...).
Je me suis dit que pour limiter la casse il valait mieux travailler sur une image du disque dur pour éviter de le stresser (enfin je le stresse une seule fois). Donc j'ai réalisé une image bit à bit avec la commande "dd".
Mais je ne sais maintenant absolument pas quoi faire pour extraire de cette image les données que j'ai perdues.
Je voulais savoir si vous pouviez me donner un coup de main, parce que j'ai beaucoup de mal à trouver les infos...
Merci beaucoup
Dernière modification par bastienb (Le 25/06/2012, à 19:20)
Hors ligne
#2 Le 25/06/2012, à 20:35
- pingouinux
Re : Exploiter l'image bit à bit d'un disque dur
Bonsoir,
Je peux t'indiquer une méthode pour visualiser l'image d'une partition (et non du disque complet), faite avec cette commande (c'est un exemple) :
dd if=/dev/sda1 of=~/mon_fichier_image bs=1M
sudo losetup -f # Pour récupérer un /dev/loop libre (/dev/loop0 par exemple)
sudo losetup /dev/loop0 chemin_complet_vers_le_fichier_image_de_la_partition
mkdir ~/recup
sudo mount /dev/loop0 ~/recup
Les fichiers de la partition initiale doivent normalement être accessibles dans ~/recup
Pour démonter :
sudo umount ~/recup
sudo losetup -d /dev/loop0
Hors ligne
#3 Le 25/06/2012, à 21:36
- Haleth
Re : Exploiter l'image bit à bit d'un disque dur
Tout en un:
mount -o loop fichier_image ~/recup
Ubuntu is an ancien African word which means "I can't configure Debian"
Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.
Hors ligne
#4 Le 25/06/2012, à 21:44
- bastienb
Re : Exploiter l'image bit à bit d'un disque dur
Tout en un:
mount -o loop fichier_image ~/recup
Est-ce que tu pourrais me dire en quoi c'est tout en un stp?
Merci beaucoup pour vos réponses! Je prends un peu de recul sur vos réponses pour comprendre ce que je fais, ce que vous dites et je test ensuite.
Hors ligne
#5 Le 25/06/2012, à 22:00
- Haleth
Re : Exploiter l'image bit à bit d'un disque dur
Ca evite d'utiliser losetup, au final tu as ca :
dd if=/dev/sda1 of=~/mon_fichier_image bs=1M
mkdir ~/recup
mount -o loop fichier_image ~/recup
Blablabla
sudo umount ~/recup
Ubuntu is an ancien African word which means "I can't configure Debian"
Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.
Hors ligne
#6 Le 25/06/2012, à 22:03
- pingouinux
Re : Exploiter l'image bit à bit d'un disque dur
@Haleth #3 : Effectivement, c'est plus court. Merci pour le tuyau.
Hors ligne
#7 Le 26/06/2012, à 18:07
- bastienb
Re : Exploiter l'image bit à bit d'un disque dur
Bon, il me dit ça:
root@bastien-desktop:/media/My Passport/Jess# mount -t ntfs -o loop image_dd ~/recup
Failed to read last sector (625137281): Argument invalide
HINTS: Either the volume is a RAID/LDM but it wasn't setup yet,
or it was not setup correctly (e.g. by not using mdadm --build ...),
or a wrong device is tried to be mounted,
or the partition table is corrupt (partition is smaller than NTFS),
or the NTFS boot sector is corrupt (NTFS size is not valid).
Failed to mount '/dev/loop0': Argument invalide
The device '/dev/loop0' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?
j'ai mis ntfs parce que mount me demandait le type de fichier utilisé.
Qu'en pensez-vous?
Hors ligne
#8 Le 26/06/2012, à 18:14
- pingouinux
Re : Exploiter l'image bit à bit d'un disque dur
Bonsoir,
Or the whole disk instead of a partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?
Il y a des chances que ce soit le disque complet qui ait été sauvegardé, et non juste la partition.
Hors ligne
#9 Le 26/06/2012, à 18:21
- bastienb
Re : Exploiter l'image bit à bit d'un disque dur
Bonsoir,
bastienb #7 a écrit :Or the whole disk instead of a partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?
Il y a des chances que ce soit le disque complet qui ait été sauvegardé, et non juste la partition.
C'est exactement ça. En fait je voulais travailler avec l'image pour ne pas abîmer le disque. Mais je ne sais pas quoi faire de cette image pour récupérer les données...
Hors ligne
#10 Le 26/06/2012, à 19:05
- pingouinux
Re : Exploiter l'image bit à bit d'un disque dur
Il y a peut-être moyen de faire quelque chose.
Il faudrait connaître la position du début de la partition /dev/sda1 sur le disque /dev/sda, et copier le fichier_image_du_disque à partir de là.
Par exemple, sur le mien, c'est 0x7e00 (32256). Il faudrait faire :
dd if=fichier_image_du_disque of=fichier_image_de_la_partition bs=32256 skip=1
puis refaire le mount :
mount -o loop fichier_image_de_la_partition ~/recup
Ajouté : Pour info, le décalage entre /dev/sdb et /dev/sdb1 sur une de mes clés usb de 8Go est de 0x4000 (16384).
Dernière modification par pingouinux (Le 26/06/2012, à 19:17)
Hors ligne
#11 Le 26/06/2012, à 19:18
- bastienb
Re : Exploiter l'image bit à bit d'un disque dur
J'imagine qu'il doit y avoir une commande bash pour te donner cette position?
Il faut que je refasse une image bit à bit? (Je ne connais dd que pour ça pour le moment). Parce que si c'est le cas j'en ai pour 10h, donc c'est à prévoir ^^.
Au fait, si jamais la manip arrive au bout et que je récupère les données, je ferais un article à ce propos. Parce que ça me paraît quand même extrêmement intéressant comme solution (et puis ça évite de payer des sommes folles pour des pannes logiques!).
Hors ligne
#12 Le 26/06/2012, à 19:29
- pingouinux
Re : Exploiter l'image bit à bit d'un disque dur
Que donne la commande suivante (remplacer éventuellement sda par autre chose) :
sudo fdisk -lu /dev/sda
Hors ligne
#13 Le 26/06/2012, à 19:38
- bastienb
Re : Exploiter l'image bit à bit d'un disque dur
Disk Jessdd: 145.3 GB, 145259724800 bytes
255 têtes, 63 secteurs/piste, 17660 cylindres, total 283710400 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0x73736572
Cela ne ressemble pas à une table de partition.
Vous avez probablement sélectionné le mauvais périphérique.
Périphérique Amorce Début Fin Blocs Id Système
Jessdd1 ? 1920221984 3736432267 908105142 74 Inconnu
Jessdd2 ? 1920298864 3604668815 842184976 70 DiskSecure Multi-Boot
Jessdd3 ? 168624138 168624138 0 72 Inconnu
Jessdd4 2575499264 2575548071 24404 0 Vide
Les entrées de la table de partitions ne sont pas dans l'ordre du disque
Hors ligne
#14 Le 26/06/2012, à 19:47
- bastienb
Re : Exploiter l'image bit à bit d'un disque dur
J'ai remplacé /dev/sda par Jessdd, après m'être positionné dans le dossier où cette image était.
Et pour info, il y a une partition format HPFS dessus (mais je crois pas que ça embête notre ami Tux).
Dernière modification par bastienb (Le 26/06/2012, à 20:04)
Hors ligne
#15 Le 26/06/2012, à 20:00
- pingouinux
Re : Exploiter l'image bit à bit d'un disque dur
Il faut appliquer cette commande au disque d'origine. On pourra travailler ensuite sur l'image qui a déjà été faite.
Hors ligne
#16 Le 26/06/2012, à 20:04
- bastienb
Re : Exploiter l'image bit à bit d'un disque dur
Disk /dev/sdd: 320.1 GB, 320072933376 bytes
255 têtes, 63 secteurs/piste, 38913 cylindres, total 625142448 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0x454c4614
Périphérique Amorce Début Fin Blocs Id Système
/dev/sdd1 63 625137344 312568641 7 HPFS/NTFS/exFAT
Dans la commande que tu m'as donné,
dd if=fichier_image_du_disque of=fichier_image_de_la_partition bs=32256 skip=1
Je ne comprends pas à quoi correspond "fichier_image_de_la_partition", puisque je ne dispose pour le moment que du disque physique (dev/sdd) et de l'image bit à bit de celui-ci "Jessdd".
Dernière modification par bastienb (Le 26/06/2012, à 20:16)
Hors ligne
#17 Le 26/06/2012, à 20:24
- pingouinux
Re : Exploiter l'image bit à bit d'un disque dur
Ça va être un peu long (320Go à copier).
63 : Secteur de début (Secteurs de 512 octets)
625137344 : Secteur de fin
312568641 : Taille en blocs de 1024 octets (count, ci-dessous, est le double de cette valeur)
dd if=fichier_image_du_disque of=fichier_image_de_la_partition bs=512 skip=63 count=625137282
Hors ligne
#18 Le 26/06/2012, à 20:26
- bastienb
Re : Exploiter l'image bit à bit d'un disque dur
Ça va être un peu long (320Go à copier).
63 : Secteur de début (Secteurs de 512 octets)
625137344 : Secteur de fin
312568641 : Taille en blocs de 1024 octets (count, ci-dessous, est le double de cette valeur)dd if=fichier_image_du_disque of=fichier_image_de_la_partition bs=512 skip=63 count=625137282
Je ne vois pas encore très bien le rôle de "fichier_image_du_disque" et de "fichier_image_de_la_partition".
On travaille sur le disque réel ou sur l'image? Désolé, je n'ai pas un très haut niveau en bash... Mais cette manip m'intéresse vraiment beaucoup.
(et merci pour le coup de main!)
Hors ligne
#19 Le 26/06/2012, à 20:33
- pingouinux
Re : Exploiter l'image bit à bit d'un disque dur
fichier_image_du_disque : Image du disque que tu as créée hier
fichier_image_de_la_partition : Image de la partition que ma commande du #17 devrait créer. C'est là-dessus qu'il faudra faire le mount
mount -o loop fichier_image_de_la_partition ~/recup
Hors ligne
#20 Le 26/06/2012, à 20:38
- bastienb
Re : Exploiter l'image bit à bit d'un disque dur
Pour récapituler:
Je créer l'image de la partition correspondant à l'image du disque que j'ai copié bit à bit hier avec cette commande :
dd if=image_creee_hier of=image_de_sa_partition bs=512 skip=63 count=625137282
(du coup if est l'entrée et of la sortie).
Une fois que j'ai cette image, je la monte avec cette commande :
mount -o loop fichier_image_de_la_partition ~/recup
Si jamais il y a plusieurs partitions sur le disque dur (comme ça avait l'air d'être le cas). Ca fonctionnera de la même manière?
Hors ligne
#21 Le 26/06/2012, à 20:51
- pingouinux
Re : Exploiter l'image bit à bit d'un disque dur
@bastienb #20 :
C'est bon. D'après #16, il n'y a qu'une seule partition sur le disque /dev/sdd.
Voir aussi : man dd
Hors ligne
#22 Le 11/12/2012, à 16:02
- bastienb
Re : Exploiter l'image bit à bit d'un disque dur
@bastienb #20 :
C'est bon. D'après #16, il n'y a qu'une seule partition sur le disque /dev/sdd.
Voir aussi : man dd
Je suis vraiment navré, ça se fait pas de planter comme ça... Mais ça me prend bien 14h pour faire l'opération et je n'ai qu'un ordinateur, donc entre les cours et le stage... Enfin voilà, merci infiniment de ton aide et je reprends dès que j'ai des vacances!
Hors ligne
#23 Le 13/01/2013, à 19:17
- bastienb
Re : Exploiter l'image bit à bit d'un disque dur
C'est parfait, merci beaucoup
Hors ligne