Les informations contenues sur les disques durs ont en général plus de valeur pour l'entreprise que le matériel informatique proprement dit. Or, malgré une fiabilité en constante augmentation, les disques durs restent l'une des rares pièces mécaniques d'un ordinateur. Il est donc essentiel de connaître les risques spécifiques qu'ils courent et les méthodes de prévention disponibles.
Si l'on insiste tant sur la nécessité de sauvegarder régulièrement les données contenues sur les disques durs, c'est tout simplement parce que ces informations sont souvent essentielles pour le bon fonctionnement de nombreuses entreprises ou départements et qu'elles ne peuvent pas être remplacées rapidement en cas d'incident grave, Il faudra, par exemple, reconstituer une comptabilité, un fichier clients, ou l'ensemble des commandes en cours. Or, en dehors des risques majeurs «classiques» liés à l'informatique (vol, incendie, surtensions électriques, virus...), les données contenues sur les disques durs sont exposées à certains aléas plus spécifiques. Ces derniers découlent de la manière dont les informations sont stockées sur un disque dur.
Un disque dur est composé d'un ou de plusieurs plateaux qui sont empilés sur l'axe de rotation du moteur principal du disque. Les deux faces de chaque plateau sont recouvertes d'un matériau magnétisable sur lequel sont inscrites les informations désirées (après avoir été codées par le contrôleur et converties en impulsions électriques par la tête de lecture/écriture associée). Le revêtement des plateaux doit d'une part permettre le stockage d'une grande densité de transitions magnétiques, et d'autre part résister aux chocs éventuels avec la tête de lecture (une fonction lubrifiante est également nécessaire pour permettre le démarrage du disque). Tant qu ' il est sous tension, un disque dur est constamment en rotation à une vitesse approximative de 3 600 tours par minute. Cette rotation incessante accélère les accès aux données et maintient les têtes de lecture/écriture à une distance constante par rapport aux plateaux. En effet, une tête de lecture/écriture est associée à chaque face d'un plateau, et la densité d'informations que l'on peut stocker dépend de la distance de la tête par rapport au plateau Cette distance doit être la plus faible possible, en évitant cependant tout contact accidentel entre la tête et le plateau. Pour y parvenir, le positionnement précis de la tête est assuré par un «coussin d'air» qui est engendré par la rotation des plateaux, les têtes de lecture/écriture étant profilées pour «flotter» au-dessus ou au-dessous de leur plateau attitré. Elles sont reliées de manière flexible au mécanisme de positionnement, dont la mission est d'amener l'ensemble des têtes au-dessus de la piste requise.
Le positionnement précis de la tête de lecture/écriture associée à chaque face d'un plateau, est assurée par le «coussin d'air» engendré par la rotation des plateaux, les têtes étant profilées pour «flotter» au-dessous ou au-dessus de la sruface magnétique.
Les informations stockées sur un disque dur sont organisées en
pistes concentriques. Chaque piste est déterminée par la tête
de lecture/écriture associée (qui indique le plateau et la face
considérés) et par sa position par rapport à l'axe de rotation
des plateaux. L'ensemble des pistes situées les unes au-dessus des autres
sur différents plateaux s'appelle un cylindre. Les informations écrites
sur une piste donnée sont divisées en plusieurs secteurs, que
le contrôleur identifie grâce au numéro présent dans
leur en-tête de secteur (sector header). Lors d'une requête de lecture
ou d'écriture pour un secteur particulier, le contrôleur du disque
dur déplace les têtes au-dessus du cylindre demandé et commence
à lire la piste située sous la tête concernée. Rien
ne se passe tant que l'en-tête du secteur recherché n'est pas passé
sous la tête de lecture. Une fois celui-ci localisé, le contrôleur
effectue l'opération demandée (lecture ou écriture).
En dehors de l'état de surface des plateaux, la fiabilité d'un
disque dur dépend donc de sa faculté à positionner les
têtes au-dessus d'un cylindre donné et à localiser le secteur
requis Pour permettre cette localisation, les en-têtes de secteurs sont
inscrits sur le disque dur lors d'une opération appelée le formatage
de bas niveau ("low-level formating"). C'est exactement ce que fait
le DOS lorsqu'on tape la commande FORMAT pour une disquette. En revanche, si
cette commande s'applique à un disque dur, le DOS se contente de réinitialiser
la table d'allocation des fichiers (FAT : File Allocation Table) sans toucher
aux en-têtes de secteurs. Le formatage de bas niveau d'un disque dur représente
en effet une opération relativement longue, au cours de laquelle la surface
des plateaux doit être testée pour en détecter les éventuels
défauts. Cette opération est donc réalisée une fois
pour toutes pan le fabricant du disque dur, l'intervention de l'utilisateur
final se limitant ensuite au partitionnement du disque (à l'aide de FDISK)
et au formatage de haut niveau des partitions DOS (grâce à FORMAT).
La plupart des problèmes liés au vieillissement des disques durs proviennent du fait que les en-têtes de secteurs ne sont jamais réécrits, alors que les données contenues dans ces secteurs sont sans cesse modifiées. En effet, comme tout assemblage mécanique de précision, le dispositif de positionnement des têtes peut voir son alignement se modifier avec l'âge. Les causes de ce vieillissement sont multiples : usure des pièces mécaniques, fatigue et déformation des bras qui soutiennent les têtes suite aux incessants aller et retour qui leurs sont infligés, dilatations et contractions dues aux variations de température des pièces du disque dur (ces dilatations affectent aussi bien le mécanisme de positionnenent des têtes que les plateaux du disque dur). Il faut d'ailleurs savoir que l'alignement des têtes d'un disque dur varie légèrement entre la mise sous tension de l'ordinateur «à froid» et la température atteinte après une demi-heure ou une heure de fonctionnement, malgré l'emploi de dispositifs de compensation. Quelle qu'en soit la cause, le vieillissement du mécanisme de positionnement des têtes entraîne inévitablement la même conséquence : les pistes effectivement lues ou écrites pan les têtes se décalent progressivement par rapport aux emplacements qu'elles occupaient lors du formatage de bas niveau du disque dur. Ce décalage affecte en premier lieu les zones du disque dur qui sont rarement réécrites, dont font partie les fameux en-têtes de secteurs : au fur et à mesure que la tête s'éloigne du tracé initial de la piste, les variations de champ magnétique qui correspondent aux informations stockées sur le disque deviennent de plus en plus faibles et difficiles à séparer du «bruit» ambiant. Lorsque le contrôleur devient incapable de lire certains en-têtes de secteurs, les données correspondantes sont irrémédiablement perdues (et le message «Secteur non trouvé» est d'un bien piètre secours).
L'alignement du dispositif de positionnement des têtes peut s'altérer avec le temps. Les causes de ce vieillissement sont multiples : usure des pièces mécaniques, fatigue et déformation des bras soutenant les têtes, dilatations et contractions dues aux variations de température des pièces du disque dur.
La modification de l'alignement des têtes de lecture/écriture entraîne également des risques pour les données nouvellement écrites sur le disque. En effet, ces dernières peuvent alors se situer sur un défaut de surface d'un plateau, qui est mis en évidence par le décalage des pistes. Pourtant, les fabricants soumettent leurs disques durs à une série de tests pour détecter les défauts éventuellement présents dans le revêtement magnétique des plateaux. Quelques anomalies sont inévitables, mais elles ne prêtent pas à conséquence lorsqu'elles sont détectées à ce stade il suffit en effet d'indiquer au DOS que la zone correspondante d'un disque dur ne doit pas être utilisée (cette information est ensuite conservée dans la FAT). La liste des défauts rencontrés est généralement indiquée sur une étiquette apposée sur le disque dur ou directement inscrite sur une piste dédicacée de ce dernier. Cette procédure de test garantit la fiabilité du revêtement, mais elle n'est valable que pour les pistes décrites par les têtes de lecture/écriture sur le disque dur à l'état neuf. Si la position de ces pistes se décale par rapport à leur tracé initial, certains secteurs risquent de se trouver sur des défauts de surface qui n'avaient pas été détectés lors des tests de fabrication, car aucune piste ne passait dessus ! Les données écrites à ces emplacements ne pourront alors pas être relues de manière fiable.
Le vieillissement des disques durs entraîne donc inévitablement des risques d'erreurs de lecture. Pour minimiser l'influence de ces erreurs sur l'intégrité des données lues, les contrôleurs des disques durs modernes ajoutent à la fin de chaque secteur un code de correction d'erreur (ECC : Error Correction Code) qui permet de détecter les données erronées et de corriger éventuellement jusqu'à 11 bits incorrects consécutifs. Lorsque le contrôleur détecte une erreur de lecture, il essaie tout d'abord de relire le secteur concerné à plusieurs reprises. L'algorithme de correction est seulement utilisé si aucune lecture ne réussit sans erreur, et permet quand même d'obtenir des données exactes dans de nombreux cas. Ce mécanisme minimise dans de grandes proportions les erreurs irrécupérables de lecture, mais cette sécurité est à double tranchant. Elle présente en effet l'inconvénient de masquer à l'utilisateur le véritable degré de vieillissement de son disque dur. Et lorsque les erreurs empêchent le contrôleur de lire les données requises, il est trop tard pour corriger la situation : seule une sauvegarde récente sera d'un quelconque secours. Une part de responsabilité dans cet état de fait incombe au DOS lui-même : si le contrôleur n'émet aucun signal particulier lorsqu'il est obligé de procéder à plusieurs essais pour réussir à lire des données correctes, il envoie en revanche au Bios un message quand l'algorithme de correction d'erreur se révèle indispensable. Le Bios relaie cette information vers le DOS, mais ce dernier préfère ignorer ce message et ne pas alarmer l'utilisateur (puisque les données qu'il reçoit sont quand même correctes). Lorsque le message «Erreur en lecture» apparaît, les données contenues dans le secteur incriminé sont bel et bien perdues.
Que peut-on faire pour éviter d'en arriver là ? L'analyse des
causes d'erreurs conduit à deux approches distinctes : on peut d'une
part tenter d'éviter le décalage de l'alignement des têtes
de lecture/écriture, d'autre part essayer d'en diminuer les conséquences
néfastes. Heureusement, les solutions correspondantes ne sont pas exclusives
et se complètent le plus souvent harmonieusement, ce qui permet de jouer
sur les deux tableaux.
La modification de l'alignement des têtes peut être retardée
si l'on diminue la fatigue des pièces mécaniques, fatigue qui
résulte des déplacements incessants du système de positionnement.
Mais comment éviter les déplacements inutiles des têtes
de lecture, puisque l'utilisateur n'a généralement aucun contrôle
sur eux ? Il faut pour cela procéder à des défragmentations
régulières du disque dur et utiliser un cache-disque. Si le but
principal de ces techniques est d' améliorer les performances des accès
au disque dur, il ne faut pas oublier que les gains obtenus proviennent dans
le premier cas de la diminution des déplacements des têtes de lecture/écriture
(puisque les secteurs d' un même fichier sont situés sur des pistes
contiguës), et dans le deuxième cas de la substitution d'un accès
mémoire à un accès au disque dur. Un disque dur peu fragmenté
et secondé par un cache-disque déplacera moins souvent ses têtes
de lecture/écriture et usera donc moins leur mécanisme de positionnement.
Pour éviter la perte définitive des données, il importe
de détecter les erreurs de lecture avant que leur nombre empêche
l'algorithme de correction d'erreur de fonctionner. Il suffit alors de reloger
les données corrigées dans un secteur libre en bonne santé,
et de marquer leur emplacement d'origine comme «mauvais» dans la
FAT pour éviter les désagréments futurs. On trouve dans
le commerce plusieurs utilitaires spécialisés dans ce type d'analyse
SpinRite II (Gibson Research), Advanced Disk Technician (Prime Solutions), ou
encore Calibrate (qui fait partie du package Norton Utilities). Ces programmes
essaient de court-circuiter le DOS et d'adresser directement le contrôleur
du disque dur pour repérer les secteurs sur lesquels une correction est
nécessaire. Ils effectuent ensuite des tests de surface sur l'ensemble
du disque dur, en écrivant sur chaque secteur plusieurs valeurs «sensibles»
(qui sont censées mettre en évidence la qualité du revêtement
à cet endroit précis) et en vérifiant leur bonne lecture.
Précisons que ces tests de surface se font de manière non destructrice
pour les données du disque dur, car ces dernières sont lues en
mémoire avant le test de chaque secteur et réécrites par
la suite (pour une sécurité maximale, et pou protéger leur
responsabilité, les éditeurs de ce type de logiciels recommandent
toutefois de procéder à une sauvegarde avant leur exécution).
Outre la détection précoce des erreurs de lecture tant qu'il est
encore possible de les corriger, ces tests présentent l'avantage de réécrire
périodiquement toutes les informations stockées sur le disque
dur. Effectuée lorsque l'ordinateur a atteint sa température de
fonctionnement (par exemple en fin de journée), cette opération
«rafraîchit» les champs magnétiques correspondants
et garantit que les données réécrites se situent bien à
la position actuelle des têtes de lecture/écriture, en particulier
les en-têtes de secteurs, qui sont particulièrement exposés
au décalage progressif des pistes du fait qu'ils ne sont jamais réécrits
après le formatage de bas niveau effectué par le fabricant.
De plus, ces utilitaires déterminent l'entrelacement optimal des secteurs
("interleave") et l'appliquent lors du reformatage de bas niveau,
ce qui améliore éventuellement les performances du disque dur.
On ne peut donc que recommander leur utilisation périodique (les nombreux
couples disques durs-contrôleurs disponibles sur le marché empêchent
malheureusement leur fonctionnement sur toutes les configurations matérielles).
Si de nombreux disques durs modernes disposent d' un mécanisme automatique
de rétraction et de blocage des têtes de lecture (parking), les
possesseurs de modèles plus anciens profiteront des programmes spécialisés
dans ce domaine, qui sont fournis avec les utilitaires de maintenance cités
ci-dessus ou avec le célèbre PCTools de Central PointSoftware.
Les programmes de rétraction évitent, lors de l'arrêt du
disque dur, que les têtes se posent sur des zones contenant des données.
Une partie des risques liés à la mise sous tension est ainsi écartée
(voir encadré). L'utilisation habituelle de tels programmes avant d'éteindre
son ordinateur apporte donc une sécurité supplémentaire,
en particulier si l'ordinateur est déplacé par la suite et se
trouve alors exposé à des risques de chocs.
FAUT-IL ETEINDRE SON ORDINATEUR APRES UTILISATION ?
Deux thèses s'affrontent en ce qui concerne les politiques de mise sous
tension des ordinateurs : vaut-il mieux éteindre un ordinateur dès
que l'on ne s'en sert plus, ou au contraire le laisser sous tension 24 heures
sur 24 ? Les tenants de la première solution raisonnent ainsi : pendant
la durée au cours de laquelle un ordinateur est allumé, son disque
dur tourne à 3600 tours par minute, ce qui finit par fatiguer le moteur
et user l'axe de rotation. Le ventilateur fonctionne également sans cesse
et peut entraîner une accumulation de poussière à l'intérieur
de l'ordinateur (ou tomber lui-même en panne). De plus, les risques de
surtension électrique sont proportionnels à la durée totale
de fonctionnement de l'ordinateur. Enfin, la consomation électrique des
ordinateurs n'est plus négligeable lorsque le parc installé est
important. En suivant ce raisonnement, la meilleure politique consisterait à
éteindre un ordinateur dès que l'on ne s'en sert plus, quitte
à le rallumer éventuellement une demi-heure plus tard. La thèse
contraire, qui stipule que les ordinateurs doivent fonctionner 24 heures sur
24 (éventuellement à l'exception des week-ends), comporte elle
aussi des arguments convaincants.
Au cours d'un fonctionnement ininterrompu, la température des composants
électroniques et mécaniques reste stable et ils ne sont pas soumis
à des cycles répétés de dilatations et de contractions.
L'alignement des têtes de lecture/écriture risque donc moins de
s'altérer avec le temps (et les circuits intégrés ont moins
tendance à se déchausser de leurs supports). Avec un disque dur
en rotation continue, les têtes de lecture/écriture flottent en
permanence sur le «cousssin d'air» engendré par la rotation
et ne risquent pas de détériorer la surface des plateaux lors
de la mise sous tension (avant que le flux d'air ne soit suffisant pour leur
permettre de «décoller»), ni d'y appliquer des champs magnétiques
aléatoires (à cause des impulsions électriques parasites
qui surviennent à l'allumage de l'ordinateur). De plus, l'accès
aux applications est immédiat et n'entraîne pas la perte de temps
consécutive à la procédure d'initialisation de l'ordinateur.
Enfin, les temps moyens entre deux pannes (MTBF : Mean Time Between Failures)
des disques durs sont souvent supérieurs à 40 000 heures, ce qui
correspond à plus de 4 ans de fonctionnement ininterrompu ! Il n'existe
pas de statistiques significatives démontrant la supériorité
d'une option par rapport à l'autre. Chacun est donc libre d'effectuer
son choix parmi les arguments présentés. Notons toutefois que
les deux approches citées constituent des solutions extrêmes et
que la voie moyenne est vraisemblablement la plus sage : allumer un ordinateur
le matin et l'éteindre le soir, avec éventuellement une pause
supplémentaire pendant les heures des repas.
Notons enfin que certains programmes de rétraction des têtes deviennent
résidents en mémoire vive et ramènent automatiquement les
têtes au-dessus de leur «zone d'atterrissage» au bout d'une
certaine durée d'inactivité du disque dur, cela afin de préserver
la surface des plateaux en cas de choc inopiné...
La mise en oeuvre systématique des approches indiquées ci-dessus
ne peut que contribuer à allonger la durée de vie du un disque
dur et des informations qu'il contient. Mais il faut garder à l'esprit
que la seule réelle assurance contre les pertes de données réside
dans l'exécution de sauvegardes régulières (avec des tests
périodiques quant aux possibilités de restauration de ces dernières).
A bon entendeur...
Un disque ou un support quelconque est constitué d'un certain nombre
de faces, de têtes de lecture et de secteurs par face.
Le secteur représente l'unité de stockage de base. Sa taille est
généralement de 512 octets.
Le formatage DOS organise le disque en emplacements élémentaires
appelés «clusters» qui regroupent plusieurs secteurs.
La quantité dépend de la capacité de stockage du support
(cf. la figure donnant les caractéristiques d'une disquette 1,44 Mo et
d'un disque dur Connerde 80 Mo, ci-dessous). On peut obtenir ces informations
avec la plupart des utilitaires (par exemple SysInfo des utilitaires Norton).
Les premiers secteurs du disque dur sont : le secteur de Boot (amorce et démarrage)
qui comporte les informations primaires du disque et l'emplacement (offset)
de toutes les autres. On trouve ensuite le répertoire racine (root) du
support puis la FAT (File Allocation Table, table d'allocation des fichiers)
qui contient les emplacements des fichiers, les clusters vides, etc.
Notons qu'il y a toujours deux FAT, la seconde étant une copie de sauvegarde.
Toutefois, Microsoft n'a jamais fourni d'utilitaire offrant un facsimilé
de FAT d'après la première. Le répertoire racine contient
un certain nombre de structures appelées «Directory Entry»
(entrée de répertoire de 32 octets). Celles-ci comprennent, entre
autres, le nom du fichier, sa taille exacte, son attribut, la date et l'heure
de création et le numéro du cluster de départ.
La dimension d'un fichier sur le disque représente toujours un nombre
exact de clusters; autrement dit, un fichier batch de 30 octets occupe 2 048
octets quand le cluster est de 2 048 octets. La FAT contient un tableau d'entiers
16 bits depuis la version 3.10 du DOS. Celui-ci représente l'état
de chaque cluster du disque.
On y trouve en hexadécimal : 0000 = cluster vide, 0001 à FFF6
= cluster alloué donne le numéro du cluster suivant pour le fichier
concerné, FFFF = dernier cluster du fichier, FFF7 = mauvais secteurs
dans le cluster, cluster non utilisé.
En résumé, la lecture d'un fichier se décompose en une
lecture de l'entrée de répertoire (pour l'obtention du numéro
de cluster de départ), une lecture du cluster de départ, la recherche
dans la FAT du numéro de cluster suivant et la lecture de ce dernier.
Caractéristiques physiques d'un disque dur 80 Mo et d'une disquette 3"1/2 HD
Unité de disque analysée |
C:
|
A:
|
Numéro identificateur du disque |
F8h
|
F0h
|
Nombre de têtes |
6
|
2
|
Nombre de cylindres |
83
|
1
|
Taille des FAT en nbre de secteurs |
16
|
19
|
Nombre d'entrées par répertoire |
512
|
224
|
Nombre de secteurs par cluster |
4
|
1
|
Nombre d'octets par secteur |
512
|
512
|
Taille du cluster |
2048
|
512
|
Nombre de secteurs par piste |
33
|
18
|
Nombre de secteurs cachés |
33
|
0
|
Capacité totale de la partition |
84.043.776
|
1.457.664
|
PRECAUTIONS A PRENDRE EN CAS D'ERREUR
Diverses précautions et mesures préventives sont à prendre après une destruction de fichier ou une erreur de disque éviter toute nouvelle écriture de fichiers afin de ne pas écraser ceux existant. Si les utilitaires ne se trouvent pas sur le disque dur, il ne faut surtout pas les installer mais plutôt les charger à partir des disquettes. Nous rappelons cependant que le meilleur moyen de prévention contre les crashs de disque dur reste toujours leur sauvegarde sur un quelconqtue support. A signaler également que, dans le cas des utilitaires s'exécutant sous Windows, il sera plus difficile de restaurer des fichiers effacés en raison de ceux de nature temporai re créés automatiquement par Windows qui risquent de rendre inopérante toute tentative de récupération.