Page suivante Page précédente Table des matières

7. Conversion et Gestionnaires de Disques Durs

La géométrie des disques durs (avec têtes, cylindres et pistes) est une notion qui date de l'âge de MFM et RLL. En ces temps là cela correspondait à une réalité physique. Aujourd'hui, avec l'IDE ou le SCSI, plus personne n'est intéressé par les `véritables' valeurs de la géométrie d'un disque dur. En effet, le nombre de secteurs par piste est variable -- il y en a plus pour les pistes proches du bord extérieur du disque -- donc il n'y a pas de `bon' nombre de secteurs par piste. Pratiquement à l'opposé : la commande IDE, INITIALIZE DRIVE PARAMETERS (91h) est utilisée pour renseigner le disque dur sur le nombre de têtes et de secteurs par piste qu'il est sensé avoir à ce moment précis. Il est assez normal de voir un gros disque dur récent qui n'a que 2 têtes, rapporter qu'il en a 15 ou 16 au BIOS, pendant que le BIOS peut à son tour dire au logiciel qui va s'en servir qu'il en a 255.

Pour l'utilisateur, le mieux est de voir le disque dur comme un tableau linéaire de secteurs numérotés 0, 1, ..., et de laisser le micro-code trouver où, sur le disque dur, est situé tel ou tel secteur. Cette numérotation linéaire est appelée LBA.

Donc, à présent, la vision conceptuelle est la suivante : DOS, ou quel que soit le programme d'amorçage, converse avec le BIOS en se servant de la notation (c,h,s). Le BIOS convertit (c,h,s) en notation LBA en utilisant la géométrie factice dont l'utilisateur se sert. Si le disque dur accepte le LBA, alors cette valeur est utilisée pour les Entrées/Sorties sur le disque. Autrement, elle est à nouveau convertie en (c',h',s') en utilisant la géométrie dont le disque se sert cette fois-là, et qui est utilisée pour les Entrées/Sorties.

Remarquez qu'il y a une légère confusion dans l'utilisation de l'expression `LBA' : en tant que terme décrivant les possibilités d'un disque dur, cela signifie `Linear Block Adressing' -- Adressage de blocs de manière linéaire -- (par opposition à un adressage CHS). En tant que terme de configuration du BIOS, il décrit la méthode de conversion parfois appelée `Assisted LBA' -- voir plus haut : ` La limite des 8,4 Go'.

Un comportement à peu près identique apparaît quand le micro-code ne parle pas le LBA, mais que le BIOS connaît la conversion. (Dans la configuration il est souvent mentionné `Large'.) Donc, le BIOS va présenter une géométrie (C,H,S) au système d'exploitation, et va utiliser (C',H',S') quand il parlera au contrôleur du disque dur. Habituellement, S = S', C = C'/N et H = H'*N, où N est la plus petite puissance de deux qui garantisse C' <= 1024 (ainsi un minimum d'espace disque est perdu au moment de l'arrondi dans C' = C/N). Encore une fois, cela permet un accès à 8,4 Go maximum (7,8 Gio).

(La troisième option de configuration est `Normal', pour laquelle aucune conversion n'est effectuée.)

Si un BIOS ne connaît pas `Large' ou `LBA', alors il existe quelque part une solution logicielle. Les gestionnaires de disques durs comme OnTrack ou EZ-Drive remplacent les routines de gestion de disque du BIOS par les leurs. Cela est souvent réalisé en faisant résider le code du gestionnaire de disque dans le MBR et les secteurs suivants (OnTrack nomme ce code DDO : Dynamic Drive Overlay - recouvrement dynamique de disque), comme ça, il est chargé avant n'importe quel autre système d'exploitation. C'est pourquoi on peut avoir des problèmes en démarrant depuis une disquette quand un gestionnaire de disque dur a été installé.

Le résultat est plus ou moins le même avec un BIOS qui fait des conversions - mais particulièrement, c'est quand on utilise plusieurs systèmes d'exploitation sur le même disque dur que ces gestionnaires peuvent poser beaucoup de problèmes.

Depuis sa version 1.3.14, Linux supporte le gestionnaire de disque dur OnTrack. EZ-Drive quant à lui est supporté depuis la version 1.3.29. Quelques détails supplémentaires sont donnés dans ce qui suit.


Page suivante Page précédente Table des matières