Techniques avancées de récupération de fichiers de partition NTFS pour les disques endommagés (erreurs IO)?


8

J'ai récemment subi des dommages incroyablement petits mais assez importants sur un disque dur sur un hôte ESXi affectant quelques machines virtuelles. Il y a un fichier que j'aimerais beaucoup récupérer, et bien sûr, il a en quelque sorte été supprimé de ma sauvegarde habituelle. Les copies les plus récentes datent de 6 mois. Il s'avère que j'ai besoin de ça ... oups.

Détails:

1) J'ai utilisé ddrescue (outil AWESOME) dans une image ISO de démarrage Parted Magic pour récupérer 99,98% du lecteur de la machine virtuelle en question. Malheureusement, les erreurs semblent être presque entièrement des écritures de fichiers RÉCENTES ... alors bien sûr, ce sont exactement les secteurs dont j'ai le plus besoin de récupérer.

2) Le lecteur donne des erreurs d'E / S sur les lectures de mauvais secteur, mais il réussit parfois à lire un secteur précédemment mauvais! Ainsi, la récupération est toujours possible. Un peu plus souvent que cela aura une sorte de dysfonctionnement majeur et fera tourner le lecteur vers le bas et vers le haut. Oh, et environ 1/4 de ces retombées ne reviendront pas. (Un cycle d'alimentation difficile est requis, l'arrêt ne fonctionnera pas) Enfin, à peu près chaque mauvaise lecture de secteur est accompagnée d'un joli son de clic audible.

3) Le disque VM important est au format NTFS.

4) Je peux (généralement) monter le volume NTFS endommagé en lecture seule, et je peux (un peu moins souvent) naviguer vers le dossier qui contient le fichier dont j'ai besoin. Cependant, le fichier en question semble toujours donner une erreur d'E / S lorsque je fais un «ls» du dossier. Les autres fichiers du dossier ne donnent pas d'erreur IO.

5) J'ai essayé d'utiliser ntfsinfo / etc ... qui ressemble exactement à ce dont j'ai besoin ... mais cela n'ouvrira pas du tout la partition. (Frustrant, car «monture» le fera généralement)

6) Le fichier est un fichier XLS de l'ère Excel 2003, donc je ne suis pas sûr de pouvoir trouver des chaînes pour rechercher l'image de disque brute. (Peut-être des parties de la version de 6 mois?)

J'aimerais vraiment utiliser quelque chose comme les installations de debugfs. Cependant, à partir des pages de manuel, il semble que les outils ntfs pourraient faire le travail si seulement ils pouvaient être créés pour ouvrir la partition. En particulier, je me demande si les erreurs d'E / S peuvent se trouver uniquement dans les métadonnées du fichier et si l'enregistrement du répertoire peut être restauré suffisamment bien pour copier le contenu du fichier. En dernier recours, quel que soit le contenu partiel du fichier que je puisse récupérer serait formidable.

J'ai déjà écrit des modules de noyau (relativement simples), donc je pourrais compiler un module NTFS spécial avec plus d'informations de débogage activées (ou ajoutées). (Le fichier vaut au moins quelques jours de bricolage pour essayer de récupérer ... en plus j'apprends des trucs sympas dans le processus)

Des pointeurs?

ÉDITER:

Plus d'informations sur les erreurs de lecteur:

Le / var / log / messages montre beaucoup d'erreurs NTFS-f bien sûr ... mais j'ai finalement pris la peine de traduire le message de code de détection non géré que j'obtiens habituellement: clé de détection 0x3, ASC = 0x11, ASCQ = 0x4. (qui semble se traduire par ERREUR DE LECTURE NON RÉCUPÉRÉE - ÉCHEC DE RÉALLOCATION AUTOMATIQUE).

Lorsque le disque tourne, je vois un message "scsi0: * BusLogic BT-958 Initialized". Je ne sais pas si c'est le pilote Linux SCSI, le pilote ESXi ou le lecteur lui-même qui décide de faire tourner le lecteur. S'il s'agissait du pilote Linux, je pourrais peut-être modifier le pilote pour éviter de ralentir. Toute cette opération de sauvetage est rendue beaucoup plus douloureuse par ces ralentissements nécessitant un cycle d'alimentation.

EDIT2:

en utilisant le message de journal "end_request: I / O error, dev sda, sector 7238859" juste après avoir 'ls' le répertoire contenant le fichier en question, j'ai ciblé mon opération ddrescue sur ce secteur. Je prévois actuellement de tenter ma chance et d'écrire ce secteur sur le disque actif si cela réussit. Peut-être que je peux reconstruire lentement mon chemin vers le fichier en question de cette façon. Pourtant, la plupart des secteurs défectueux récupérables sont récupérés en moins de 20 tentatives ... celui-ci est supérieur à 150 jusqu'à présent ... * soupir *

EDIT3:

L'erreur de secteur de «ls» sur le fichier dont j'ai besoin est totalement non coopérative (1000+ essais du jour au lendemain et pas de chance). J'espère que ce ne sont que des métadonnées lorsque vous faites un «ls»? :)

J'ai la plupart d'une copie de ddrescue, mais cela ne monte pas (ou monte sans fichiers). Le lecteur endommagé se monte correctement la plupart du temps ... peut-être que des erreurs d'E / S sur le lecteur endommagé forcent le "montage" à retomber sur le miroir qui fonctionne?

** EDIT4: **

J'ai abandonné pour l'instant, en attendant d'autres suggestions. J'ai retiré le lecteur et reconstruit la boîte. Je garderai le lecteur au cas où quelque chose arriverait.


3
La première chose à faire est de faire une copie du disque, en utilisant ddrescueun autre outil similaire pour copier autant de secteurs que possible. Ne faites aucune récupération au niveau du système de fichiers à partir du disque endommagé, faites-le à partir de la copie.
Gilles 'SO- arrête d'être méchant'

1
@Gilles J'ai mentionné que j'avais utilisé ddrescue. Il y a apparemment des erreurs au mauvais endroit pour monter une copie. On ne sait pas sur quels compensations je dois me concentrer avec ddrescue pour résoudre ce problème ... d'où la question sur quelque chose comme debugfs (ou un ntfsinfo qui peut fonctionner avec une partition au moins aussi bien que le `` montage '' normal). Mon meilleur pari à ce stade est de surveiller / var / log / messages pour les erreurs de secteur lorsque j'accède au mauvais disque dans un montage en lecture seule et j'essaie de les récupérer sur la copie jusqu'à ce qu'il fonctionne.
darron

1
Avez-vous refroidi activement le lecteur au cours de ce processus? Garder le lecteur aussi froid que possible aide considérablement.
Nathan V

Réponses:


4

Quelques notes de mon expérience:

  1. (la cause) Si vous entendez un son inhabituel lors des tentatives d'accès hd et que des problèmes ne se produisent pas (plus ou moins) à des emplacements de disque aléatoires, la cause principale est probablement sur la surface du disque (pas sur l'électronique) - malheureusement , c'est le triste scénario. S'il ne s'agissait que de l'électronique, vous auriez peut-être eu la possibilité de récupérer la plupart ou même la totalité de vos données.
  2. (secteurs défectueux) Si vous ne l'avez pas déjà fait, recherchez sur le Web l'outil de diagnostic / récupération amorçable du fabricant du disque, téléchargez-le, démarrez, exécutez un test approfondi et laissez-le essayer de remapper les secteurs défectueux - c'est le meilleur parmi les méthodes gratuites. Notez que les secteurs défectueux ont tendance à croître - donc même si vous parvenez à attraper un morceau de votre fichier après quelque 2314e tentative de lecture, il est probable que ces tentatives viennent de faire croître les secteurs défectueux à proximité, ce qui diminue efficacement les chances de récupérer d'autres parties du fichier.
  3. (récupération NTFS) Rien ne peut réparer un système de fichiers NTFS ainsi que des outils natifs MS Windows. Si l'image NTFS n'est pas montable (assurez-vous également que vous essayez de monter la partition, pas le disque entier!), Vous pouvez essayer des choses comme testdisksous Linux, mais si celles-ci échouent, Windows chkdiskpeut vous aider. Si Windows est installé sur une machine virtuelle, vous pouvez convertir l'image brute obtenue à partir ddrescued'un format pris en charge par cette machine virtuelle (comme VDIou VMDK), l'ajouter à la machine virtuelle et démarrer Windows en mode ligne de commande pour réparer le système de fichiers. Si vous utilisez VirtualBox, la commande pour convertir une telle image est VBoxManage convertfromraw <filename> <outputfile>facultative avec --format VDI|VMDK|VHDpour obtenir le format de sortie spécifié.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.