Qu'est-ce que tout cela signifie ? Pour les utilisateurs de Linux seulement une
chose : qu'ils doivent s'assurer que LILO et fdisk
utilisent la bonne
géométrie, où `bonne' pour fdisk
est définie comme la géométrie utilisée par
les autres systèmes d'exploitation sur le même disque dur, et pour LILO
comme la géométrie qui va permettre des échanges valides avec le BIOS au
moment du démarrage. (En général les deux vont de pair.)
Comment fdisk
connaît-il la géométrie ?
Il demande au noyau en utilisant l'ioctl HDIO_GETGEO
.
Mais l'utilisateur peut passer outre cela en précisant la géométrie de manière
interactive, ou sur la ligne de commande.
Comment LILO connaît-il la géométrie ?
Il demande au noyau en utilisant l'ioctl HDIO_GETGEO
.
Mais l'utilisateur peut passer outre cela en utilisant l'option `disk=
'
dans le fichier /etc/lilo.conf
(voyez la page de manuel lilo.conf(5)).
On peut également passer l'option linear
à LILO, il va alors stocker des
adresses LBA à la place des CHS dans son fichier `map', et retrouvera la
géométrie à utiliser au moment du démarrage (en utilisant la fonction 8 de INT13
pour connaître la géométrie du disque dur).
Comment le noyau sait-il répondre ?
Eh bien, en tout premier lieu, l'utilisateur doit avoir spécifié de manière
explicite la géométrie avec la commande en ligne du noyau
`hda=
cyls,
têtes,
secs' (voyez la page de
manuel bootparam(7)).
Sinon, le noyau devra deviner, probablement en se servant des valeurs obtenues à
partir du BIOS ou du matériel lui-même.