{{tag>Xenial Bionic Focal récupérer système disque_dur}}
----
{{ :applications:testdisk:testdisk.ico?60}}
====== Testdisk======
Aussitôt que vous constatez la perte de données, arrêtez d'utiliser le disque dur ou le périphérique de stockage sur lequel a eu lieu la perte. Autrement, vous risquez d'y réécrire par-dessus et de les effacer pour de bon!
Ainsi pour l'installation de **Testdisk** puis la sauvegarde des fichiers récupérés, vous ne devez pas utiliser l'unité de stockage (disque dur, clé USB...) sur laquelle les données ont été perdus. Testdisk étant disponible depuis les dépôt officiels, il n'y a aucun problème à l'installer et l'utiliser depuis une [[:live_cd|session live Ubuntu]] pour ainsi éviter toute écriture des données sur le système.
Avant de commencer à utiliser Testdisk, assurez-vous que votre disque est en bon état physique avec par exemple [[smartmontools]].
**Testdisk** est un outil analysant un disque dur à la recherche de [[:partitions|partitions]] effacées ou endommagées. Il recherche un « index » permettant de retrouver une partition formatée à tort. Ayant retrouvé cet index, il reconstitue le [[systeme_de_fichiers|système de fichiers]].\\
Il est fourni avec [[:Photorec]], un outil permettant d'analyser une partition pour retrouver puis récupérer des fichiers effacés.\\
L'utilisation ensuite de [[:fsck]] peut compléter la récupération après l'utilisation de TestDisk en corrigeant la structure du [[:système de fichiers]] de la partition récupérée.\\
Testdisk est distribué sous [[http://www.gnu.org/licenses/gpl.html|Licence GPLv2]] et fonctionne sous Windows,%% GNU/Linux, Mac OS X, Solaris et BSD.%%
===== Pré-requis =====
Avant d'aller plus loin dans la lecture de ce document, il est impératif de regarder l'état du disque avec cette [[:smartmontools|application]] afin de savoir si c'est bien cet outil qu'il faut utiliser ou un [[:ddrescue|autre]] ou faire appel à un expert en récupération de données.
* Disposer des [[:sudo|droits d'administration]].
* Disposer d'une connexion à Internet configurée et activée.
* Savoir ce qu'est un [[wpfr>disque dur]].
* Savoir exactement où est branché le disque dur sur son ordinateur :
* 1er/2e disque dur SATA ?
* Sur le contrôleur IDE 1 ou 2, en maître ou en esclave ?
* Savoir ce qu'est une partition et ce qu'est le formatage d'un disque dur.
===== Installation =====
==== Dans un ordinateur opérationnel ====
[[:tutoriel:comment_installer_un_paquet|Installer le paquet]] **[[apt>testdisk|testdisk]]** .
==== Dans un support d'installation ====
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe"
sudo apt-get update
sudo apt install testdisk
==== Utilisation de la version Béta ====
La dernière version de **Testdisk** est disponible "prête à l’emploi" depuis le site officiel. Elle ne nécessite aucune installation ni modification de votre système. Elle est utilisable aussi bien depuis un système installé ou un système en [[:live_cd|session live]].
Son lancement s’effectue directement depuis l’exécutable fourni.
- Se rendre sur la [[https://www.cgsecurity.org/wiki/T%C3%A9l%C3%A9charger_TestDisk|page de téléchargement]] du site officiel;
- Télécharger **Testdisk & Photorec** Linux (32 bits ou 64 bits selon votre [[:architecture matérielle]]) dans votre dossier personnel;
- [[:archivage|Extraire l'archive]] ''tar.bz2'' téléchargé.\\ **Testdisk** est directement utilisable en lançant l’exécutable "testdisk_static" situé dans le dossier extrait.
===== Lancement =====
Dans 99% des cas, testdisk sera utilisé pour récupérer des données sur un autre support physique. Prévoyez dès maintenant le montage de ce support afin de le retrouver facilement. Si c'est un support externe, les partitions sont souvent montées automatiquement. Si c'est un disque interne, la partition sera à monter.
Pour identifier les partitions, utilisez cette commande:
lsblk -e2,7,11 -o MOUNTPOINT,SIZE,NAME,FSTYPE,LABEL
Un conseil, créez-y immédiatement un répertoire facilement identifiable.
mkdir /media///RecuperationFaiteParTesdisk
Vous pouvez maintenant lancer le logiciel. Dans un [[:terminal]], saisir la [[:commande_shell|commande]] sudo testdisk
Et si vous utilisez la version du site officiel extraite dans votre dossier personnel :
sudo ./testdisk*/testdisk_static
===== Utilisation pour réparation =====
Ne peut pas s'utiliser pour récupérer/pirater les partitions protégées par chiffrement.
Une description du fonctionnement d'une version plus récente est disponible [[https://www.cgsecurity.org/wiki/TestDisk_Etape_par_Etape|ici]]
En règle générale:
Testdisk peut récupérer les partitions qui ont étés supprimées en réécrivant la table de partition.
Cependant si les partitions supprimées ont déjà été réutilisées, la réécriture va détruire ce qui venait d'être installé.
C'est souvent un très mauvais choix car la récupération ne sera jamais faite à 100% à cause des destructions déjà opérées.
Dans ce dernier contexte, il faut aller jusqu'au **deeper search** et sauver sur un support externe qui __ne doit pas être le support d'installation de UBUNTU__ qui dans 99,99% des cas a été fabriqué en mode **NON**-PERSISTANT et dont la taille est insuffisante. La récupération est donc perdue.
Il est nécessaire d'utiliser un autre support physique.
==== Étape 1 : sélection du disque ====
{{:applications:testdisk1_xenial.png?450}}
Puis avec les flèches haut et bas, on choisit le disque dur sur lequel se trouve la partition formatée à tort.
Attention si vous vous trompez de disque dur vous risquez de perdre des données (cela équivaut à le formater en fait).
==== Étape 2 ====
On choisit l'option « Proceed » en bas avec les flèches « ← » et « → » puis on valide avec « Entrée ».
{{:applications:testdisk1_xenial.png?450}}
==== Étape 3 : choix du type de partition à récupérer ====
On choisit le type de partition. Notez qu'on peut ainsi récupérer différents [[systeme_de_fichiers]] : des disques XBox, Mac ou Sun. Dans la plupart des cas, ce sera Intel donc pour un PC Windows ou GNU/Linux.
{{:applications:testdisk2_xenial.png?450}}
DELETEMESi votre disque dépasse la taille de 2 to, notez que la table de partition sera ** EFI GPT** dans quasiment 100% des cas.
==== Étape 4 : analyse ====
On choisit ensuite « analyse » :
{{tuto_20testdisk_htm_m34fbf52.png|}}
Il nous dit comment est partitionné le disque dur pour le moment. Ici, il y a une grosse partition en FAT32 créée par erreur.
{{tuto_20testdisk_htm_m504776e1.png|}}
==== Étape 5 ====
On choisit donc l'option « proceed » :
{{tuto_20testdisk_htm_36b2c2db.png}}
Il nous dit que la partition actuelle est en bonne santé ; on peut lister les fichiers qu'elle contient et d'autres manipulations, moins conseillées si on ne sait pas ce qu'on fait. On appuie juste sur « Entrée » pour passer a l'étape suivante.
==== Étape 6 : recherche de partition ====
Là on choisit « Search » cela va lancer le scan.
{{tuto_20testdisk_htm_m504776e1.png|}}
Scan lancé.
{{tuto_20testdisk_htm_1bd09c81.png|}}
On laisse mijoter ainsi longtemps… très longtemps ici pour un disque dur de 250 Gio
Mais on constate que, au bout de quelques secondes, il a déjà retrouvé la partition :
{{tuto_20testdisk_htm_5a611058.png|}}
==== Étape 7 ====
Soit on appuie sur « Entrée » pour arrêter la recherche car nous avons reconnu notre partition (inutile d'attendre qu'il analyse tout le disque).
Soit on laisse toute la recherche se faire lorsque le cas est plus complexe
{{tuto_20testdisk_htm_m4b4b19da.png|}}
==== Étape 8 ====
TestDisk liste les partitions effacées qu'il a découvertes.
Ici, une autre partition en FAT32 (sûrement une partition encore plus vieille) et MA partition en NTFS ; je vois même le label (le nom) de mon ancienne partition.
{{tuto_20testdisk_htm_m79e6954e.png}}
Pour récupérer cette partition, il faut appuyer sur les flèches droite et gauche.
En effet, on remarque au début de la ligne un « D » ce qui signifie //Deleted// (effacée) on va changer ça.
On peu choisir soit :
* L = logical
* E = extended
* P = primary
* * = primaire et bootable
Dans mon cas, c'est //primary bootable// à noter que je n'ai le choix que entre « primary »
{{tuto_20testdisk_htm_18d5b64c.png|}}
et « primary bootable »
{{tuto_20testdisk_htm_ea9bfb4.png|}}
==== Étape 9 ====
il semble inutile de jouer ce scénario (*) lorsque l'ordinateur s'est planté pendant une étape de déplacement de partition. La structure partition reste bonne mais les chainages de répertoires sont toujours cassés.//(* Commentaire ajouté 4/6/18 pour problème de compréhension: Je suppose que "jouer ce scenario" veut dire l'action décrite en cette étape 9 avec "Write". Cette action "write" serait alors inadéquate, et on peut passer à étape 10)//
Je mets donc le flag « primary bootable » et j'appuie sur « Entrée » pour valider.
{{tuto_20testdisk_htm_70ce73a8.png}}
Attention, en choisissant « write », il réécrit l'index du disque dur donc tout ce qu'il y a actuellement sur le disque dur sera effacé par contre on pourra récupérer les données de l'ancienne partition (si on n'a pas réécrit dessus).
Puis on redémarre l'ordinateur et c'est tout bon.
==== Étape 10 ====
La table de partition n'est pas réécrite car trop détruite.
Il est alors nécessaire de faire le **deeper search** et de sauvegarder les données qui vont être récupérées sur un autre support physique.
{{application:application:testdisk.ds1.png}}
et de laisser tourner car cela prend beaucoup de temps. On peut regarder l'écran évoluer.
{{application:application:testdisk.ds2.png}}
Au final on a une liste qui peut être très impressionnante ou pas.
{{application:testdisk.ds7.png}}
==== Étape 11 ====
Il faut maintenant aller scanner les partitions à la recherche des données perdues.
Le fait de connaître préventivement l'implantation ancienne peut éviter de rechercher dans certaines partitions. Sinon elles sont toutes à faire dans l'ordre qu'on le sent. Il faut se positionner sur la ligne choisie et frapper le caractère **P** qui permet de visualiser le contenu.
{{application:testdisk.ds8.png}}
Dans la grille ci-dessus, Les répertoires et fichiers logiquement supprimés ont été masquées (commande** h**)
sinon ils seraient affichés en rouge.
On s'est baladé dans les répertoires en faisant un return sur les lignes tentantes. On peut aussi descendre dans la hiérarchie. (Ici, on est descendu dans un répertoire.) On remonte d'un cran par la commande ** q**. En conclusion: On a décidé de récupérer trois répertoires qui ont été sélectionnés en appuyant sur le caractère **:** Ils sont maintenant affichés en vert.
C'est le moment de les copier sur un autre support par la commande **C**
==== Étape 12 ====
C'est le moment de bien naviguer pour sélectionner le répertoire de réception de ce qui va être copié. Une explication plus détaillée est disponible dans cette discussion https://forum.ubuntu-fr.org/viewtopic.php?pid=21702798#p21702798
Ne pas oublier qu'il ne doit pas être sur le même disque et qu'il doit être de taille adéquate par rapport à ce qui a été sélectionné.
Au besoin, diminuer la sélection en prenant seulement un répertoire. Puis lorsque la copie sera faite, sélectionner les autres répertoires avec un autre support physique pour la sortie.
{{application:testdisk.ds9.png}}
il ne reste plus qu'à sélectionner le répertoire ** ..** et lancer la copie par la commande **C**
Puis regarder l'action se faire.
{{application:testdisk.ds10.png}}
==== Étape 13 ====
Pour contrôler que les données sont bien récupérées dans le support prévu, le plus simple est de rebooter et de remonter ce support et regarder le contenu. Si rien, il sera possible de recommencer après avoir appliqué la bonne procédure
==== Quelques exemples. ====
https://forum.ubuntu-fr.org/viewtopic.php?pid=21830722#p21830722
===== Utilisations diverses =====
==== Réaliser l’image Disque bit par bit ====
Lancer une récupération de fichiers sur un disque dur défectueux, ce n’est pas le pied. D'abord parce que ce n'est pas fiable, ça plante tout le temps et ensuite parce que cela risque d'endommager encore plus le disque dur. **Cette copie sera un clone identique** du disque, cela veut dire que vous pourrez récupérer dessus tous les fichiers même ceux qui ont été effacés par inadvertance.
* Lire ici la procedure: [[https://korben.info/realiser-limage-dun-disque-dur-testdisk.html]]
Jusqu'à preuve du contraire, lorsque le disque est défaillant, l'outil de duplication à privilégier est ddrescue.
==== Restaurer la structure de boot de la partition windows ====
[[https://forum.ubuntu-fr.org/viewtopic.php?pid=8178311#p8178311|astuce de YannUbuntu]]
* sélectionner le disque où se trouve la partition à réparer,
* [Proceed],
* choisir le type de partition (généralement [Intel]),
* [Advanced],
* sélectionner la partition à réparer avec [Boot], ça va afficher quelque chose comme ceci:
Boot sector
Status: Bad
Backup boot sector
Status: OK
Sectors are not identical.
A valid NTFS Boot sector must be present in order to access
any data; even if the partition is not bootable.
[ List ] [Backup BS] [Rebuild BS] [ Dump ]
* Vérifier que vous avez bien "Status ok" en-dessous de "Backup boot sector"
* enfin sélectionnez [Backup BS].
==== Création d'un MBR pour booter windows. ====
- Faire les étapes 1, 2, 3 et 4 du chapitre 5. Mais à l'étape 4 il faut choisir "**MBR Code**" au lieu de "**analyse**".
- Accepter l'écriture du MBR dans le premier secteur. Puis confirmer l'écrasement.
- Lancer Gparted afin de s'assurer que le flag de boot est bien mis sur la partition windows.
==== Récupérer le contenu d'une partition chiffrée luks ====
Il est possible de lancer testdisk pour récupérer les données d'une partition chiffrée LUKS si cette partition peut être préventivement montée. Sinon, on récupère seulement la structure de boot. Tentative réalisée en version 22.10.
Voici l'écran montrant ce qui est récupérable. Uniquement la structure de boot! (photorec ne fera pas mieux)
======================================================================
TestDisk 7.1, Data Recovery Utility, July 2019
Christophe GRENIER
https://www.cgsecurity.org
Linux filesys. data 1054720 4554751 3500032
Directory /
>drwxr-xr-x 0 0 4096 2-Dec-2022 16:28 .
drwxr-xr-x 0 0 4096 2-Dec-2022 16:28 ..
drwx------ 0 0 16384 2-Dec-2022 15:52 lost+found
drwxr-xr-x 0 0 4096 2-Dec-2022 15:55 efi
drwxr-xr-x 0 0 4096 2-Dec-2022 16:29 grub
-rw------- 0 0 6250707 12-Jul-2022 10:51 System.map-5.15.0-43-generic
-rw-r--r-- 0 0 261694 12-Jul-2022 10:51 config-5.15.0-43-generic
lrwxrwxrwx 0 0 28 2-Dec-2022 16:26 initrd.img
lrwxrwxrwx 0 0 28 2-Dec-2022 15:55 initrd.img.old
-rw-r--r-- 0 0 182800 6-Feb-2022 21:35 memtest86+.bin
-rw-r--r-- 0 0 184476 6-Feb-2022 21:35 memtest86+.elf
-rw-r--r-- 0 0 184980 6-Feb-2022 21:35 memtest86+_multiboot.bin
lrwxrwxrwx 0 0 25 2-Dec-2022 16:26 vmlinuz
lrwxrwxrwx 0 0 25 2-Dec-2022 16:26 vmlinuz.old
Next
Use Right to change directory, h to hide deleted files
=============================================================
===== Désinstallation =====
Pour supprimer cette application, il suffit de [[:tutoriel:comment_supprimer_un_paquet|supprimer son paquet]]. La configuration de l'application sera conservée ou supprimée selon la méthode de désinstallation que vous choisirez.\\
Pour supprimer la version du site officiel extraite dans votre dossier personnel, il suffit de supprimer le dossier extrait.
===== Voir aussi =====
* **(fr)** [[probleme_de_disque|Problème de disque / partition]]
* **(fr)** [[https://www.cgsecurity.org/wiki/TestDisk_FR|Site officiel]]
* **(fr, en)** [[https://www.cgsecurity.org/wiki/TestDisk_Etape_par_Etape|TestDisk, étape par étape]] : mode d'emploi simple et détaillé sur le site officiel.
* **(fr)** [[https://www.benji1000.net/recuperer-les-donnees-dun-disque-dur-non-reconnu/|Récupérer les données d’un disque-dur non reconnu]] : tutoriel étape par étape sur le blog de benji1000.
* Un outil pour conversion [[http://cars.car.coocan.jp/misc/chs2lba.html|LBA/CHS]]
* **(fr)** Testdisk ne sait pas reconstituer [[https://forum.ubuntu-fr.org/viewtopic.php?pid=21903804#p21903804|une partition chiffrée]]
----
//Contributeurs : [[utilisateurs:toth_o]].//