Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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

Haleth a écrit :

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,

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.

Hors ligne

#9 Le 26/06/2012, à 18:21

bastienb

Re : Exploiter l'image bit à bit d'un disque dur

pingouinux a écrit :

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

pingouinux a écrit :

Ç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

pingouinux a écrit :

@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 smile

Hors ligne