Accueil

Infos-news

infos-web

Infos-logiciels

Multimedia

Papier peint

Utilitaires

Liens

Livredor

Courrier

Récupérer un fichier effacé : petits trucs (Réagir sur le sujet)

Vu la multiplication des questions à propos de la récupération des fichiers effacés (que je nommerai Undelete), je me permets de faire un sujet qui explique pourquoi on ne récupère pas tous les fichiers effacés et ce que la défragmentation régulière apporte dans ce contexte-là.

J'ai déjà expliqué certaines choses à différents moments de cette année, ce sujet est donc une espèce de résumé de ce qui a été dit. Je me suis basé sur mon expérience personnelle ainsi que sur les fichiers d'aide de certains logiciels que je mentionnerai à chaque fois. Je ne dirai rien de Norton qui a une fonction Undelete, c'est un produit payant qui marche très bien mais je parle ici uniquement de freeware.

Pour perpétuer une habitude dans mes sujets, quelques vrais/faux.

VRAI

Il n'y a plus de Undelete depuis Win95

Ben vi, sinon, je ne devrais pas faire un sujet à part. Je ne connais pas la raison exacte de la disparition de la fonction Undelete de Win3.1, il est possible que l'apparition de la corbeille a fait penser à MS que tout le monde allait s'en servir et que ça permettait de se passer d'un Undelete. On verra plus loin que ce n'est pas aussi simple. Heureusement, de bonnes âmes ont écrit des programmes qui permettent de pallier à ce manquement.

Je dois sauver mon fichier récupéré sur un autre disque physique ou logique

C'est dû au fait qu'un fichier effacé ne l'est pas réellement, ce sont les secteurs qu'il occupait qui sont rendus disponibles. Si on veut donc récupérer un fichier effacé, il est vivement conseillé de l'écrire sur un autre support, même logique, de manière à ne pas écraser les secteurs du fichier. C'est-à-dire que si vous avez 2 disques (C et D) mais qui sont en réalité un seul disque physique, vous pouvez sauver sur D un fichier effacé sur C, et vice-versa.

C'est maintenant que je dois installer un programme de Undelete

En effet, quand on a effacé un fichier et qu'on n'a pas de programme de Undelete installé, c'est (presque) trop tard. Je vois souvent que des gens demandent comment faire pour récupérer un fichier, c'est qu'ils n'ont pas le programme ad hoc. Dans ce cas, il faut prendre toutes les précautions.
Pour ceux qui surfent pour chercher un programme de Undelete, qui le téléchargent sur le même disque, il y a très peu de chance qu'ils récupèrent leur fichier. Idéalement, il faut avoir déjà le programme de Undelete sous la main. Si ce n'est pas le cas mais que vous avez un 2ème PC avec accès Internet, servez-vous de celui-là pour télécharger le programme de Undelete et mettez-le sur une disquette. Si vous êtes en réseau, vous pourrez peut-être récupérer un fichier effacé sur un autre PC (je n'ai jamais essayé mais à priori, ça devrait marcher). Si vous n'avez qu'un seul PC avec accès à Internet, téléchargez alors le fichier sur une disquette ou un autre disque que celui où vous voulez récupérer le fichier.
Attention lors de l'installation, il pourrait écraser les secteurs que vous voulez justement récupérer. Il existe des programmes de Undelete qui ne nécessitent pas d'installation, je pense en particulier à Restoration qui peut tourner à partir d'une disquette, il n'a besoin que de 400 KB une fois décompressé et il n'y a pas d'installation.

FAUX

On peut toujours récupérer des fichiers effacés, même longtemps après l'effacement.

Chaque seconde qui passe vous éloigne de la récupération de votre fichier.
Bon, j'exagère un peu. Quoique. Quand on voit ce qui tourne sous Windows en permanence, il est clair que des tas de programmes écrivent des bouts de fichiers, même sans que vous ne vous en rendiez compte. Par exemple, un antivirus écrira dans un fichier journal, Word sauve toutes les x minutes votre document si vous avez activé l'option "enregistrer les infos de récupération automatique", etc. Le fichier swap (mémoire virtuelle) peut gonfler ou dégonfler également. Si vous avez XP, il y a des tas d'autres programmes système que je ne connais pas qui écrivent des données à différents moments, pour la bonne (?) gestion de l'OS. Or, le principe de l'écriture d'un secteur sur disque est toujours le même sous Windows, il y a une recherche du premier secteur (cluster en anglais) disponible dans la liste des secteurs libres et il est alloué à un fichier, dès qu'un programme crée un fichier ou écrit dans un fichier et que cette écriture nécessite un agrandissement.
Donc, si vous venez d'effacer un fichier, ne touchez plus à rien, démarrez un des programmes de Undelete et récupérez-le illico car tous les autres programmes tournant à ce moment-là pourraient utiliser les secteurs précédemment occupés par votre fichier. Si Word tourne, ne le fermez pas car il écrira dans des fichiers de travail, il sauvera votre document ouvert et ça risque d'écraser votre autre fichier. Si vous surfez, stoppez immédiatement votre session Internet car IE (ou un autre navigateur) écrit en permanence des fichiers sur disque.
Il arrive néanmoins que certaines personnes récupèrent des fichiers effacés depuis longtemps, d'autres ne récupèrent pas ou partiellement un fichier effacé 10 minutes avant.
Un bémol à mon affirmation : il paraît qu'il existe des moyens techniques (logiciels ?) de récupérer toutes les données écrites sur un disque dur. Mais c'est réservé aux Chinois du FBI (ceux qui regardent les Guignols de l'Info auront compris l'allusion ). Sans déconner, pour ceux qui ont quelque chose à cacher, il existerait un moyen de récupérer les données car ce sont des couches différentes qui sont magnétisées. Si vous voulez réellement qu'on ne retrouve rien sur votre disque dur, aplatissez-le à coups de marteau.
Dans certains cas, on peut récupérer les fichiers de disques formatés, si c'était un formatage rapide.


Si j'ai un programme de Undelete, je n'ai plus besoin de faire des copies de sécurité de mes fichiers importants

Pas du tout. Ces programmes ne sont que des palliatifs pour récupérer un fichier en catastrophe et en aucun cas, ne sont là pour remplacer un backup. Si vous avez des données importantes, voire critiques, sauvez-les sur CD si vous avez un graveur, sur disque Zip, sur un autre disque du réseau, etc. En pratique, il m'arrive souvent de récupérer un fichier pas critique, dont je n'ai pas de copie. Cela arrive par exemple après avoir surfé car certains sites détruisent la page dans le cache IE quand vous quittez la page. Si vous n'avez pas sauvé la page au moment où vous étiez dans le navigateur, c'est une manière de la récupérer.
Il se peut aussi que vous voulez récupérer un fichier de travail, de Word, par exemple. Si vous avez utilisé l'option précitée, Word écrit toutes les x minutes dans des fichiers (.tmp, .asd) de quoi récupérer votre document en cas de problème. Mais si vous voulez par exemple récupérer le fichier avant la modif, vous aurez une petite chance en allant trifouiller dans Windows\Temp. Il arrive que plusieurs personnes partagent un PC et que l'une d'elles supprime accidentellement des fichiers, là aussi ces programmes trouvent leur raison d'être. Certains suppriment des fichiers en passant par la corbeille, d'autres (en utilisant la touche Shift) suppriment directement, sans passer par la corbeille. Voir plus bas ce qu'il faut faire pour les fichiers qui sont passés par la corbeille.

Les programmes de Undelete ne sont pas très efficaces

J'explique plus bas les limitations de ces programmes, inhérentes au fonctionnement de l'écriture des secteurs et de la FAT de Windows, la FAT étant la table d'allocation des fichiers, c'est l'index des fichiers, en somme.
J'ai déjà entendu des gens se plaindre de ce genre de logiciels qui ne récupèrent pas tous les fichiers, ce n'est en rien à cause d'un manquement du programme mais uniquement dû à la manière dont Windows gère les fichiers, c'est-à-dire en les fragmentant lorsqu'ils sont créés et/ou modifiés. D'autres OS comme Linux gèrent les fichiers différement.


Rentrons dans le vif du sujet. D'abord quelques considérations techniques pour comprendre pourquoi on ne récupère pas toujours un fichier effacé, que ce soit partiellement ou complètement.

Il y a quelque chose qui est méconnu et qui est extrêmement important en ce qui concerne la récupération de fichiers effacés. C'est le fait que le fichier effacé soit ou non fragmenté. Imaginez un fichier fragmenté en 3 morceaux, disons 3 KB, 5 KB, 2 KB, ce qui fait un fichier de 10 KB. Fragmenté signifie que les 3 morceaux du fichier ne sont pas contigus sur le disque. En fait, vous ne savez même pas que votre fichier est fragmenté. C'est Windows qui "colle" les morceaux quand vous l'ouvrez, ce qui prend d'ailleurs plus de temps que si le fichier était en un seul bloc. Imaginons que vous l'effacez par mégarde.
Vous démarrez immédiatement un des softs de Undelete et que se passe-t-il, le soft détecte le fichier mais à cause de la fragmentation, il ne retrouve que le premier bloc de 3 KB et pas les autres. Ce n'est pas un bug ou une incohérence mais c'est dû à la perte de l'information sur l'ordre des secteurs (clusters) du fichier, aussi appelé chaînage des clusters.

Voici ce que dit l'auteur de Drive Rescue (DR) dans son help (la traduction n'est pas terrible mais on comprend ce qu'il veut dire) :

Si l'utilisateur efface un fichier (et non pas simplement placé dans le presse-papier de Windows), la première lettre de l'entrée, est remplacée par un caractère spécial (E5 en hexadécimal, 229 en décimal). En plus, les informations sur l'ordre des clusters sont également effacées lors de la suppression. Cela n'a pas d'importance si le fichier n'était pas fragmenté (c'est à dire que les clusters du fichiers ont été enregistrés successivement).
Avec un lecteur fragmenté (cela est fréquent avec l'enregistrement et l'effacement fréquent des données), la chance de retrouver des fichiers est relativement faible. Cependant, si le fichier est visible dans le dossier "Effacés" dans Drive Rescue, vous pouvez essayer de le récupérer, et Drive Rescue s'assurera qu'il n'est pas fragmenté.


Petite précision, quand il dit "les clusters du fichier ont été enregistrés successivement", ça veut dire en clair que le fichier est en un seul bloc.

Si vous avez lu entre les lignes, c'est un plaidoyer pour une défragmentation fréquente, un effet indirect assez méconnu de la défragmentation d'ailleurs. Vous allez me dire "je n'enregistre et n'efface que rarement des fichiers". Et vous pensez donc ne pas être concernés par ce problème de fragmentation.

Faites alors l'expérience suivante : après avoir surfé, lancez une défragmentation, puis, affichez les détails une fois qu'il a commencé à déplacer les fichiers et faites "pause". Puis, allez voir à la fin des secteurs utilisés, ça ressemble (chez moi) à un véritable gruyère malgré une défragmentation quotidienne.

Autre expérience : allez voir avec DR, après avoir surfé, les (4,8 ou 12) répertoires du cache Internet (TIF\Content.IE5). Vous verrez une série de fichiers effacés dont la date et l'heure est très récente et pourtant, ils sont renseignés comme étant en mauvais état. C'est parce que depuis leur effacement (normal car généré par les pages html, java, asp), d'autres fichiers ont été écrits à la place occupée et leur contenu est plus que probablement perdu.

Je vous conseille de lire l'aide en français de Drive Rescue, il y a des schémas bien plus explicites que de longs textes.

Si on a effacé un répertoire, donc, son contenu, on peut récupérer le répertoire mais l'expérience montre que c'est mieux de récupérer les fichiers un par un.

Pourquoi y a-t-il un caractère bizarre au début du nom de mon fichier ?

Les logiciels de Undelete montrent une liste de fichiers effacés et certains d'entre eux ont un caractère spécial au début de leur nom (E5 en hexadécimal, 229 en décimal), c'est Windows qui remplace ce caractère au moment de l'effacement du fichier. A vous de modifier ce caractère par le bon au moment où vous restaurez le fichier.


Cas particulier : récupérer des fichiers effacés de la Corbeille

On pourrait imaginer que c'est simple, détrompez-vous. C'est plus subtil car Windows les renomme quand vous effacez un fichier en l'envoyant dans la corbeille. On peut considérer que c'est un déplacement de fichier de votre répertoire vers le répertoire Recycled (le vrai nom de la corbeille) mais avec un nom différent, de manière à éviter les doublons. L'extension est conservée mais les caractères avant le point sont remplacés par quelque chose du genre D?x, ? étant la lettre du disque et x étant égal à 1, 2, 3, etc.
Par exemple, si on efface un fichier toto.doc et un autre toto.txt du disque C, on aura dans le répertoire Recycled un fichier Dc0.doc et Dc1.txt. Si on récupère avec un soft de Undelete ces fichiers effacés de la corbeille, on se retrouve donc avec des fichiers qui n'ont plus les bons noms. Pour retrouver leur nom, il faut alors passer par un programme du genre de Total Commander (anciennement Windows Commander) qui montre la corbeille comme un vulgaire répertoire. On y trouvera un fichier caché qui s'appelle chez moi info2 sans extension (sous Win98) et en regardant son contenu avec le bloc-notes, on devrait retrouver les noms des fichiers perdus au milieu de caractères spéciaux, les pointeurs dont Windows se sert pour reconstruire les fichiers qu'on restaure de la corbeille.

Comment savoir si un fichier est fragmenté ?

Ce n'est pas simple. Il ne faut pas compter sur MS pour nous le dire. Une précédente version de DR avait une fonction qui montrait le chaînage des clusters et permettait ainsi de voir que des fichiers n'étaient pas en un bloc. Je connais Winhex (éditeur en hexadécimal), il a toute une série de fonctions très intéressantes, c'est un shareware.

Voici ce qu'on trouve dans l'aide :

WinHex recherche les clusters assignés au fichier ou répertoire que vous avez spécifié. Les clusters trouvés sont listés dans une fenêtre à part. Vous pouvez cliquer un élément de la liste pour vous déplacer vers ce numéro de cluster.

WinHex 9.92 for Windows 95/98/Me/NT/2000/XP, existe en français. C'est un outil très puissant mais qui peut être dangereux si on commence à modifier des fichiers directement sur le disque. Il permet de chercher du texte, même dans la partie du disque non-assignée à des fichiers. Vous pouvez ainsi retrouver des secteurs contenant des bouts de fichiers effacés depuis longtemps.

http://www.winhex.com

Que faire avec le fichier récupéré ?

Vous pensez avoir récupéré votre fichier car son nom et sa taille sont OK. Ce n'est pas encore gagné. En effet, certains fichiers semblent avoir la bonne taille mais quand vous l'ouvrez avec l'application liée, il est illisible ou incomplet. C'est la faute à pas de chance. Soit, vous avez attendu trop longtemps avant de le récupérer, soit, il était fragmenté au préalable et le "sauveur" n'a pas pu faire de miracle. Si c'était un fichier vital pour vous, il aurait mieux valu en avoir une copie quelque part.

Quels programmes utiliser ?

Les programmes que je conseille permettent de récupérer un nombre illimité de fichiers effacés. Il existe d'autres logiciels avec une limitation, pas plus de 3 à la fois, je pense à Revival.

Je conseille Drive Rescue. Depuis juillet 2002, il est devenu shareware mais il est encore simple de se procurer la dernière version freeware. Voici des liens :

http://www.familoo.com/familoo/RepFiles/7966277758/Drive_Rescue_1.9.zip (670 KB)

ou ici

http://pcinfonews.free.fr/rescue_disk.zip


Page d'accueil : http://home.arcor.de/christian_grau/rescue/index.html

Pour Windows® 95, 98, ME, NT, 2000 ou XP, avec FAT 12/16/32 (hard disks, disks, SmartmediaT, Compact FlashT, Memory Stick) et NTFS (incomplet). Récupère des disques formatés (formatage rapide).
Il permet de faire des recherches avec des caractères génériques si vous connaissez le nom du fichier effacé mais que vous ignorez dans quel répertoire il se trouvait.

Restoration : freeware

Voici une autre excellent logiciel, très simple à l'usage (un seul bouton pour récupérer le fichier). Il permet (comme DR) de rechercher les fichiers avec des caractères génériques, par exemple, .txt cherchera tous les fichiers .txt effacés. Si votre fichier s'appelle toto.doc, vous pouvez tapez son nom dans le champ réservé qui s'appelle "All or part of the file". Si vous laissez ce champ vide, le logiciel cherchera tous les fichiers effacés.
Ce logiciel a une fonction exactement inverse également, il permet d'effacer "définitivement" tous les secteurs inoccupés, ce qui empêchera de récupérer un fichier effacé. J'ai mis des guillemets car les Chinois du FBI sont capables de retrouver tout ce qui a été écrit sur un disque.

Voici un extrait du readme.txt accompagnant Restoration

[Supported OS] : Windows 95/98/Me/NT/2000/XP

[Supported File System] FAT12/FAT16/FAT32/NTFS Compressed files of NTFS are supported. However, encrypted files of NTFS are not supported so far.

[Supported Devices]
Hard disk
Floppy disk
ZIP drive (I tested by parallel port ZIP drive. I don't know the reason but if the OS is Windows 95/98/Me, it doesn't recognize the disk unless the disk is inside the drive when the PC boots up. However, you can change the disk after boot.)
PD (A user reported that it worked correctly.)
DVD-RAM (A user reported that it worked correctly.)
Smart media (A user reported that it worked correctly.)
Memory stick drive (A user reported that it worked correctly.)



http://hccweb1.bai.ne.jp/~hcj58401/REST2514.EXE (193 KB)


PC File inspector (NTFS) c'est un clone de Drive Rescue

http://www.pcinspector.de/file_recovery/uk/url.htm

Vos commentaires et questions sont les bienvenus.

Merci de m'avoir lu jusqu'au bout !

J'ai trouvé un petit utilitaire pour les cas d'urgence. Il s'appelle TestDisk, il est en licence GNU, c'est donc un logiciel libre, avec les sources incluses.
Il permet de vérifier les partitions et les secteurs boot des disques, il peut récupérer des partitions effacées.

http://www.cgsecurity.org//index.html?testdisk.html

http://www.cgsecurity.org//testdisk-4.4.zip (500 KB)

Voici ce qu'on trouve dans le Readme

TestDisk checks the partition and boot sectors of your disks.
It is very useful in recovering lost partitions.
It works with :
- FAT12
- FAT16
- FAT32
- NTFS (Windows NT/W2K/XP)
- EXT2FS/EXT3FS (Linux)
- Linux Swap (1 & 2)
- IBM Multiboot
- BeFS (BeOS)
- UFS (BSD)
- ReiserFS (1 & 2)

TestDisk runs under:
- Dos, Win9x
- Linux
- FreeBSD

TestDisk is under GNU General Public License.


Je pense que c'est un Français qui l'a écrit, il s'appelle Christophe GRENIER.

Comme vous pouvez le constater, il tourne sur différentes plateformes et même sous Windows (dans une boîte DOS). C'est un outil puissant qui peut être dangereux si on l'utilise à mauvais escient, c'est vraiment pour les cas désespérés de disque qui ne démarre même plus.
L'exécutable pour DOS/Win fait 142 KB et pour tourner en DOS pur, il faut en plus le programme Cwsdpmi.exe (19 KB) car c'est un vrai 32 bits. Ce programme est évidemment fourni avec testdisk. On peut donc le mettre sur une disquette de démarrage et ainsi, pouvoir l'utiliser si Win refuse de se lancer.
Je l'ai testé mais comme je n'ai pas de partition effacée, je n'ai pas pu essayer sa fonction de récupération.
Si quelqu'un est tenté avec un disque de test, merci de le signaler.

-------------------------
Pierre.

-------------------------
Pierre.

 

Accueil

Infos-news

infos-web

Infos-logiciels

Multimedia

Papier peint

Utilitaires

Liens

Livredor

Courrier