{{tag>Xenial Bionic Focal récupérer système disque_dur}}
{{ :applications:testdisk:testdisk.ico?60}}
====== TestDisk ======
**[[https://www.cgsecurity.org/wiki/TestDisk_FR|TestDisk]]** permet d'analyser les supports de stockage ([[:disque dur]], [[:SSD]], clé USB...) à la recherche de [[: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 [[: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.
Aussitôt que vous constatez la perte de données, arrêtez d'utiliser le [[:disque dur]], [[:SSD]] ou autre support de stockage sur lequel a eu lieu la perte. Vous risqueriez de réécrire par-dessus des données récupérables et de les effacer pour de bon!
Vous ne devez pas utiliser le support de stockage sur laquelle les données ont été perdues, y compris pour l'utilisation de **TestDisk** ou la sauvegarde des fichiers récupérés !\\
**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]] afin d'éviter toute écriture des données sur le support concerné, en particulier si il contient une partition système ou montée automatiquement.
On peut compléter la récupération de **TestDisk** en corrigeant la structure du [[:système de fichiers]] avec **[[:fsck]]**.
En complément de **TestDisk**, vous pouvez vous assurer que le support est en bon état physique avec [[:smartmontools]].
**TestDisk** est distribué sous [[http://www.gnu.org/licenses/gpl.html|Licence GPLv2]] et fonctionne sous Windows,%% GNU/Linux, macOS, Solaris et BSD.%%
===== Pré-requis =====
Avant d'aller plus loin dans la lecture de ce document, n'hésitez-pas à vous assurer que le support est en bon état physique grâce à **[[:smartmontools]]**. Dans le cas contraire d'autres outils seront probablement plus appropriés, par exemple **[[:ddrescue]]**.
* Disposer des [[:permissions administrateur]].
* Savoir ce qu'est un [[:système de fichiers]], une [[:partitions|partition]], et connaître leurs [[:partitions#regle_de_denomination|règles de dénomination]] sous Linux.
===== Installation =====
Il existe plusieurs méthodes, //au choix//, pour installer **TestDisk** sur Ubuntu :
* la plus simple est de l'installer depuis les [[#dépôts officiels APT]] d'Ubuntu
* des [[#binaires isolés]] sont aussi proposés sur son site officiel.
==== Dépôts officiels APT ====
**TestDisk** est disponible dans les [[:depots#dépôts officiels]] [[:APT]] d'Ubuntu.
Pour obtenir cette application il suffit donc d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] ''[[apt>testdisk]]''.
Sur un support live USB il peut être nécessaire d'ajouter le dépôt //[[:depots#sections_universe_et_multiverse_maintenues_par_les_motu|universe]]//.
==== Binaires isolés ====
**TestDisk** est aussi distribué par ses développeurs pour Linux sur son [[https://www.cgsecurity.org/wiki/T%C3%A9l%C3%A9charger_TestDisk|site officiel]].
Pour l'utiliser de cette manière (sans l'installer) on peut donc :
- Télécharger le fichier //Linux x86_64// de la version de //TestDisk & PhotoRec// désirée (on recommande généralement la dernière version stable - donc pas //bêta//).
- [[:archivage#archiver_et_extraire_une_archive|Extraire l'archive]] ''tar.bz2'' téléchargée.
- **Testdisk** est directement utilisable en lançant l'exécutable ''testdisk_static'' situé dans le répertoire 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_shell|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]], saisissez la [[:commande_shell|commande]] :sudo testdisk
Puis appuyez sur la touche ''Entrée ↵'' pour accepter la création d’un fichier de log qui est proposée par la première grille affichée.
Et si vous utilisez la version du site officiel extraite dans votre dossier personnel :
sudo ./testdisk*/testdisk_static
===== Utilisation pour réparation =====
On ne peut techniquement pas utiliser **TestDisk** pour récupérer ni forcer les partitions protégées par chiffrement.
Une description du fonctionnement d'une version plus récente est disponible sur la [[https://www.cgsecurity.org/wiki/TestDisk_Etape_par_Etape|documentation officielle]].
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.
On peut aller jusqu'au **deeper search** et sauver ce qu'on trouve sur un support de stockage tiers.
* Celui-ci ne doit évidemment pas être le support à analyser, et d'une manière générale il ne faut surtout pas écrire sur un stockage dont on cherche à récupérer les données : lorsqu'on réécrit dessus, les données sont définitivement détruites !
* Celui-ci ne doit pas non plus être la clé //live USB// (si c'est ce qu'on utilise), qui ne persiste pas les données et dont la taille serait insuffisante.
==== 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 stockage vous risquez de perdre des données (cela équivaut à le formater) !
On choisit si besoin l'action //Proceed// en bas avec les flèches ''←'' et ''→'' (elle est sélectionnée par défaut) puis on valide avec ''Entrée ↵''.
{{:applications:testdisk1_xenial.png?450}}
==== Choix du type de partition à récupérer ====
Sur l'écran suivant, on détermine la [[:partitions#la_table_des_partitionsun_schema_des_partitions_d_un_disque|table de partition]] (qu'on suppose avoir été utilisée). Notez qu'on peut ainsi récupérer différents [[:système de fichiers|systèmes de fichiers]], dont ceux de supports Xbox, macOS ou Solaris.\\
Les tables de partitions utilisées sur PC sont //Intel// (aussi appelée [[wpfr>MBR ou MS-DOS]]), surtout utilisée avec l'ancien matériel, et désormais on utilise le plus souvent //EFI GPT// (aussi appelée [[wpfr>GUID Partition Table|GUID]]).
{{:applications:testdisk2_xenial.png?450}}
Si vous ne savez quelle table de partition a été utilisée pour votre support, essayez en premier //EFI GPT//, puis //Intel// si ce premier essai n'est pas concluant !
==== Analyse ====
On laisse ensuite //Analyse// sélectionné :
{{:tuto_20testdisk_htm_m34fbf52.png}}
**TestDisk** présente sur l'écran suivant le partitionnement actuel du support.
On peut ensuite lancer //Quick Search// (flèches du clavier ''←'' ''→'' si nécessaire puis touche ''Entrée ↵'').
Cette opération prend moins d'une seconde.
==== Choix des partitions ====
On est invité sur l'écran suivant à sélectionner des partitions parmi celles détectées par cette recherche rapide :\\
on sélectionne ou désélectionne les partitions grâce aux touches flèches ''↑'' ''↓'' et à la barre d'espace ''␣''.
Les partitions sélectionnées sont surlignées en vert.
Une fois les partitions choisies, ont appuies sur ''Entrée ↵''.
==== Action sur partitions ====
Sur l'écran suivant on a le choix entre
* //Write// qui permet de simplement //[[#écriture|écrire]]// les partitions retrouvées,
* ou //Deeper search// (//[[#recherche approfondie]]//), à utiliser si on n'est pas satisfait des partitions retrouvées.
==== Écriture ====
{{:tuto_20testdisk_htm_70ce73a8.png}}
Attention, en choisissant //write//, **TestDisk** réécrit l'index du support.
On peut alors redémarrer l'ordinateur.
==== Recherche approfondie ====
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}}
==== Types de partition ====
TestDisk liste les [[:partitions]] effacées qu'il a découvertes.
Ici, une autre partition en [[:systeme de fichiers#FAT32]] (sûrement une partition encore plus ancienne) et la partition en [[:systeme de fichiers#NTFS]] ; on voit même le nom (//label//) de l'ancienne partition.
{{:tuto_20testdisk_htm_m79e6954e.png}}
Pour récupérer cette partition, il faut appuyer sur les flèches ''←'' et ''→''.\\
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 ce cas, c'est //primary bootable// à noter que le choix n'est donné que entre //primary// :
{{tuto_20testdisk_htm_18d5b64c.png}}
et //primary bootable// :
{{tuto_20testdisk_htm_ea9bfb4.png}}
==== Recherche approfondie ====
Lorsque la table de partition n'est pas réécrite car trop détruite par exemple, il peut être nécessaire de lancer une recherche approfondie (**//deeper search//**), toujours en sauvegardant les données récupérées sur un autre support physique.
{{:application:application:testdisk.ds1.png}}
Laisser tourner car cela prend beaucoup de temps.
{{:application:application:testdisk.ds2.png}}
Cette recherche retourne une liste :
{{:application:testdisk.ds7.png}}
==== Choix des données à récupérer ====
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 presser la touche ''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 (touche ''H'') sinon ils seraient affichés en rouge.
On navigue dans les répertoires grâce aux touches flèches ''↑'' ''↓'' et en pressant la touche ''Entrée ↵'' sur les répertoires à ouvrir. On peut aussi descendre dans la hiérarchie. (Ici, on est descendu dans un répertoire.) On remonte d'un cran par la touche ''Q''. On décide ici 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 en pressant ''Maj''+''C''.
==== Choix de la destination ====
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 sur le forum dans [[https://forum.ubuntu-fr.org/viewtopic.php?pid=21702798#p21702798|cette discussion]].
Ne pas oublier que la copie des données ne doit pas se faire sur le même support et que celui-ci 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 à destination d'un autre support.
{{:application:testdisk.ds9.png}}
il ne reste plus qu'à sélectionner le répertoire ''..'', lancer la copie avec la touche ''C'' puis patienter.
{{:application:testdisk.ds10.png}}
Une fois l'opération terminée on peut vérifier l'intégrité des données récupérées sur le support de destination.
==== Quelques exemples ====
sur le forum : [[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 support 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 matériel.
Lorsque le support subit une défaillance matériel, l'outil de récupération à 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 ====
- Suivre les premières étapes du chapitre //[[#Utilisation pour réparation]]// :
- //[[#Sélection du disque]]//
- //[[#Choix du type de partition à récupérer]]//
- à l'étape suivante //[[#Analyse]]//, choisir //MBR Code// au lieu de //analyse//.
- Accepter l'écriture du **[[:partitions#la_table_des_partitionsun_schema_des_partitions_d_un_disque|MBR]]** dans le premier secteur, puis confirmer l'écrasement.
- Lancer éventuellement **[[:GParted]]** afin de s'assurer que le drapeau (//flag//) de démarrage (//boot//) est bien positionné sur la partition désirée.
==== 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//.
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 [[:deb#desinstaller_un_paquet_deb|supprimer son paquet]]. La configuration de l'application sera conservée ou supprimée selon la méthode de désinstallation que vous choisirez.
Ou supprimer simplement le répertoire contenant les [[#binaires isolés]] si c'est la méthode que vous avez choisie.
===== Voir aussi =====
* [[https://www.cgsecurity.org/wiki/TestDisk_FR|Site officiel]]
* [[https://github.com/cgsecurity/testdisk|GitHub]]
* [[:probleme_de_disque|Problème de disque / partition]]
* [[https://www.cgsecurity.org/wiki/TestDisk_Etape_par_Etape|TestDisk, étape par étape]] : mode d'emploi simple et détaillé sur le site officiel.
* [[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]]
==== sur le forum ====
* //[[https://forum.ubuntu-fr.org/viewtopic.php?pid=21903804#p21903804|Testdisk ne sait pas reconstituer une partition chiffrée]]//
* //[[https://forum.ubuntu-fr.org/viewtopic.php?pid=22858524|Récupération d'une table de partition détruite accidentellement]]//
----
//Contributeurs : [[:utilisateurs:toth_o]], [[:utilisateurs:krodelabestiole]].//