2. Un peu de technique et de terminologie

Contenu de cette section

Les secteurs des disques ATA (IDE) comportent 512 octets. On peut adresser un secteur de deux manières~: par son adresse logique (LBA, Logical Block Address), qui est un numéro compris entre 0 et le nombre total de secteurs du disque, ou par son adresse physique qui est un triplet cylindre-tête-secteur (CHS, Cylinder-Head-Sector). Pour convertir des adresses logiques en adresses physiques, il est nécessaire de connaître la géométrie du disque, c'est-à-dire le nombre de têtes par cylindre, le nombre de secteurs par tête et le nombre de cylindres qu'il comporte. Ces informations permettent aussi de calculer la taille du disque.

Les anciens contrôleurs et les vieux BIOS ne permettent d'utiliser que l'adresse physique pour adresser un secteur. Tous les contrôleurs et tous les BIOS permettent d'utiliser l'adresse physique pour repérer un secteur. Linux manipule le plus souvent possible des adresses logiques, sauf au plus bas niveau, où il effectue une conversion de ces adresses en adresses physiques pour dialoguer avec le contrôleur. Linux n'utilise pas le BIOS pour tout cela, sauf pour déterminer la géométrie du disque.

La table des partitions contient les adresses de début et de fin des partitions sous forme logique ET physique. fdisk sous DOS et fdisk sous Linux s'attendent bien sûr à ce que les deux formes soient cohérentes entre elles pour chaque partition. fdisk sous DOS demande au BIOS la géométrie du disque, et fdisk sous Linux la demande au noyau.

C'est ici que les choses se corsent. MS-DOS et l'interface BIOS utilisent un champ de dix bits pour stocker les numéros de cylindre, ne permettant d'utiliser que des numéros compris entre 0 et 1023, ce qui est tout à fait insuffisant pour les disques modernes qui comportent habituellement 63 secteurs par tête, 16 têtes par cylindre, et un très grand nombre de cylindres (N.D.T. plus de 2~000 pour un disque de 1~Go). La solution pour pouvoir exploiter ces disques, en dépit de cette limitation est une bidouille~: un BIOS EIDE ment au sujet de la géométrie du disque en divisant par deux (ou par quatre) le nombre de cylindres et en doublant (respectivement, en quadruplant) le nombre de têtes. Quand une requête comportant une adresse physique lui arrive, le BIOS considérera que cette requête utilise la géométrie bidon et la convertira pour dialoguer avec le contrôleur du disque. Ce mécanisme est appelé une conversion d'adresse.


Chapitre suivant, Chapitre Précédent

Table des matières de ce chapitre, Table des matières générale

Début du document, Début de ce chapitre