Maison > Tutoriel système > Linux > le corps du texte

Comment récupérer des fichiers supprimés dans le système Linux

王林
Libérer: 2024-01-14 18:48:05
avant
546 Les gens l'ont consulté
Présentation Lorsqu'un utilisateur supprime accidentellement un fichier encore nécessaire, dans la plupart des cas, il n'existe pas de moyen simple de récupérer ou de reconstruire le fichier. Heureusement, il existe des moyens de récupérer des fichiers. Lorsqu'un utilisateur supprime un fichier, le fichier ne disparaît pas, il est simplement masqué pendant un certain temps.

Voici comment cela fonctionne. Dans un système de fichiers, il existe ce qu'on appelle une table d'allocation de fichiers, qui assure le suivi de l'emplacement des fichiers dans les unités de stockage (telles que les disques durs, les cartes MicroSD, les lecteurs flash, etc.). Lorsqu'un fichier est supprimé, le système de fichiers effectuera l'une des deux tâches suivantes dans la table d'allocation de fichiers : marquer l'entrée du fichier dans la table d'allocation de fichiers comme "espace libre" ou supprimer l'entrée du fichier dans la table d'allocation de fichiers, ainsi que l'espace correspondant. est marqué comme espace libre. Désormais, si un nouveau fichier doit être placé sur un emplacement de stockage, le système d'exploitation placera le fichier dans un emplacement marqué comme vide. Une fois le nouveau fichier écrit dans cet espace vide, le fichier supprimé disparaît complètement. Lorsqu'un fichier supprimé doit être récupéré, l'utilisateur ne doit plus opérer sur aucun fichier, car si "l'espace vide" correspondant au fichier est occupé, le fichier ne pourra jamais être récupéré.

怎样在 Linux 系统中恢复被删除文件

Comment fonctionne le logiciel de récupération ?

La plupart des systèmes de fichiers marquent simplement l'espace comme vide (lors de la suppression d'un fichier). Dans ces systèmes de fichiers, le logiciel de récupération examine la table d'allocation de fichiers, puis copie les fichiers supprimés sur une autre unité de stockage. Si le fichier est copié sur d'autres unités de stockage supprimées qui doivent être récupérées, l'utilisateur risque de perdre le fichier supprimé souhaité.

Les systèmes de fichiers effacent rarement les entrées dans la table d'allocation de fichiers. Si le système de fichiers fait cela, le logiciel de récupération récupère les fichiers. Le logiciel de récupération analyse les en-têtes de fichiers dans l'unité de stockage. Tous les fichiers ont une chaîne de codage spéciale située au début du fichier, également appelée nombre magique. Par exemple, le nombre magique d'un fichier de classe JAVA compilé est "CAFEBABE" en hexadécimal. Ainsi, si vous souhaitez récupérer des fichiers de ce type, le logiciel de récupération recherchera « CAFEBABE » et copiera les fichiers sur une autre unité de stockage. Certains logiciels de récupération peuvent rechercher un type de fichier particulier. Si l'utilisateur souhaite récupérer un fichier PDF, le logiciel de récupération recherchera le nombre magique « 25504446 » en hexadécimal, qui se trouve être « %PDF » en codage ASCII. Le logiciel de récupération recherchera tous les nombres magiques et l'utilisateur pourra ensuite choisir le fichier supprimé à récupérer.

Si une partie d'un fichier est écrasée, le fichier entier sera endommagé. Souvent, le fichier peut être récupéré, mais son contenu peut ne plus être d'aucune utilité. Par exemple, récupérer un fichier JPEG corrompu serait inutile car la visionneuse d'images ne peut pas produire une image à partir du fichier corrompu. Par conséquent, même si l’utilisateur possède le fichier, celui-ci sera inutile.

Avant de continuer, certaines informations ci-dessous seront utiles pour guider le logiciel de récupération afin de trouver la bonne unité de stockage. Tous les périphériques sont montés dans le répertoire /dev/. Le nom donné à chaque périphérique par le système d'exploitation (et non le nom donné à chaque partition ou périphérique par l'administrateur) suit certaines règles de dénomination.

Le nom de la deuxième partition du premier disque dur SATA sera sda2. La première lettre du nom fait allusion au type de stockage, qui dans ce cas est SATA, mais la lettre « s » peut également faire référence à SCSI, FireWire ou USB. La deuxième lettre « d » fait référence au disque. La troisième lettre fait référence au numéro de l'appareil, c'est-à-dire que la lettre « a » fait référence au premier SATA et « b » fait référence au second. Le dernier numéro représente la partition. Un nom de périphérique sans numéro de partition représente toutes les partitions de cette configuration. Pour l'exemple ci-dessus, le nom correspondant est sda . La première lettre du nom peut également être « h », qui correspond au disque dur PATA (IDE).

Voici quelques exemples de règles de dénomination. Supposons qu'un utilisateur dispose d'un disque dur SATA (sda) et que cet appareil comporte 4 partitions : sda1, sda2, sda3 et sda4. L'utilisateur supprime la troisième partition, mais le nom de la quatrième partition, sda4, restera inchangé jusqu'à ce que la quatrième partition soit formatée. L'utilisateur a ensuite inséré une carte mémoire USB (sdb) avec une partition - sdb1-, ajouté un disque dur IDE avec une partition - hda1-, puis ajouté un disque dur SCSI - sdc1. L'utilisateur a ensuite retiré la carte mémoire USB (sdb). Désormais, le disque dur SCSI s'appelle toujours sdc, mais si le SCSI est retiré puis inséré, son nom deviendra sdb. Bien qu'il existe d'autres périphériques de stockage, ce lecteur IDE aura toujours un « a » dans son nom car il s'agit du premier lecteur IDE et les noms de périphériques IDE sont comptés séparément des périphériques SCSI, SATA, FireWire et USB.

Récupérer à l'aide de TestDisk :

Chaque logiciel de récupération a ses propres fonctions, fonctionnalités et systèmes de fichiers pris en charge. Voici quelques directives pour utiliser TestDisk pour récupérer des fichiers sur différents systèmes de fichiers.

FAT16, FAT32, exFAT (FAT64), NTFS et ext2/3/4 :

TestDisk est un logiciel gratuit open source fonctionnant sur les systèmes d'exploitation Linux, *BSD, SunOS, Mac OS X, DOS et Windows. TestDisk peut également être installé en tapant sudo apt-get install testdisk. TestDisk possède de nombreuses fonctionnalités, mais cet article se concentrera uniquement sur la récupération de fichiers.

Ouvrez TestDisk depuis le terminal avec les privilèges root en tapant la commande sudo testdisk.

Maintenant, l'application en ligne de commande TestDisk sera exécutée. L'affichage du terminal changera. TestDisk demande à l'utilisateur s'il peut conserver des journaux, cela dépend entièrement de l'utilisateur. Si un utilisateur restaure des fichiers à partir du stockage système, il n'est pas nécessaire de conserver des journaux. Les options disponibles sont Générer, Ajouter et Aucun journal. Si un utilisateur souhaite conserver des journaux, ceux-ci seront conservés dans le répertoire personnel de l'utilisateur.

怎样在 Linux 系统中恢复被删除文件

Dans l'écran suivant, les périphériques de stockage sont répertoriés au format /dev/*. Pour mon système, l'unité de stockage du système est /dev/sda, ce qui signifie que mon unité de stockage est un disque dur SATA (sd) et c'est le premier disque dur (a). La capacité de chaque unité de stockage est indiquée en gigaoctets. Utilisez les touches haut et bas pour sélectionner un périphérique de stockage et cliquez pour entrer.

怎样在 Linux 系统中恢复被删除文件

L'écran suivant affiche une liste de tables de partition (également appelées tables de mappage de partition). Tout comme les fichiers ont des tables de configuration de fichiers, les partitions ont des tables de partition. Une partition est une segmentation sur un périphérique de stockage. Par exemple, dans presque tous les systèmes Linux, il existe au moins deux types de partitions : EXT3/4 et Swap. Chaque table de partition sera brièvement décrite ci-dessous. TestDisk ne prend pas en charge tous les types de tables partitionnées, cette liste n'est donc pas complète.

怎样在 Linux 系统中恢复被删除文件

  • Intel - Ce type de table de partition est très courant dans les systèmes Windows et dans de nombreux systèmes Linux. Il est également souvent appelé table de partition MBR.
  • EFI GPT - Ce type de table de partition est couramment utilisé dans les systèmes Linux. Pour les systèmes Linux, cette table de partition est la plus recommandée car les notions de partitions logiques ou de partitions étendues ne s'appliquent pas aux tables de partition GPT (GUID Partition Table). Cela signifie qu'un utilisateur Linux peut effectuer un démarrage multiple à partir de plusieurs types de systèmes Linux s'il existe un système Linux dans chaque partition. Il existe bien sûr d'autres avantages à utiliser une table de partition GPT, mais ceux-ci dépassent le cadre de cet article.
  • Humax - La carte de partition Humax convient aux appareils produits par la société coréenne Humax.
  • Mac - Apple Partition Map (APM) pour les appareils Apple.
  • Aucun - Certains appareils n'ont pas de table de partition. Par exemple, de nombreuses consoles de jeux Subor n'utilisent pas de carte de partition. Si un utilisateur tente de récupérer des fichiers à partir d'un tel périphérique avec d'autres types de tables de partition, il ne comprendra pas pourquoi TestDisk ne trouve aucun système de fichiers ou fichier.
  • Sun - Table de partition Sun pour les systèmes Sun.
  • Xbox -Xbox est destiné aux périphériques de stockage qui utilisent la Xbox Partition Map.

Si l'utilisateur sélectionne "Xbox", même si son système utilise la table de partition GPT, TestDisk ne pourra trouver aucune partition ou système de fichiers. Si TestDisk devait s'exécuter en fonction des sélections de l'utilisateur, il pourrait se tromper. (L'image ci-dessous montre le résultat lorsque le type de table de partition est incorrect)

怎样在 Linux 系统中恢复被删除文件

Lorsque l'utilisateur a sélectionné l'option correcte pour son appareil, puis sur l'écran suivant, sélectionnez l'option « Avancé ».

怎样在 Linux 系统中恢复被删除文件

Maintenant, l'utilisateur verra une liste de tous les systèmes de fichiers ou partitions de son périphérique de stockage. Si l'utilisateur sélectionne la mauvaise carte de partition, à cette étape, l'utilisateur saura qu'il a fait le mauvais choix. S'il n'y a pas d'erreur, mettez en surbrillance la partition contenant les fichiers supprimés en déplaçant le curseur de texte. Utilisez les touches fléchées gauche et droite pour mettre en surbrillance la liste située en bas du terminal. Ensuite, appuyez sur Entrée pour confirmer.

怎样在 Linux 系统中恢复被删除文件

Un nouvel écran apparaîtra avec une liste de fichiers et de répertoires. Ces noms de fichiers blancs sont les fichiers qui n'ont pas été supprimés, tandis que les noms de fichiers rouges sont les fichiers qui ont été supprimés. La colonne la plus à droite est le nom du fichier, la colonne suivante de droite à gauche est la date de création du fichier et la colonne de gauche est la taille du fichier (en octets/bits), avec "-" à l'extrême gauche. , " Les colonnes "d", "r", "w" et "x" représentent les autorisations du fichier. "d" indique que le fichier est un répertoire et que les autres termes d'autorisation ont peu de pertinence pour cet article. L'élément représenté par "." en haut de la liste représente le répertoire actuel, et l'élément représenté par ".." dans la deuxième ligne représente le répertoire supérieur du répertoire actuel, afin que l'utilisateur puisse accéder au répertoire en sélectionnant le ligne où se trouve le répertoire.

Par exemple, je souhaite accéder au répertoire "Xaiml_Dataset", qui est essentiellement constitué de fichiers supprimés. En appuyant sur la touche "c" du clavier je restaurerai le fichier "computers.xaiml" puis il me sera demandé de choisir un répertoire de destination, bien sûr je devrai placer le fichier dans une autre partition. Maintenant, quand je suis dans mon répertoire personnel, j'appuie sur la touche "c". (Lors de la sélection du répertoire cible) Peu importe le répertoire en surbrillance. Le répertoire actuel est le répertoire cible et un message « Copie terminée » s'affichera en haut de l'écran. Il y aura un répertoire nommé "Xaiml_Dataset" dans mon répertoire personnel, qui contient un fichier Xaiml. Si j'appuie sur "c" sur plusieurs fichiers supprimés, les fichiers seront placés dans de nouveaux dossiers sans me demander le répertoire de destination.

Lorsque ces étapes sont terminées, appuyez plusieurs fois sur la touche « q » jusqu'à ce que vous voyiez l'apparence normale du terminal. Le répertoire "Xaiml_Dataset" n'est accessible que par l'utilisateur root. Pour résoudre ce problème, utilisez les privilèges root pour modifier les autorisations sur le répertoire et ses sous-répertoires. Après cela, les fichiers sont restaurés et l'utilisateur peut y accéder.

ReiserFS spécial :

Pour restaurer un fichier à partir du système de fichiers ReiserFS, vous devez d'abord effectuer une sauvegarde de tous les fichiers de la partition. Parce que cette méthode peut entraîner une perte de fichiers si certaines erreurs se produisent. Exécutez ensuite la commande suivante, où DEVICE fait référence aux appareils nommés sous la forme sda2. Certains fichiers seront placés dans le répertoire perdu + trouvé tandis que d'autres seront enregistrés à l'emplacement où ils ont été initialement supprimés.

reiserfsck --rebuild-tree --scan-whole-partition /dev/DEVICE
Copier après la connexion
Récupérer les fichiers supprimés ouverts par un programme :

Supposons qu'un utilisateur supprime accidentellement un fichier et que le fichier soit ouvert par un programme. Bien que le fichier ait été supprimé du disque dur, le programme utilise une copie du fichier située dans la RAM. Heureusement, nous disposons de deux solutions simples pour récupérer le fichier.

Si ce logiciel dispose d'une fonction de sauvegarde, telle qu'un éditeur de texte, l'utilisateur peut réenregistrer le fichier, afin que l'éditeur de texte puisse écrire le fichier sur le disque dur.

Supposons qu'il y ait un fichier MP3 dans le lecteur de musique, mais que le lecteur de musique ne puisse pas enregistrer le fichier MP3, dans ce cas, la récupération du fichier prendra plus de temps qu'auparavant. Malheureusement, cette approche n’est pas garantie de fonctionner sur tous les systèmes et applications. Tout d’abord, tapez la commande suivante.

lsof -c smplayer | grep mp3
Copier après la connexion

La commande ci-dessus listera tous les fichiers utilisés par smplayer. Cette liste est recherchée pour les mp3 via le tube par la commande grep. La saisie de la commande est similaire à ce qui suit :

smplayer  10037 collier  mp3    169r      8,1  676376  1704294 /usr/bin/smplayer
Copier après la connexion

Maintenant, tapez la commande suivante pour récupérer les fichiers directement à partir de la RAM (/proc/ est mappé à la RAM dans les systèmes Linux) et copiez le fichier dans le dossier sélectionné. Parmi eux, cp fait référence à la commande de copie, le nombre 10037 dans la sortie provient du nombre de processus, le nombre 169 dans la sortie fait référence au descripteur de fichier, "~/Music/" est le répertoire cible et le dernier " music.mp3" est le répertoire souhaité par l'utilisateur. Le nom du fichier récupéré.

cp /proc/10037/fd/169 ~/Music/music.mp3
Copier après la connexion
Suppression réelle :

Pour garantir qu'un fichier ne peut pas être récupéré, il existe une commande pour « effacer » le disque dur. L'effacement d'un disque dur écrit en fait des données dénuées de sens sur le disque dur. Par exemple, de nombreux programmes d'effacement écrivent des zéros, des lettres aléatoires ou des données aléatoires sur le disque dur. Aucun espace n'est occupé ou perdu, la gomme écrase simplement les bits vides. Si l'unité de stockage est pleine de fichiers et qu'il n'y a pas d'espace libre, tous les fichiers précédemment supprimés disparaîtront et ne pourront pas être récupérés.

Le but de l'effacement du disque dur est de garantir que les données privées ne soient pas visibles par les autres. Par exemple, une entreprise peut commander de nouveaux ordinateurs et le directeur général décide de vendre les anciens ordinateurs. Cependant, le nouveau propriétaire de l'ordinateur peut voir certaines informations confidentielles ou relatives aux clients de l'entreprise, telles que les numéros de carte de crédit, les adresses, etc. Heureusement, les techniciens informatiques de l'entreprise ont pu effacer les disques durs avant de vendre les anciens ordinateurs.

Pour installer le programme d'effacement secure-delete, tapez sudo apt-get install secure-delete. Cette commande installera un assembly contenant 4 programmes pour garantir que les fichiers supprimés ne peuvent pas être récupérés.

  • srm - supprime définitivement un fichier. Utilisation : srm -f ./secret_file.txt
  • sfill - Effacer l'espace vide. Utilisation : sfill -f /mount/point/of/partition
  • sswap - Effacer l'espace d'échange. Utilisation : sswap -f /dev/SWAP_DEVICE

Si l'ordinateur efface réellement ces fichiers supprimés, la tâche de suppression prendra plus de temps. Marquer certains espaces comme vides est simple et rapide, mais faire disparaître définitivement les fichiers prend du temps. Par exemple, l'effacement d'une unité de stockage peut prendre plusieurs heures (selon la taille du disque). Dans l’ensemble, le système actuel fonctionne plutôt bien car même si l’utilisateur vide la poubelle, il a encore une autre chance de changer d’avis (ou d’erreur).


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:linuxprobe.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!