web-dev-qa-db-fra.com

Les données d'un disque dur peuvent-elles se dégrader sans que Windows m'avertisse que cela s'est produit lorsque j'essaie d'accéder aux données?

Est-il probable qu'une dégradation physique d'un disque dur provoque le basculement de bits dans le contenu du fichier sans que le système d'exploitation ne le remarque et ne vous le signale pas lors de la lecture du fichier? par exemple. Un 'p' dans un fichier texte ASCII (binaire 0111000 ) peut-il être remplacé par un 'q' (0111000 1), puis par un utilisateur ( être capable d’ouvrir le fichier et voir "q" sans se rendre compte qu’une panne s’est produite?

Je suis intéressé par les réponses relatives à FAT, NTFS ou ReFS ... si cela fait une différence.

Je veux savoir si le système d'exploitation me protège de cette situation ou si je devrais vérifier si mes données sont invariantes entre les copies/dans le temps.

29
topo morto

Oui, il y a une chose appelée bit pourriture.

Mais non, cela ne vous affectera pas inaperçu.

Lorsqu'un lecteur écrit un secteur sur les plateaux, il n'écrit pas simplement les bits de la même manière qu'ils sont stockés dans RAM - il utilise un codage pour s'assurer qu'il n'y a pas de séquences du Le même bit est trop long et il ajoute des codes ECC qui lui permettent de réparer les erreurs qui affectent quelques bits et de détecter les erreurs qui affectent plus de quelques bits.

Lorsque le lecteur lit le secteur, il vérifie ces codes ECC et répare les données, si nécessaire et si nécessaire. Ce qui se passe ensuite dépend des circonstances et du microprogramme du lecteur, qui est influencé par la désignation du lecteur.

  • Si un secteur peut être lu et n'a pas de problèmes de CEC, il est transmis au système d'exploitation.
  • Si un secteur peut être réparé facilement, la version réparée peut être écrite sur le disque, lue et vérifiée afin de déterminer si l'erreur était aléatoire (rayons cosmiques, etc.) ou s'il y a une erreur systématique avec le support.
  • Si le lecteur détermine qu'il y a une erreur avec le support, il réaffecte le secteur.
  • Si un secteur ne peut être ni lu ni corrigé après quelques tentatives de lecture, sur un lecteur désigné comme lecteur RAID, le lecteur abandonnera, réaffectera le secteur et signalera un problème au contrôleur. . Il repose sur le contrôleur RAID pour reconstruire le secteur à partir des autres membres RAID et l'écrire sur le lecteur défaillant, qui le stocke ensuite dans le secteur réaffecté qui, espérons-le, ne connaît pas le problème.
  • Si un secteur ne peut pas être lu ou corrigé sur un lecteur de burea, le lecteur fera beaucoup plus de tentatives pour le lire. En fonction de la qualité du lecteur, cela peut impliquer de repositionner la tête, de vérifier s’il ya des bits qui basculent lorsqu’ils sont lus de manière répétée, de déterminer quels sont les bits les plus faibles et quelques autres choses. Si l’une de ces tentatives aboutit, le lecteur réaffectera le secteur et écrira les données réparées.

(C’est l’une des principales différences entre les lecteurs vendus en tant que lecteurs "Desktop", "NAS/RAID" ou "Surveillance vidéo". Un lecteur RAID peut simplement abandonner rapidement et permettre au contrôleur de réparer le secteur afin d’éviter toute latence sur le système. Un lecteur de bureau réessayera encore et encore, car attendre de l'utilisateur quelques secondes est probablement mieux que de lui dire que les données sont perdues. Et un lecteur vidéo valorise davantage le débit de données constant que la récupération d'erreur, puisqu'un cadre endommagé gagne généralement ne même pas être remarqué.)

Quoi qu'il en soit, le lecteur saura s'il y a eu de la pourriture des bits, le récupérera généralement, et s'il ne le pourra pas, il indiquera au contrôleur qui à son tour informera le pilote qui informera le système d'exploitation. Ensuite, il appartient au système d'exploitation de présenter cette erreur à l'utilisateur et d'agir en conséquence. C’est pourquoi Cybernard dit

Je n'ai jamais été témoin d'une seule erreur, mais j'ai vu de nombreux disques durs dans lesquels des secteurs entiers ont échoué.

le lecteur saura qu'il y a quelque chose qui ne va pas dans le secteur, mais il ne sait pas quels bits ont échoué. (Un seul bit qui a échoué sera toujours attrapé par ECC).

Veuillez noter que chkdsk, et la réparation automatique des systèmes de fichiers, ne traitent pas la réparation des données dans les fichiers . Celles-ci visent la corruption liée à la structure du système de fichiers; comme une taille de fichier différente entre l’entrée du répertoire et le nombre de blocs alloués. La fonctionnalité d'auto-réparation de NTFS détectera les dommages structurels et les empêchera d'affecter davantage vos données. Ils ne répareront aucune donnée déjà endommagée.

Il existe bien sûr d'autres raisons pour lesquelles les données peuvent être endommagées. Par exemple. Une mauvaise RAM sur un contrôleur peut altérer les données avant même qu'elles ne soient envoyées au lecteur. Dans ce cas, aucun mécanisme sur le lecteur ne détectera ni ne réparera les données, ce qui peut expliquer en partie la structure endommagée du système de fichiers. D'autres raisons incluent des bogues logiciels simples, une panne d'électricité lors de l'écriture du disque (bien que cela soit résolu par la journalisation du système de fichiers), ou des pilotes de système de fichiers incorrects (le pilote NTFS sous Linux est par défaut en lecture seule pendant longtemps, car NTFS a été désossé, mais n'a pas été documenté. , et les développeurs n’ont pas confiance en leur propre code).

Une fois, j'ai eu ce scénario, où une application enregistrerait tous ses fichiers sur deux serveurs différents dans des centres de données différents, afin de conserver une copie de travail si les données, quelles que soient les circonstances. Après quelques mois, nous avons constaté que sur l’une des copies, environ 0,1% de tous les fichiers ne correspondait pas à la somme MD5 stockée par l’application dans sa base de données. Il s’est avéré qu’il s’agissait d’un câble à fibre optique défectueux entre le serveur et le réseau de stockage.

Ces autres raisons expliquent pourquoi certains systèmes de fichiers, tels que ZFS, conservent des informations de somme de contrôle supplémentaires afin de détecter les erreurs. Ils sont conçus pour vous protéger de beaucoup plus de choses qui peuvent mal tourner que juste pourrir un peu.

24
Guntram Blohm

Oui, les disques durs peuvent se dégrader sans que le système d'exploitation ne le prévienne. Cela s'appelle bit rot. Je n'ai jamais été témoin d'une seule erreur, mais j'ai vu de nombreux disques durs dans lesquels des secteurs entiers ont échoué.

Windows n'a pas de protection intégrée du contenu du fichier au-delà de la structure du système de fichiers NTFS. Pensez à NTFS comme à un livre: ainsi, il ne protège que la table des matières et vérifie la concordance. Cependant, si le dommage est au milieu d'une page, cela n'offre aucune protection. La graisse n'a rien. Les disques durs utilisent la correction d'erreur ECC par secteur, mais le lecteur n'en informe pas Windows. Certains types de fichiers ont spécifiquement des hachages CRC, MD5 ou SHA pour détecter la corruption, mais ils ne font rien réparer.

Même dans ce cas, le hachage indique uniquement qu'il y a un problème, mais il ne sait pas où se trouve l'erreur.

Le disque dur a SMART qui surveille son état, mais à moins que le disque ne soit sur le point de mourir, le BIOS ne vous préviendra pas. Pire encore, SMART est souvent désactivé par défaut dans votre BIOS. Vous pouvez surveiller les numéros à l'aide d'un logiciel, mais différents lecteurs ont des problèmes différents. Si vous avez un groupe de secteurs délocalisés, ou si vos erreurs ECC augmentent constamment. Si vous avez 100 000 nouveaux CCE chaque jour, c'est un mauvais signe.

De nombreux types de fichiers n'ont aucune protection contre bit rot. Par exemple, TXT et BMP, qui ne bénéficient d'aucune protection. Winrar a une option facultative pour ajouter des données de parité à l’archive, ce qui rendra le fichier plus volumineux, mais elle peut détecter (proportionnellement à la quantité de données de parité ajoutée) et réparer ce type d’erreur.

Tous les autres programmes de compression que je connais détectent les erreurs, mais ne peuvent rien y faire.

Finalement, les erreurs dans un secteur seront si mauvaises qu'ECC ne pourra pas les corriger et le lecteur vous donnera ce qu'il lit même s'il est erroné.

Vous pouvez utiliser QuickPar ou similaire pour créer des fichiers de données de parité, mais pour autant que je sache, il n’existe aucun moyen de l’automatiser. Par exemple, vous modifiez le fichier vous-même lorsque vous devez mettre à jour manuellement la parité. Vous pouvez également disposer de données de parité pour un groupe de fichiers, mais vous modifiez un fichier et l'ensemble de la parité doit être recréé. C'est un vrai casse-tête pour tous, mais un petit nombre de fichiers.

17
cybernard

Oui c'est possible. Windows n'est qu'un logiciel. Le logiciel est une série d'instructions à suivre pour un ordinateur.

Pensez à un autre type de série d'instructions: un livre. Qu'est-ce que ces instructions peuvent accomplir si elles sont écrites dans un livre posé sur une étagère et que personne ne se soucie d'ouvrir celui-ci et de lire ces instructions?

Tout comme ces instructions écrites obligent une personne à lire les instructions et à commencer à les suivre, le logiciel nécessite du matériel informatique pour que les choses soient utiles. Même si un livre a des instructions qui ont été écrites avec une précision fabuleuse, cela n’empêche pas les problèmes si une personne décide de lire les instructions mais de les appliquer ensuite de manière erronée. De même, les logiciels ne peuvent empêcher le matériel de faire de mauvaises choses. Ainsi, un matériel défectueux peut triompher physiquement de ce que tout logiciel peut faire, y compris Microsoft Windows.

Désormais, ReFS peut être conçu avec l'intention que le logiciel stocke les détails des données et que le logiciel les compare ultérieurement. Un concept simple est "somme de contrôle", où le logiciel ajoute certaines valeurs et s'assure que ces valeurs correspondent au résultat attendu. Lorsque le matériel implémente ce logiciel, certains résultats erronés peuvent être détectés. Cela peut même être très probable pour fonctionner. Cependant, étant donné que le nombre de problèmes potentiels, qui pourraient théoriquement exister, est fondamentalement infini, rien ne garantit que le logiciel détectera nécessairement chaque problème. (N'oubliez pas que le logiciel est une série d'instructions créées à l'avance.)

FAT est particulièrement faible sur les fonctionnalités. FAT12 a été conçu pour les disquettes et FAT16 pour les systèmes jusqu’à 4 Go (bien que la plupart des implémentations de FAT16 par Microsoft aient tendance à ne pas fonctionner au-dessus de 2 Go). Sans l'extension VFAT, aucun des deux ne prend en charge les noms de fichiers de plus de 11 caractères (dont certains font partie d'une "extension"). FAT a simplement été conçu pour stocker des données à une époque où la capacité de stocker des données était un concept novateur sur lequel les adultes devaient être sensibilisés. Lorsque la technologie FAT était considérée comme une technologie "de pointe", la technologie informatique n'était pas encore suffisamment répandue et complexe pour que les utilisateurs puissent se soucier des fonctionnalités avancées.

NTFS a ajouté la prise en charge de certaines fonctionnalités supplémentaires, notamment grâce à la possibilité pour le système d’exploitation de garder facilement trace des autorisations des utilisateurs. Il existe différentes versions de NTFS. Par exemple, Moab souligne que Windows Server 2008 a ajouté la prise en charge de NTFS à réparation automatique , qui peut détecter certaines choses. Néanmoins, cette fonctionnalité était nouvelle dans Windows Server 2008, de sorte que Windows XP (ou Windows Server 2003 ou une version antérieure) ne la prend pas en charge. Même quand même, en regardant la liste des fonctionnalités, il semble que cela implique certaines méta-données qui aident le système d'exploitation à identifier les problèmes qui sont si graves que le disque ne peut pas être monté, ou d'autres zones clés du disque qui affectent le noyau du système d'exploitation. Il ne semblait pas que toutes les données, dans chaque fichier, soient affectées par cette caractéristique particulière.

Il est extrêmement peu probable que le logiciel de tels systèmes d’exploitation le remarque, à moins qu’ils ne causent des problèmes importants au système d’exploitation. Il peut y avoir des exceptions, comme les parties du système d’exploitation qui vérifient les disques (CheckDsk/ChkDsk/ScanDisk/ScanDskW, en fonction du système d’exploitation), mais elles resteront assez limitées sur ce qu’elles peuvent détecter, en grande partie parce que les systèmes de fichiers 'ne stockez pas une très grande quantité de données qui devait être utile pour la vérification du disque.

(RAID5 pourrait être plus enclin à détecter de telles choses, chaque bit ayant un bit de parité qui aiderait à remarquer quelque chose d'inhabituel. Même dans ce cas, il reviendrait à l'implémentation RAID d'exécuter une vérification pour constater le problème. Une partie du disque sur laquelle vous ne travaillez pas activement, le problème peut rester inaperçu jusqu'à ce que quelqu'un essaie de commencer à utiliser ces données.)

Plus récemment, un plus grand nombre de bits signifiait que de petites probabilités, comme les chances de "1 sur 10 millions", étaient plus susceptibles d'affecter les choses. Le grand public a également entendu parler des "rayons cosmiques", qui peuvent avoir un impact mineur sur les choses. Etant donné que les bits sont tellement entassés dans les nouveaux appareils, les exigences physiques pour représenter un bit sont plus petites, de sorte que même les petits impacts sont plus susceptibles de gâcher la façon dont un bit est reconnu. ReFS dispose de fonctionnalités conçues pour faciliter leur détection. L'article de Wikipedia sur ReFS parle de "vérification automatique de l'intégrité". Comme cela est décrit comme une caractéristique notable de ce système de fichiers, de telles fonctionnalités sont probablement plus développées qu'avec NTFS (et certainement plus que FAT, qui était de nature relativement simple et n'avait donc pratiquement aucune de ces fonctionnalités).

2
TOOGAM