Récupérer les données d’une clef USB

lundi 28 juin 2004
par  Vincent Beuselinck
popularité : 1%

Ma clef USB (contenant 384 Mo de données précieuses) a fait un vol plané. Linux ou Windows ont eu la même réaction : partition non formatée. C’est toujours à ce moment là qu’on se rend compte que la derniÚre sauvegarde a plus d’un mois...

Instant idéal pour prendre le temps d’étudier les commandes linux de sauvegarde, copie, exploration et tuttiquanti.

Cet article n’a pas pour ambition de vous donner une méthode infaillible ou efficace pour récupérer les données perdues mais de vous présenter par un exemple vécu quelques outils simples et utiles pour sonder sa clef.

Tout d’abord la première chose à faire est de ne pas jouer les apprentis sorciers : ne pas détruire encore plus les données qui s’y trouveraient encore avec des logiciels spécialisés dont j’ignore les actions et performances.

Nous travaillerons donc sur une copie de la clef USB.

dd

« dd » est un outil de copie.Dans la mandrake il est installé d’office. Sa syntaxe est assez simple :

dd if=fichier_d’entrée of=fichier-de-sortie

Les options les plus courantes sont :
bs=taille_d’un_bloc-secteur
count=nombre_de_blocs_à_lire

Par exemple, la commande suivante crée une copie des 512 premiers octets de la partition 1 du disque 1 sur la première nappe IDE. C’est le "Master Boot Record" (MBR) ou "secteur de démarrage" :

dd if=/dev/hda of=./lesecteurmbr.dd bs=512 count=1

Notre clef étant reconnue comme un périphérique "sda", nous copierons donc sa première partition dans un fichier.
Notre commande sera donc ici :

dd if=/dev/sda1 of=./maclef.dd

Ce fichier maclef.dd fait quasiment 488 Mo, ça tombe bien puisqu’il s’agit presque de la taille de ma clef, donc de la partition unique qui s’y trouve.
Attention, j’ai voulu servir l’option bs de façon très réduite (bs=1) car j’ignorais la taille réelle des secteurs qui s’y trouvaient. Quelle mauvais idée : la copie était d’une lenteur... Finalement après plusieurs essais (512, 2048...), j’ai oté ce paramêtre car cela ne changeait rien sur le fichier résultant.

mc

mc [1] est le couteau suisse du mode console. Il permet entre autres fonctions de naviguer parmi les répertoires, visualiser les fichiers textes, changer les droits, copier, effacer, détruire...

Nous naviguons donc dans la liste des fichiers pour sélectionner maclef.dd. Un appui sur la touche F3 permet d’en visualiser le début et de me rendre compte qu’un octet sur deux est un point. Un appui sur la touche F4 permet de visualiser en mode hexadécimal. Je me rends alors compte qu’un octet sur deux est à zéro.

A force de regarder ces caractères bizarres, j’arrive à repérer N.N.M. . . . précédé de F.T.2 puis r.s. .a.y. .k.y. Un cruciverbiste aurait probablement complété plus vite que moi les lettres manquantes : "NONAME", "FAT32" ainsi que "press any key". A l’aide de la touche F6, je recherche le texte complet et le trouve un peu plus loin. Je venais de redécouvrir que la FAT est inscrite deux fois sur un disque ! La même séquence commence sur la ligne C00 mais au complet. Plus de pointillé.

"C00", Kcalc [2] (et son bouton "base") me transforme cette valeur en nombre décimal : 3072 octets.

Visiblement, seuls les 512 premiers octets de ma clef ont ce syndrôme du pointillé (ce caractère nul, une fois sur deux), je vais donc extraire 512 octets à partir du 3072 et les remettre à la place des 512 premiers.

Encore une fois dd va venir à mon secours. Un "man dd" me donnera les informations nécessaires.
3072 c’est 6 fois 512 octets donc je dois extraire le 7ème bloc d’octets :

dd if=./maclef.dd of=./fatok.dd bs=512 count=1 skip=6

Détail de la commande :

- if (Input File = fichier duquel j’extrais)
- of (Output File = résultat de ma copie)
- bs=512 (BlockSize = nombre d’octets à lire d’un coup)
- count=1 (nombre de "tranches" de 512 octets à lire)
- skip=6 (mais en laissant de côté les 6 premières tranches de 512 octets soit 3072)

Avec mc, je vérifie que j’ai bien récupéré le bloc voulu puis on passe à l’intégration dans le fichier de départ mais cette fois-ci on le positionne au début du fichier :

dd if=./fatok.dd of=./maclef.dd bs=512 count=1 conv=notrunc

L’option supplémentaire conv=notrunc précise à dd de laisser maclef.dd à sa taille d’origine donc de ne pas le réduire à ce qu’on vient d’écrire. En d’autres termes, on écrase les 512 premiers octets mais on laisse intact tout ce qui est derrière. Sans cette option, maclef.dd ne ferait plus que 512 octets.

Arrivé là, j’ai procédé à la copie du fichier sur ma clef et j’ai croisé les doigts pour que ça marche... C’est faisable mais risqué ! Ensuite j’ai trouvé comment j’aurais pu éviter ce risque inconsidéré : mount et loop.

mount

C’est une commande que les mandrakephiles n’utilisent que rarement : les confortables supermount, hotplug et diskdrake se chargement généralement de maîtriser mount à notre place. Cette commande permet de "monter" un périphérique de type bloc, c’est-à-dire de passer d’une lecture bloc par bloc (octet par octet) à une lecture utilisant le système de fichier qui lui est associé (c’est-à-dire la reconnaissance des fichiers, dossiers ou répertoires, débuts et fins de fichiers, attributs...).

J’ai souvent entendu dire que "tout est fichier dans linux" donc pourquoi ne pas utiliser notre fichier maclef.dd comme s’il s’agissait d’une vraie clef USB ?

après quelques tâtonnements, je trouve la formule qui permet à mount de faire de mon fichier, une pseudo clef USB.

D’abord créer un point de montage car mount m’a dit que le point de montage n’existait pas :

mkdir /mnt/mapseudoclef

Ensuite mount me dira que ce n’est pas un périphérique "bloc" et qu’il me faut utiliser l’option -o loop. Vu comme ça c’est pas dur linux ! On essaye, et quand ça ne va pas, on suit la proposition !

mount -t vfat /home/beuz/maclef.dd /mnt/mapseudoclef -o loop

Les options sont :
- t vfat pour signifier que nous sommes en présence d’un système de fichier FAT (iso9660 permettrait ainsi d’explorer le contenu d’une image ISO)
- origine de mon montage (ici mon fichier)
- endroit où le système de fichier est intégré à l’arborescence existante (ici /mnt/mapseudoclef)
- o loop qui permet d’utiliser ce fichier comme un périphérique "bloc"

Plus de message d’erreur, je vais voir avec mc ce qu’il y a dans le répertoire /mnt/mapseudoclef et bingo ! Voilà mes fichiers. Je regarde l’intérieur d’un fichier et tout va bien.

Ensuite il ne restera plus qu’à recopier maclef.dd sur /dev/sda1 ou bien formater la clef et recopier les fichiers avec un gestionnaire de fichiers.


Je vous vois venir : "Moi, ça ne marche pas avec ma clef qui est passée dans la machine à laver !" Oui, bon... Je n’avais pas la prétention de fournir la solution ultime mais simplement de donner quelques pistes en s’appropriant par cette occasion quelques commandes trÚs pratiques de linux.


[1il est installé par défaut avec la mandrake 10 mais pour la 9.2, taper "urpmi mc". Il existe probablement aussi en deb, tar.gz,etc. Plus d’info : http://www.ibiblio.org/mc/

[2calculatrice sous kde mais n’importe quelle calculatrice capable de travailler en base 16 convient


Commentaires

vendredi 3 février 2006 à 14h12 - par  sam

suite à une coupure d’électricité, ma
clef USB n’affiche plus les données qui étaient enrégistées sur elles

dimanche 6 novembre 2005 à 09h40 - par  beuz

POur moi, il n’existe pas de façon simple sous windows donc cherchez quelqu’un sous linux qui pourra essayer de faire ce que j’avais fait. Vous avez une chance sur 10 pour que ça marche.

Plus bas quelqu’un dit qu’il existe des outils de copie sous windows. C’est vrai mais windows ne permet pas le loopback donc pas moyen d’exploiter sans risque la copie.

samedi 5 novembre 2005 à 23h46

comme toi j’ai le meme souci depuis hier et je suis dans la m...je n’arrive plus à lire les fichiers sauvegardés sur ma clef usb.
merci de me communiquer une solution si tu as trouvé ...de façon simple sous xp ou par un logiciel...merci te ta réponse c’est URGENT

vendredi 14 octobre 2005 à 19h53 - par  beuz

J’ai utilisé Linux pour récupérer les données mais la clef, que vous soyez en WinXP ou en Linux, elle est probablement comme la mienne : en FAT32. Donc si elle a été utilisée en winXP, elle peut bien être rétablie par Linux !

Si la question est "Je n’ai que Windows XP" alors là je ne peux que vous conseiller de télécharger une des nombreuses distributions linux liveCD qui fonctionnent sans s’installer sur disque dur (ou encore d’aller voir si l’un des magazines de votre kiosque n’en propose pas une : knoppix, mandrivamove sont les + faciles d’usage...). En utilisant ma méthode vous ne ferez pas pire et tout ce que vous risquez, c’est d’apprécier Linux ;o)

Si par contre, vous voulez absolument faire ça sous Windows, je ne peux pas vous aider plus. Quelqu’un (ici, plus bas) dit qu’on peut faire pareil sous windows... J’ajouterais "sauf si l’antivirus n’est pas d’accord, sauf si explorer.exe veut envoyer un rapport d’incident pile poil au moment délicat, sauf si windows update... etc !"

Mais bon, avec de la rigueur (désactiver l’antivirus, les updates auto, fermer tous les programmes...), on doit pouvoir s’en sortir aussi sous XP.

Logo de villaret
vendredi 14 octobre 2005 à 19h18 - par  villaret

oui ton truc est bien si l’on a linux mais si l’on est sur windows xp comment fait-on pou récupérer des fichier éffacés, et qui ne reconnait plus la clef, mais un simple disque amovible ? Si je ne trouve pas une solution je perds simplement 4 année de travail confidentiel sur une thÚse.

jeudi 6 octobre 2005 à 12h18 - par  sebd

C’est tout à fait faisable sous Windows XP. Il y a beaucoup d’outils gratuits du genre, comme par exemple pour ne pas dépayser les gens une version Windows du célébre dd :

http://uranus.it.swin.edu.au/~jn/linux/rawwrite/dd.htm

vendredi 30 septembre 2005 à 20h45 - par  beuz

1) Je ne crois pas que Windows Xp permette d’aller aussi loin que linux dans ce domaine car il ne donne pas d’accÚs direct mais sert tout le temps d’intermédiaire entre hardware et logiciel. Qu’il soit en version complÚte (xp pro) ou light (version home) n’y change rien.

POur une procédure détaillée, contactez moi plutÎt par email(adresse visible sur nom d’auteur à cÎté du titre.

2) En droit français (mais vous parlez de $ donc je suppose que vous n’êtes pas concerné), vous achetez un droit d’utilisation d’un logiciel, pas un dongle. La perte ou la détérioration de ce dernier n’enlÚve pas votre droit à usage. Pire, ce dongle, en limitant votre droit à une copie de secours de votre logiciel, vous met dans une situation de fragilité dans la continuité de votre activité surtout si le fournisseur rechigne à vous le remplacer. ça pourrait peut-être se plaider devant un TC...

Logo de simone lachance
jeudi 29 septembre 2005 à 05h06 - par  simone lachance

bonjour a vous est ce que cette facon de faire se fait seulement sur linux ? ou window xp pro peut me donner des logiciel capable de copier ma clef usb ? voici mon probleme je me suis procurer un logiciel qui ma cout plus de 5 000 $ et il est proteger par une clef dongle c est a dire que la clef doit etre dans une entree usb pour debarer le logiciel pour pouvoir travailler avec ce logiciel et la commence mes probleme puisque je doit laisser sortir les employer avec mon ordinateur et cette clef usb (dongle) pour aller travailler sur les contracts et ils ont deja perdu 1 fois cette clef que l on a chercher 3 jours ce n etais pas drole jai donc communiquer avec la compagnie qui ma vendue le logiciel et a ce moment il voulais me revendre une clef le prix du logiciel pas besoin de vous dire le bonheur immense que jai eu lorsque l’on a retrouvez notre clef mais je n aimerais pas que ca se reproduise svp aidez moi merci

1=comment copier cette clef usb (dongle)
2=les logiciel necessaire
3=est ce possible sous window xp pro
4=svp une facon de faire tres detailler svp
5=merci infiniment de me repondre merci

Agenda

<<

2018

>>

<<

Janvier

>>

Aujourd’hui

LuMaMeJeVeSaDi
1234567
891011121314
15161718192021
22232425262728
293031    

Annonces

Annuaire LibreNord

Retrouvez l’annuaire de logiciels libres créé par l’association Club Linux Nord-Pas de Calais sur le site suivant http://www.librenord.org