Quand Lilo amorce le système, il utilise des appels du BIOS pour charger le noyau de Linux depuis le disque (disque IDE, disquette, ou autre). Par conséquent, le noyau doit résider à un endroit accessible par le BIOS.
Au boot, Lilo ne sais pas lire les données des systèmes de fichiers, et le path que vous avez mis dans /etc/lilo.conf est résolu à l'installation (quand vous avez lancé /sbin/lilo). L'installation est le moment où le programme construit les tables qui regroupent les secteurs qui sont utilisés pour charger le système d'exploitation. Par conséquent, tous les fichiers doivent être dans un endroit que le BIOS peut lire (les fichiers sont généralement placés dans le répertoire /boot, cela signifie que seule la partition root de votre système a besoin d'être accessible depuis le BIOS).
Une autre conséquence du fait de se baser sur le BIOS est que vous devez réinstaller le chargeur (en relançant /sbin/lilo) à chaque fois que vous modifiez la configuration de Lilo. Lorsque vous recompilez le noyau et que vous remplacez votre image, vous devez réinstaller Lilo.
La directive boot=
de /etc/lilo.conf dit à Lilo où il doit placer son amorceur primaire. En général, vous spécifirez soit le Master Boot Record (MBR) (/dev/hda) soit la partition de root de Linux (par exemple /dev/hda1 ou /dev/hda2).
Si vous avez un autre système d'exploitation installé sur votre disque, vous feriez mieux d'installer Lilo sur votre partition de boot plutôt que sur le MBR. Dans ce cas, vous devez rendre la partition "bootable" en utilisant la commande "a" de fdisk ou la commande "b" de cfdisk. Si vous n'écrivez pas sur le MBR, il sera plus simple de désinstaller Linux et Lilo si nécessaire.
Pour ma part je n'utilise pas les options LBA ou LARGE du BIOS (mais il faut dire que je n'utilise que Linux sur ma machine); ce sont des monstruosités qui nous sont imposées par les lacunes de l'architecture intel x86. Ceci implique que le noyau doit résider dans les 1024 premiers cylindres, mais cela n'est pas un problème vu que vous avez partitionné votre disque et que votre partition de root est sensée être petite (en tous cas, c'est comme ça que cela devrais être).
Si votre disque a un autre système d'exploitation, vous ne devez pas modifier les paramètres du BIOS, sinon, l'ancien système ne fonctionnera plus du tout. Toutes les distributions récentes de Lilo savent quoi faire des réglages LBA et LARGE.
Notez que le mot-clé "linear
" dans le /etc/lilo.conf peut vous être utile si vous avez des problèmes de géométrie. Il indique à Lilo que l'adressage des secteurs doit se faire linéairement plutôt qu'avec le triplet secteurs/têtes/cylindres. La conversion des adresses 3D est reportée à l'exécution, par conséquent, rendant la configuration immunisée contre les problèmes de géométrie.
Si vous avez plusieurs disques et que certains qui ne sont utilisés que par Linux ne sont pas nécessaires durant le boot, vous pouvez les enlever de votre BIOS, votre système démarrera plus rapidement et Linux détectera tous les disques. Je change souvent les disques de mon ordinateur, mais je ne touche jamais au BIOS.
Quand vous voyez le prompt Lilo, vous pouvez taper sur la touche <Tab> pour voir les différents choix possible. Si Lilo n'est pas configuré pour être interactif, gardez la touche <Tab> ou <Shift> pressée avant que le message "LILO" n'apparaisse.
Si vous choisissez de booter sur un noyau Linux, vous pouvez ajouter des arguments après le nom du système que vous choisissez. Le noyau accepte de nombreux arguments. Tous les arguments sont listés dans le "BootPrompt-HOWTO" de Paul Gortmaker, et je ne vais pas le reproduire ici. Quelques arguments sont, par ailleurs, très importants et se doivent de figurer ici :
root=
: vous pouvez dire au noyau de monter une partition root différente de celle qui se trouve dans le lilo.conf. Par exemple, mon système a une toute petite partition qui a un système Linux minimal, et j'ai réussi à booter après avoir détruit ma partition root par erreur.
init=
: depuis la version 1.3.43 du noyau, vous pouvez utiliser une commande autre que /sbin/init. si vous avez de graves problèmes durant le démarrage, vous pouvez accéder à un système minimal en spécifiant init=/bin/sh
(quand vous arriverez au prompt du shell, vous aurez certainement besoin de vos partitions, essayez "mount -w -n -o remount /; mount -a
", et n'oubliez pas de faire un "umount -a
" avant d'éteindre).
Quand Lilo écrit sur un secteur de boot, il en sauve une copie dans /boot/boot.xxyy, ou xxyy sont les nombres majeurs et mineurs du périphérique. Vous pouvez voir les nombres majeurs et mineurs de votre disque ou partition en lançant "ls -l /dev/device
". Par exemple le premier secteur de /dev/hda (majeur 3, mineur 0) sera sauvé dans /boot/boot.0300, en installant Lilo sur /dev/fd0 on aura un fichier /boot/boot.0200 et sur /dev/sdb3 créera /boot/boot.0813. Notez que Lilo ne créera pas le fichier s'il existe déjà, vous n'aurez donc pas à faire une sauvegarde quand vous réinstallerez Lilo (après avoir recompilé votre noyau par exemple). Les copies de /boot/ sont toujours les sauvegardes d'avant la première installation de Lilo.
Si jamais vous avez besoin de désinstaller Lilo (par exemple, dans le cas où vous auriez malheureusement à désinstaller Linux), vous aurez besoin de restaurer le secteur de boot original. Si Lilo est installé sur /dev/hda, faites "dd if=/boot/boot.0300 of=/dev/hda bs=446 count=1
" (personnellement, je fais simplement "cat /boot/boot.0300> /dev/hda
", mais ce n'est pas toujours fiable, car cela restaurera la table des partitions, que vous avez peut être modifié depuis). Cette commande est bien plus simple que d'essayer de lancer "fdisk /mbr
" depuis la ligne de commande DOS : elle vous permet de supprimer Linux d'un disque à partir de Linux. Après avoir supprimé Lilo, n'oubliez pas de supprimer la partition Linux avec fdisk (le fdisk du DOS est incapable de supprimer les partitions non-dos).
Si vous avez installé Lilo sur votre partition de root (par exemple /dev/hda2), vous n'avez rien de spécial à faire pour supprimer Lilo, lancez juste le fdisk de Linux pour supprimer la partition. Vous aurez aussi à marquer la partition DOS bootable.