Lilo pour les heureux possesseurs de disques de grande capacité

Qing Liu (qliu@club-internet.fr)

Janvier 2001. Remise en page: le 7 mai 2002.

1. Le passé

Traditionnellement, au démarrage du PC, le BIOS d'un PC ne peut pas accéder aux données du disque dur qui sont situées au-delà du 1024ième cylindre (pour un DD en mode LBA, les premiers 1024 cylindres peuvent contenir environ 8 Go de données). Si votre noyau (vous avez compris qu'on parle de Linux :)) se trouve physiquement dans la zone au-delà du 1024ième cylindre, il ne pourra pas être chargé au boot (noter que le problème est le même pour Windows). Il faut donc user des stratagèmes pour contourner cet obstable, par exemple utiliser loadlin; booter avec une disquette; créer une partition au début du disque dur pour acceuillir /boot; ou encore virer les autres OS ;).

2. Le présent: la norme EBDA (Extended BIOS Data Area)

Heureusement qu'avec l'arrivée des disques durs de grande capacité (enfin, c'est relatif à l'instant où ce texte est pondu :)), l'antique BIOS subit quelques petites évolutions, avec notamment la capacité de s'affranchir de la mythique barrière du 1024ième cylindre. Et ce depuis deux ans, paraît-il. Les dernières versions de lilo (à partir de 21.3) exploitent cette capacité et permettent de booter un noyau qui se situe n'importe où sur le disque dur.

3. Ce dont vous avez besoin

Côté matériel, il faut que le BIOS supporte l'EBDA. Côté logiciel, il faut une version de lilo supérieure à 21.3, et l'option lba32 dans lilo.conf.

4. Mais comment être sûr que votre BIOS intègre EBDA ?

Le package Lilo-21.x vient avec un utilitaire disk.com (sous Dos) qui permet de tester le support d'EBDA. Si vous n'avez pas Dos, vous pouvez fabriquer une disquette de boot avec la commande
# cat bootsect.b disk.com | dd of=/dev/fd0 bs=512
Je mets ici à disposition les fichiers nécessaires disk.com et bootsect.b
Attention : l'utilisation de cet utilitaire est à vos risques et périls. Lire attentivement README.

5. Installation de lilo

Si vous avez une version de lilo supérieure à 21.3 (lilo -V), vous pouvez passer à l'étape suivante. Sinon, procurez-vous une version récente de lilo sur ftp://ftp.lip6.fr/pub/linux/sunsite/system/boot/lilo et compilez-le :

$ cd /var/tmp
$ tar xvfz /chemin/lilo-*.tar.gz
$ cd lilo-*
$ make
$ su -c 'make install'

6. Configuration de lilo

Pour activer le mode EBDA, il suffit d'inserrer dans /etc/lilo.conf ligne
    lba32
Par exemple :
    boot=/dev/hda
    prompt
    timeout=150
    lba32
    compact

Et d'exécuter la commande /sbin/lilo. N'oublions pas que cette commande est *nécessaire* chaque fois pour tenir compte des modifications de lilo.conf (enfin, pour la plupart des options, mais ne pinaillons pas :)).