La corruption de données est l'altération silencieuse du contenu d'un fichier, sans panne visible du support. Le disque fonctionne, il est détecté, il ne fait aucun bruit, et pourtant certains fichiers s'ouvrent tronqués ou refusent de s'ouvrir. Elle se détecte par comparaison de sommes de contrôle, avant que les sauvegardes ne la recopient.
Des fichiers s'ouvrent corrompus ? Ne relancez pas la sauvegarde.
Pourquoi la corruption passe inaperçue
Un disque dur signale la plupart de ses erreurs. Quand il n'arrive pas à relire un secteur, son code correcteur interne le détecte, tente la correction, et remonte l'échec au système. L'utilisateur voit une erreur de lecture.
La corruption silencieuse est exactement le cas inverse. Le disque rend une donnée fausse en la présentant comme correcte. Rien n'est signalé, ni par le disque, ni par le système, ni par le logiciel qui ouvre le fichier.
Ce n'est possible que parce que la vérification s'arrête au niveau du support. Le disque garantit qu'il a bien relu ce qu'il a écrit dans le secteur, il ne garantit pas que ce qui y a été écrit était juste. Une erreur survenue avant l'écriture, dans la mémoire vive ou dans le contrôleur, est enregistrée telle quelle et devient la vérité pour tout le reste de la chaîne.
C'est la raison pour laquelle une corruption peut dater de plusieurs mois avant d'être découverte, souvent au pire moment : à l'ouverture d'une archive ou à la restauration d'une sauvegarde.
Les quatre causes réelles
Le support lui même. Les imperfections de la couche magnétique et les particules libres à l'intérieur du disque créent des micro rayures, qui produisent des erreurs de secteur latentes. Elles restent invisibles tant que personne ne relit la zone concernée. Ce mécanisme est celui des secteurs défectueux.
Le firmware. Un disque moderne embarque des centaines de milliers de lignes de code interne, et son contrôleur autant. Un défaut dans ce code peut écrire au mauvais endroit ou rendre le contenu d'un autre bloc, sans qu'aucune couche supérieure ne s'en aperçoive. Les cas extrêmes relèvent du firmware de disque dur HS.
La mémoire vive et la connectique. Une barrette mémoire défaillante altère la donnée avant même qu'elle n'atteigne le disque. Un adaptateur ou un câble SATA de mauvaise qualité produit le même effet en cours de transfert.
L'interruption d'écriture. Une coupure de courant pendant qu'un fichier est écrit laisse une partie ancienne et une partie nouvelle dans le même fichier, ainsi qu'un système de fichiers dont la table ne décrit plus la réalité.
Les trois formes que prend la corruption
L'incohérence de somme de contrôle. La donnée ne correspond plus à l'empreinte calculée au moment de son écriture. C'est la forme la plus fréquente et la plus facile à détecter, à condition qu'une somme de contrôle ait été enregistrée.
La divergence d'identité. Le bloc relu est intact, mais ce n'est pas le bon : le disque a rendu le contenu d'un autre emplacement. La donnée est parfaitement valide, elle est simplement au mauvais endroit, ce qui la rend indétectable par une simple vérification d'intégrité.
L'écriture perdue. Le disque a confirmé une écriture qu'il n'a pas réellement effectuée. Le bloc contient encore son ancien contenu, cohérent et vérifiable, alors que le système croit y avoir écrit autre chose.
Ces deux dernières formes expliquent pourquoi une corruption peut traverser sans dommage apparent une vérification de routine.
Comment on la détecte
Par comparaison, jamais par observation. Une donnée corrompue ne se distingue pas d'une donnée saine si on n'a rien à quoi la comparer.
La somme de contrôle est l'outil de base. Une empreinte est calculée à l'écriture et enregistrée à part, puis recalculée à la lecture. Si les deux diffèrent, le bloc est altéré. Elle ne dit pas ce qui a changé, seulement que quelque chose a changé.
Les systèmes de fichiers à intégrité vérifiée, comme ZFS ou Btrfs, appliquent ce principe automatiquement à chaque lecture, et signalent l'écart au lieu de rendre une donnée fausse.
L'identifiant de bloc traite le cas de la divergence d'identité. Chaque bloc porte, en plus de sa somme de contrôle, l'adresse à laquelle il est censé se trouver. Un bloc rendu depuis un autre emplacement est immédiatement démasqué.
Sans aucun de ces dispositifs, la corruption se découvre par l'usage : un fichier qui ne s'ouvre plus, une base de données qui refuse de démarrer, une archive qui échoue à la décompression.
Pourquoi le RAID et les sauvegardes ne protègent pas
C'est le point le plus mal compris, et le plus coûteux.
Une grappe RAID protège contre la panne d'un disque, pas contre une donnée fausse. Si un disque rend un bloc corrompu en le présentant comme valide, la grappe le recopie sans discuter. Elle n'a aucun moyen de savoir lequel des deux exemplaires est le bon, et la reconstruction propage l'erreur. Les cas de ce type sont traités sur la page récupération de données sur serveur RAID.
Une sauvegarde fait pire encore. Elle copie fidèlement ce qu'elle trouve, corruption comprise, et elle écrase la version saine précédente au bout de quelques rotations. Une corruption non détectée pendant trois mois se retrouve dans les trois mois de sauvegardes.
C'est pourquoi le premier réflexe, dès qu'un fichier s'ouvre corrompu, est de suspendre les sauvegardes automatiques. Chaque cycle supplémentaire rapproche du moment où la dernière version saine disparaîtra.
Les signes qui doivent alerter
Aucun n'est spectaculaire, et c'est bien le problème.
- Des fichiers qui s'ouvrent avec une partie manquante, une image à moitié grise, un document tronqué, une vidéo qui se fige toujours au même endroit.
- Des archives compressées qui échouent à la décompression alors qu'elles s'ouvraient hier.
- Une base de données ou un logiciel de comptabilité qui signale une incohérence interne au démarrage.
- Des lenteurs qui n'apparaissent que sur certains dossiers, signe que le disque multiplie les tentatives de relecture au même endroit.
- Un système qui propose de réparer le disque à chaque démarrage. Accepter cette réparation fait écrire sur le disque, et c'est exactement ce qu'il ne faut pas faire.
Ce qui se récupère sur un fichier corrompu
La réponse dépend de l'étendue de l'altération, pas de sa cause.
Quand la corruption touche les structures du disque, table de partition, secteur d'amorçage ou système de fichiers, les fichiers eux mêmes sont intacts et tout se récupère. C'est le cas des pannes logiques, d'une partition passée en RAW ou d'un système NTFS corrompu.
Quand la corruption touche le contenu des fichiers, tout dépend du format. Une archive compressée ou une base de données tolère très mal l'altération de quelques octets. Un fichier vidéo ou une image en supporte beaucoup plus, avec une dégradation visible mais un fichier lisible.
Quand la corruption vient de secteurs illisibles, le clonage en plusieurs passages récupère souvent la quasi totalité de la zone, et seule la fraction réellement perdue manque au fichier final. La technique est décrite sur la page des méthodes de récupération de données.
Dans tous les cas, le travail se fait sur un clone et jamais sur le support d'origine, et ce qui est réellement récupérable est établi au diagnostic. Le détail de ce qui se récupère selon la situation est sur la page des données perdues sur un disque dur.
Une corruption qui s'étend se traite mieux tôt que tard.
FAQ - Corruption de données
Qu'est ce que la corruption de données silencieuse ?
C'est une altération que rien ne signale. Le disque rend une donnée fausse en la présentant comme correcte, sans erreur de lecture ni message du système. Elle se découvre des mois plus tard, à l'ouverture d'un fichier ou à la restauration d'une sauvegarde.
Un disque corrompu est il en panne ?
Pas forcément. Un disque peut être parfaitement sain et porter des données corrompues, par exemple après une coupure de courant ou à cause d'une mémoire vive défaillante. À l'inverse, un disque qui multiplie les secteurs illisibles corrompt les fichiers au fil de son usure.
Le RAID protège t il de la corruption de données ?
Non. Le RAID protège de la panne d'un disque, pas d'une donnée fausse. Un bloc corrompu présenté comme valide est recopié tel quel lors de la reconstruction, et l'erreur se propage sur toute la grappe.
Faut il continuer les sauvegardes quand on découvre une corruption ?
Non, il faut les suspendre immédiatement. Une sauvegarde copie la corruption et écrase les versions saines au bout de quelques rotations. Chaque cycle supplémentaire réduit la chance de retrouver un exemplaire intact.
Comment vérifier qu'un fichier n'est pas corrompu ?
En comparant son empreinte à celle calculée au moment de son écriture. Sans empreinte enregistrée à l'avance, il n'existe aucun moyen fiable de le savoir avant d'essayer de l'ouvrir. C'est tout l'intérêt des systèmes de fichiers qui vérifient l'intégrité à chaque lecture.
Un fichier corrompu est il définitivement perdu ?
Rarement en entier. Si la corruption touche les structures du disque, le fichier est intact et se récupère complètement. Si elle touche son contenu, le résultat dépend du format : une vidéo reste lisible avec un défaut, une archive compressée beaucoup moins.
