Gestion des erreurs de disque chkdsk étape 2 : arrête chkdsk sur erreur
Bonjour,
à la suite de plusieurs BSOD il peut arriver qu'un disque dur comporte des erreurs. C'est le rôle CHKDSK d'y mettre bon ordre.
Dans le cas que je rencontre cela ne marche pas compte tenu de la nature de l'erreur détectée au cours de la phase 2 :
Étape*2*: Examen de la liaison des noms de fichiers...
3828 enregistrements d’analyse traités.
Erreur lecture disquec000000e
Correction des erreurs dans l’index $I30 du fichier 5144A.
CHKDSK a découvert de l’espace libre marqué comme étant alloué dans la bitmap de l’index $I30 pour le fichier 5144A.
Tri de l’index $I30 du fichier 5144A.
À ce stade :
- CHKDSK s'arrête avec un code erreur
- le disque dur est déconnecté
Ceci m'amène à poser plusieurs questions (en effet malgré une expérience je n'ai jamais rencontré le cas) :
- comment trouver la correspondance entre les numéros d'index et numéro de fichiers donnés en code hexa et les noms de fichiers « utilisateur » ?
- existe-t-il un outil qui permette de détecter et de lister toutes les erreurs du type ? (avec noms de fichiers en clair ?)
- existe-t-il ou plutôt quels outils permettent une récupération automatique de ce qui est valide et établisse une liste des fichiers qui n'ont pas pu être restaurés. Ceci afin d'en faire la restauration manuelle (à partir de backup, en réinitialisant des applications, ou en supprimant la totalité d'un répertoire qui n'avait qu'une vocation temporaire...) ?
Ma stratégie de résolution manuelle
- établir la liste des fichiers contenant les erreurs (nota : CHKDSK trouve la première erreur, mais à ce stade cela provoque la déconnexion du disque et donc le crash de CHKDSK). Si le nombre de fichiers concerné est un temps soit peu important, même sans dommage majeur pour l'intégrité globale des données, la nécessité d'un reboot à froid et la ré-exécution de CHKDSK pour traiter chaque fichier jusqu'au stade de le rencontrer et générer l'erreur, produit une réparation de durée totalement indéterminée.
- Supprimer les fichiers ou l'ensemble de fichiers concernés (y compris les fichiers liés)
- Restaurer les données utiles après une sauvegarde
Nota : je n'ai détecté le problème que par le plantage d'une sauvegarde incluant un fichier endommagé et j'avais évidemment précédemment effectué des sauvegardes différentielles sans incident. Donc je n'ai pas d'idée sur la date d'origine des erreurs sachant que s'agissant de données pour une grande part cumulatives je ne fais qu'assez rarement une sauvegarde générale.
En attendant la réparation évidemment il n'est pas question d'utiliser le disque dont les plantages ne peuvent que développer de nouvelles anomalies de manière exponentielle.
La solution de sécurité est peut-être une duplication de disque en miroir, parce que après la première erreur rencontrée j'ai tenté une copie secteur par secteur qui a produit une erreur fatale à la lecture. C'est évidemment la solution de sécurité mais je ne l'ai jamais pratiqué et ne crois pas avoir les outils nécessaires.
Quel sont donc les processus et les outils adaptés pour remettre en état ce disque qui comprend 3 partitions NTFS et un total de 1,5 To de données ? Dont la panne signifie pour moi un arrêt total de la machine et donc du travail en cours.
Cordialement
Trebly
La cause, les problèmes liés, les outils de prévention et de traitement.
Bonjour,
Désolé de ne pas avoir réagi plus tôt, je ne suis pas encore totalement sorti de ce qui était un disque en train de lâcher.
Si vous vous l'erreur que je rapporte est générée par un défaut d'écriture sur le disque qui va être vu lors d'une analyse par le logiciel conçu par le constructeur (ex : Seatools for Windows)
Lorsque j'ai fait l'analyse il y avait au total environ 2000 erreurs sur l'ensemble.
Lorsque CHKDSK rencontre la première erreur, CHKDSK rapporte :
Citation:
Erreur lecture disquec000000e
Correction des erreurs dans l’index $I30 du fichier 5144A.
CHKDSK a découvert de l’espace libre marqué comme étant alloué dans la bitmap de l’index $I30 pour le fichier 5144A.
Tri de l’index $I30 du fichier 5144A.
Mais comme CHKDSK ne s'arrête pas (peut être retente la lecture) le disque se déconnecte provoquant un crash de chkdsk tentant de lire une unité qui n'existe plus (adresse disparue).
Le test de disque (en l'occurrence Seagate) détecte un disque défectueux.
Dans la pratique si l'on ne lit pas un fichier correspondant à l'erreur (lit et voit un espace vide alors qu'il s'agit d'une adresse normalement écrite) bien entendu aucun incident de ce produit.
C'est en faisant tourner soit CHKDSK, soit un utilitaire de test de disque (Seatools for Windows), soit enfin un logiciel de sauvegarde que l'erreur apparaîtra.
Je n'ai pas vu le problème parce que le logiciel de sauvegarde que j'utilise indique bien une erreur mais sans en donner du tout la nature (De plus le fichier backup généré donne un résultat valide, on pense donc plus à une erreur de fin de traitement comme par exemple un problème de transmission par mail du résultat - transmission qui permet un suivi des processus de sauvegarde - qui je savais être temporairement si défectueux -> sous estimation de l'alerte).
Le problème fondamental qui m'a coûté très cher est donc l'absence d'information remontant du système sur des défaillances de disque
Quand je l'ai constaté il était trop tard. Il était impossible d'effectuer une sauvegarde (exécutée mais se terminant en erreur). La seule chose que j'ai pu faire est une copie répertoire par répertoire qui lorsqu'elle rencontre une erreur signalée par "device not found" nécessite de rebooter la machine (donc pour tout explorer près de 2000 reboot... pour tester 1.6To de données) et trouver les erreur, le tout sur un disque en train de se dégrader...
J'ai donc cherché un utilitaire capable, puisque le répertoire est, lui, intact, de trouver quel fichiers (data ou système) correspondent aux erreurs répertoriées par une analyse de disque.
Une fois trouvé, il deviendrait alors possible de sauvegarder tous les autres et d'avoir la liste de ceux qui sont perdus.
En reprenant cette liste des fichiers perdus on peut trouver des fichiers existants dans des sauvegarde des copies etc. Malheureusement je n'ai pas trouvé un tel utilitaire
J'ai donc gardé le disque (3 partitions affectées) dans son état. Et je suis reparti de la dernière sauvegarde que mon outil de sauvegarde a été capable de restaurer puis j'ai ajouté les copies réussies de répertoires contenant des données essentielles récentes. En effet des sauvegardes marquées "successful" se sont avérés impossibles à restaurer (après plusieurs dizaines d'heures le logiciel semble tourner en rond, actif mais ne marquant aucune progression d'avancement - le temps restant à passer augmentant autant que le temps passé depuis le dernier contrôle). Après donc 8 mois passés je suis dans la phase de transmettre les données de sauvegarde à l'éditeur concepteur du logiciel pour qu'il tente de comprendre ce qui se passe, mais de plus il est en Chine en zone d'activité arrêtée.
La dernière sauvegarde valide que j'ai pu restaurer après plus d'une centaine d'heures de travail remontait à plus de 6 mois (probablement les premières erreurs de disque de ce type) et j'ai peu à peu reconstitué le reste sans être certain que le travail soit terminé.
Cette aventure pose je crois 4 questions de fond :
- l'existence d'utilitaire accessible un utilisateur final répondant à la définition donnée ci-dessus, en résumé : donner la liste des fichiers (path) correspondant aux secteur défectueux non récupérables. Accès à des utilisateurs, dont les développeurs indépendants et des personnes exploitant des machines se chargeant des problèmes de maintenance de leur matériel contenu de leurs compétences)
- la question de la détection des erreurs du type de celles rencontrées (les messages formulés notamment par Windows "une erreur s'est produite" sans donner d'informations plus précises ni de possibilité de la trouver dans le gestionnaire d'événements système, étant évidemment sans aucun intérêt autre que de nous apprendre que le système n'a pas réussi à faire ce qu'on lui demandait)
- la question de l'existence d'un journal d'événements détaillés pour les logiciels de sauvegarde avec un mécanisme d'alerte.
- La question des procédures de surveillance des disques, c'est-à-dire en particulier la programmation de test de maintenance de la machine dont l'état S.M.A.R.T. des disques. (Nota : je ne connais pas de logiciel adapté. Je saurais bien sûr en écrire un mais pour faire quelque chose de propre c'est évidemment un très gros travail. Il y a aussi la possibilité d'utiliser de gestionnaire de tâches "i.e. Task Manager" mais compte tenu du nombre d'opérations à programmer le travail est considérable)
Merci de m'informer s'il existe des réponses à ces 4 questions.
Cordialement
Trebly
___________________________________________________________________________________________________________________________________________________
Nota : A propos du disque défectueux
- le disque concerné était le deuxième disque de la machine utilisée pour les data (2To Seagate) - 1 SSD système + 2 disques de 2To data
- Il était en fonctionnement sur mon portable depuis 24 mois lors du début des incidents, dont les conséquences sont été constatées la première fois 6 mois plus tard. Avec un volume de réécriture de 2,7 fois sa taille. (Il ne pouvait être pris en garantie parce que livré avec la machine la durée de garantie était limitée à celle de la machine soit 2 ans (en fait date d'achat par le constructeur de la machine 10 mois avant la vente de la machine. La panne est donc intervenue 6 mois après la fin de garantie Seagate OEM).