Bon le fil original date un petit peu, mais ca peut toujours servir à d'autres, ce genre de petits soucis peu arriver assez facilement ;-)
== Théorie ==
Déjà, un peu de théorie simplifié pour comprendre le pourquoi on peut (ou ne peut pas) récupérer des données. Et puis ca peut toujours être utile pour faire les bons choix.
Un disque dur, c'est une zone de stockage, découpés en bloc (généralement entre 512octets et 4Ko). On peut le remarquer en regardant les propriétés d'un fichier, celui-ci à deux tailles : tailles et taille sur le disque, qui peuvent être différentes : un fichier d'un caractère fait 1 octets, mais occupe 4Ko sur le disque.
Lorsque l'on écrit un gros fichier sur le disque, le système va tenter de trouver des blocs contigus. S'il n'y arrive pas, on va disposer les blocs de facon non contigues (en cherchant à maximiser la taille des blocs). C'est ce que l'on appelle la fragmentation.
Pour retrouver ses petits, le système dispose d'un index qui contient entre autre le nom du fichier et les adresses de début de chaque "bloc de blocs" ainsi que leur taille.
La suppression d'un fichier n'est ni plus ni moins que l'effacement de l'index, les blocs sont toujours la. Par contre, si le fichier était fragmenté, on perd toutes les informations permettant de passer d'un bloc de bloc à un autre.
La récupération des données se base sur deux grands principes :
- un fichier n'est jamais fragmenté (on ne peut pas récupérer les données fragmentées vu que l'on ne sait pas passer d'un bloc à un autre)
- le format de fichier est connu et spécifique (un fichier JPG commence toujours par les octets 0xff 0xd8 0xff 0xe0, que l'on appelle Magic Number).
Le processus est le suivant : on parcours tout le disque, et dès que l'on voit un magic number connu, on part du principe qu'il s'agit d'un fichier de ce type. On va donc tenter de le décoder le fichier en prenant le masque du format de fichier. Ex :
- On détecte le magic number d'un fichier BMP (plus facile pour l'exemple)
- Ce format dit que l'octet 2 à 6 sont réservé à définir la taille de fichier
- On va lire les X octets suivant (correspondant à la taille de fichier) et on stocke tout ca dans un fichier AAAAAAAAA.bmp
Et voila, on a un fichier de récupéré.
Cela peut donc donner beaucoup de faux positifs, et l'on voit que si le fichier n'est pas contigu, on est incapable de le récupérer.
Certains logiciels vont être plus intelligent et tenter de reconstruire l'index et donc reussir à récupérer quelques fichiers fragmentés sur le même principe que précédement.
== Conseils pratique ==
- Quand on supprime par erreur des données, la première étape, une fois que l'on s'en aperçoit, c'est surtout de ne rien faire. Il ne faut surtout pas continuer à utiliser le PC pour d'autre truc que la récupération de données. A chaque fois que l'on va écrire sur le disque, on risque d'écraser des données que l'on souhaitais restaurer.
- Surtout prendre son temps, réfléchir et ne pas paniquer !
- Donc lors de la phase de récupération il faut surtout ne jamais avoir le répertoire de récupération sur le disque que l'on souhaite récupérer.
- Si possible débrancher le disque et le mettre dans un autre PC (via un boitier USB ou autre).
- Toujours utiliser la dernière version du logiciel de récupération
- Si possible, faire une passe par type de fichier recherché => une passe pour retrouver tous les jpg, une passe pour tous les NEF, .... C'est beaucoup plus long, mais on a des chances de récupérer des fichiers qui seraient passé à la trappe sinon.
== Ma facon de faire ==
Bon je décrit vite fait ma facon de faire, car c'est pas forcément la plus user friendly ;-) Mais elle garanti que l'on écrit rien sur le disque
- j'éteinds le PC comme un gros bourrin (débranchement)
- je prends system rescue CD que je mets dans le lecteur CD, ouvert à la main
- je démarre le PC sur ce CD
- je clone le disque dur via dd. La récupération pouvant être intensive pour le disque, je préfère travailler sur un disque neuf pour ne pas en plus perdre mon disque
Et comme cela, je conserve toujours l'original et je peux donc faire des fausses manip'
- j'utilise PhotoRec pour récupérer les données à partir de mon clone
- je bois du café