Booter avec LILO

Qing LIU (qliu chez club-internet.fr)

Version 0.4, 4 septembre 2004


1. Introduction
2. Quelques notions préliminaires
   2.1 Le MBR
   2.2 Les partitions
   2.3 La dénomination des partitions
3. Installation, suppression, restauration de LILO
   3.1 Précautions à prendre: fabriquer une disquette de boot
   3.2 Installer LILO
   3.3 Suppression de LILO
   3.4 Restauration de LILO
   3.5 Options de commmandes de LILO
4. Configuration de LILO: le fichier lilo.conf
   4.1 Vous n'avez que Linux sur le PC
   4.2 Vous avez un autre OS que Linux
   4.3 LILO sur deux disques d'un même ordinateur
   4.4 lilo: à consommer sans modération
5. Options de configuration avancées
   5.1 Passer des options aux noyaux
   5.2 Le 1024ième cylindre
   5.3 Chargement d'un ramdisk
   5.4 LILO graphique
   5.5 Francisation du clavier
   5.6 Cohabitation avec OS/2
   5.7 Cohabitation avec d'autres gestionnaires de boot
   5.8 Fabriquer une disquette contenant LILO
   5.9 Autres options tordues
6. Résolution de problèmes
7. Documentation

1. Introduction

Comme tout système d'exploitation, Linux a besoin d'un chargeur de boot (boot loader, désolé pour le franglais) pour démarrer sur un disque dur. LILO (LInux LOader) est fait pour ça. Il permet aussi de booter d'autres systèmes d'exploitation sur le même PC, de choisir différents noyaux et de leur passer des options sous Linux. Ce document a pour but d'expliquer brièvement quelques notions de base de LILO, de donner quelques exemples de configuration et d'essayer d'aller plus loin pour les lecteurs plus curieux.

La plupart du temps, LILO est installé et configuré correctement lors de l'installation de votre distribution, et vous n'avez pas à vous en préoccuper. Mais parfois un changement volontaire ou involontaire dans le système peut nécessiter votre intervention, il est alors indispensable de s'intéresser un minimum au fonctionnement de LILO. Sur l'internet la litérature concernant LILO ne manque pas (voir la section Documentation), j'espère que le présent document apporte quelques compléments utiles.

La version la plus récente de ce document se trouve sur http://qliu.free.fr/Linux/. Merci de m'envoyer vos remarques et critiques. Et merci à ceux qui l'ont déjà fait :)

Convention. Quand j'écris LILO, cela signifie l'ensemble du programme, tandis que lilo réfère plus spécifiquement à la commande /sbin/lilo.

[Sommaire]


2. Quelques notions préliminaires

Je rappelle ici quelques notions de base qui ne sont pas directement liées à lilo, mais dont la connaissance ne nuit pas à la compréhension du fonctionnement de lilo. À la première lecture vous pouvez sauter cette section, quitte à y revenir si quelque chose vous échappe dans la suite.

2.1 Le MBR

Un disque dur comporte un MBR (Master Boot Record) et des partitions. Le MBR est le tout premier secteur du disque et est de taille 512 octets, comme tout secteur. Les 446 premiers octets correspondent au MBR proprement dit. Ils sont réservés au chargeur de boot. Ensuite, la table des partitions occupe 64 octets, chaque partition primaire ou étendue est codé sur 16 octets. Les 2 pauvres derniers octets contiennent un code d'identification de secteur de boot permettant de savoir si le périphérique est bootable.

Chaque partition contient aussi un MBR qu'on appelle plutôt secteur de boot. C'est le premier secteur de la partition.

2.2 Les partitions

Généralement, on divise un disque dur en des partitions. C'est plus pratique pour s'organiser, et c'est indispensable si on veut installer un chargeur de boot sur ce disque.

Sur un disque dur (PC), on peut créer au maximum quatre partitions primaires (ou dites principales) ou trois partitions primaires et une partition étendue. Dans une partition étendue on peut créer une partition logique plus une partition étendue secondaire. Celle-ci peut contenir à son tour une autre partition logique+partition étendue secondaire. Il n'y a pas de différence importante entre partition primaire et partition logique. LILO peut s'installer aussi bien dans le MBR du disque dur que dans (le secteur de boot de) n'importe quelle partition primaire ou logique (à condition que ce soit un disque maître s'il s'agit d'un disque IDE).

On peut créer beaucoup de partitions logiques avec ce jeu. Linux peut gérer jusqu'à 63 partitions par disque IDE et 15 partitions par disque SCSI.

2.3 La dénomination des partitions

La régle de notations des périphériques (disques durs, lecteurs de CD-Rom, Dvd) est la suivante:
  • Le périphérique IDE maître sur le premier port est /dev/hda
  • Le périphérique IDE esclave sur le premier port est /dev/hdb
  • Le périphérique IDE maître sur le deuxième port est /dev/hdc
  • Le périphérique IDE esclave sur le deuxième port est /dev/hdd
  • ...
  • Le premier disque dur SCSI détecté est /dev/sda
  • Le deuxième disque dur SCSI détecté est /dev/sdb
  • ...
  • Le lecteur de disquette est /dev/fd0. Si vous avez l'idée saugrenue :) de posséder un deuxième lecteur de disquette, il s'appellera /dev/fd1.

    La régle de numérotation des partitions d'un disque dur est la suivante:

  • Les partitions primaires et la partition étendue sont numérotées de 1 à 4. Dans l'exemple ci-dessous, /dev/hda1, /dev/hda3, /dev/hda4 sont des partitions primaires et /dev/hda2 la partition étendue.
  • Les partitions logiques sont numérotées obligatoirement à partir de 5. Par exemple /dev/sda5, /dev/sda6...
  • Par exemple,
    # fdisk -l /dev/hda
    
    Disk /dev/hda: 255 heads, 63 sectors, 2495 cylinders
    Units = cylinders of 16065 * 512 bytes
    
       Device Boot    Start       End    Blocks   Id  System
    /dev/hda1             1        97    779121   83  Linux
    /dev/hda2           132      1747  12980520    f  Win95 Ext'd (LBA)
    /dev/hda3   *      1748      2495   6008310    c  Win95 FAT32 (LBA)
    /dev/hda4            98       131    273105   83  Linux
    /dev/hda5           132       380   2000061   83  Linux
    /dev/hda6           381       617   1903671   83  Linux
    /dev/hda7           618       634    136521   82  Linux swap
    ...
    
    La partition /dev/hda3 est "active" comme signalé par le signe *.

    ATTENTION. Si vous utilisez devfs, la dénomination est complètement différente.

    [Sommaire]


    3. Installation et suppression de LILO

    NOTE. Dans tout ce qui suit, les commandes précédées d'un # sont exécutées par root, le super utilisateur. Celles précédées d'un $ peuvent être exécutées par un utilisateur normal.

    3.1 Précautions à prendre: fabriquer une disquette de boot

    Avant d'installer ou de modifier la configuration de lilo:

  • Si vous travailliez avec windows, assurez-vous d'avoir une disquette de boot fonctionnelle. Si vous êtes sous Linux, préparez une disquette de boot avec l'outil de votre distribution (mkbootdisk, makebootdisk...) ou simplement avec
    # dd if=/boot/vmlinuz of=/dev/fd0 
    
    (si /boot/vmlinuz est le noyau que vous utilisez), et puis rdev /dev/fd0 /dev/hda5, si votre partition racine est /dev/hda5, pour être sûr que le noyau va monter la bonne partition pour /. Si vous ne savez pas quelle est la partition / chez vous, vérifiez avec mount | grep '/ '.

  • Si vous avez déjà lilo, utilisez le script mkrescue pour créer une disquette de boot.
  • Dans tous les cas, vérifiez que votre disquette de boot marche effectivement, ou que vous avez un CDRom en état de booter le système voulu. Nous verrons plus loin comment fabriquer une disquette de boot avec lilo dessus.

  • Il n'est pas ridicule de sauvegarder votre MBR (et la table des partitions primaires):
    # dd if=/dev/hda of=MBR-hda bs=512 count=1
    
    Remplacer /dev/hda par /dev/sda5 si vous voulez sauvegarder le secteur de boot de la partition /dev/sda5. La restauration se fait par
    # dd if=MBR-hda of=/dev/hda bs=512 count=1
    
    Attention à ne pas commettre de faute de frappe ! Explication rapide des options: if = Input File, of = Output File, bs = Block Size (en octets), et count est le multiplicateur. La taille totale est égale à bs x count.
  • 3.2 Installer LILO

    Si par extraordinaire, vous n'avez pas lilo dans votre système ou si vous voulez mettre à jour votre lilo, procurez-vous d'abord les sources lilo-x.y-tar.gz sur http://brun.dyndns.org/pub/linux/lilo/. Copier les sources dans /var/tmp, et
    $ cd /var/tmp 
    $ tar xvfz lilo-x.y.tar.gz 
    $ cd lilo-x.y/
    $ make
    $ su 
    # make install
    # mkdir -p /usr/doc/lilo-x.y
    # cp -r --parent [C-I]* R* doc/* sample/* /usr/doc/lilo-x.y/ 
    
    C'est tout (si c'est une mise à jour de lilo, ne pas oublier de relancer /sbin/lilo). Vous trouverez aussi sans peine des .rpm ou des .deb chers à votre distribution. Si vous n'aviez pas de lilo auparavent, il faut créer un fichier de configuration /etc/lilo.conf et exécuter /sbin/lilo. Nous verrons le contenu de lilo.conf plus loin.

    3.3 Suppression de LILO

    Si pour une raison ou une autre, vous souhaitez désinstaller LILO, la commande lilo -u ou lilo -U restaure l'état du secteur de boot avant l'installation de lilo. Si cela est insuffisant, un fdisk /MBR sous Dos efface lilo s'il a été installé dans le MBR du premier disque dur.

    3.4 Restauration de LILO

    Si LILO a été écrasé (par exemple par l'installation de Windows), vous pouvez booter avec une disquette de boot (voir ci-dessus) et relancer /sbin/lilo. Si vous n'avez pas de disquette de boot, vous pouvez encore utiliser le CDRom d'installation de votre distribution en mode rescue ou une disquette de secours du type tomsrtbt. Montez votre partition / et relancez LILO:
    # mount /dev/hda5 /mnt 
    # lilo -r /mnt 
    
    ou
    # chroot /mnt; /sbin/lilo
    

    3.5. Options de commande de LILO

    Voici quelques options de commande les plus utilisées:
  • /sbin/lilo -v : verbeux. On peut augmenter la verbosité en répétant le nombre de -v .
  • /sbin/lilo -t : mode de test. Juste pour savoir ce que ferait lilo.
  • /sbin/lilo -C fichier.conf : utiliser fichier.conf comme fichier de configuration au lieu de /etc/lilo.conf.
  • /sbin/lilo -r /MNT: effectuer un chroot sur la partition /MNT avant d'exécuter réellement lilo. Il utilisera alors les fichiers de la partition /MNT (les /MNT/etc/lilo.conf et /MNT/boot). C'est utile pour réparer LILO sur un disque dur, ou pour fabriquer une disquette de secours.
  • [Sommaire]


    4. Configuration de LILO: le fichier lilo.conf

    C'est la partie difficile de LILO.

    4.1 Vous n'avez que Linux sur le PC

    Pour faire simple, supposons que /dev/hda5 est votre partition /, et que vous décidez que le MBR du premier disque dur IDE sera géré par LILO. Votre /etc/lilo,conf doit ressembler à ceci:
    # Section des options globales
    boot = /dev/hda 
    prompt
    default = linux 
    timeout = 120
    compact 
    read-only
    # Fin de la section des options globales
    
    # Sections des options individuelles 
    image = /boot/vmlinz 
     label = linux 
     root =  /dev/hda5 
    
    image = /boot/vmlinz-bis 
     label = linux-2 
     append = "mem=128M reboot=warm" 
     root =  /dev/hda5 
    
    Explications: LILO permet de choisir parmi plusieurs configurations à booter : Linux avec des noyaux différents, ou plusieurs OS (systèmes d'exploitation). Chaque configuration possède ses propros options individuelles (aussi dites locales), les options globales s'appliquent à toutes les configurations, annulées par des options individuelles le cas échéant.

  • Options globales
    boot = /dev/hda # le chargeur de lilo sera dans le MBR de /dev/hda
    prompt # LILO affiche un prompt et vous laisse choisir la configuration à lancer.
    default = LABEL # La configuration LABEL à lancer par défaut, si aucun choix n'est fait au prompt.
    timeout = N # au bout de N dixièmes de secondes, LILO lance la configuration par défaut
    compact # Le boot est plus rapide
    read-only # La partition / sera montée en écriture seule. Cela ne concerne pas windows.
  • ATTENTION: Ne pas installer LILO dans le secteur de boot d'une partition Xfs (système de fichiers). En effet, Xfs écrit ses superblocs dans le secteur de boot (pour garder sa compatibilité avec son origine Irix). Mais l'installation de LILO dans le MBR du disque est tout à fait compatible avec Xfs.

  • Options individuelles ("local options" en anglais). Le nombre maximal de configurations était de 16 si mes souvenirs sont bons. À partir de la version 22.1, on peut en mettre jusqu'à 27.
    image = /boot/vmlinuz # spécifie le noyau Linux qui sera utilisé
      label = linux # On met un nom pour la configuration. C'est une chaîne, sans espace, d'au plus 15 caractères.
      append ="mem=128M reboot=warm" # Ici on mets des options pour le noyau.
    Voir kernel-parameters.txt dans /usr/src/linux/Documentation/ pour une liste des options disponibles pour le noyau. Attention, l'ensemble des options pour le noyau ne doit pas dépasser les 220 (environ) caractères. Le surplus est purement et simplement ignoré. On peut vérifier les options passées au noyau avec la commande dmesg | grep Kernel.

    4.2 Vous avez un autre OS que Linux

    Le cas le plus courant est la co-existence avec une version de Windows (9x, NT, 2k, XP). Mettons que le disque C: pour windows est /dev/hda1. Il suffit d'ajouter une configuration
    other = /dev/hda1 # partition de boot Windows
      label = windows
      table = /dev/hda # le disque contenant la table des partitions. Non nécessaire.
    Cela est tout aussi valable si vous avez un *BSD à la place de Windows. Pour résumer cette situation, le fichier /etc/lilo.conf ressemble à :
    boot = /dev/hda 
    prompt
    default = linux 
    timeout = 120
    compact 
    read-only
    
    image = /boot/vmlinz 
     label = linux 
     root =  /dev/hda5 
    
    image = /boot/vmlinz-bis 
     label = linux-2 
     append = "mem=128M reboot=warm" 
     root =  /dev/hda5 
    
    other = /dev/hda1 
     label = windows 
     table = /dev/hda 
    
    other = /dev/hdc2 
     label = FreeBsd
    
    

    4.3. LILO sur deux disques du même ordinateur.

    Je vois vous aimez la difficulité :). Les Bios récents permettent de choisir les unités de démarrage. Si on veut installer LILO dans le MBR de /dev/hdc (qui est, rappelons-le, le disque IDE maître du deuxième port) et choisir ce disque comme disque de démarrage, on édite un fichier /tmp/lilo-hdc.conf comme suit:
    boot = /dev/hdc  # on install LILO sur le MBR de /dev/hdc
    disk = /dev/hdc  # on dit au BIOS que /dev/hdc 
    bios = 0x80      # est le premier disque dur
    prompt
    default = linux 
    timeout = 120
    compact 
    read-only
    
    image = /boot/vmlinz 
      label = linux 
      root =  /dev/hda5 # ou n'importe quelle partition root
      read-only
    
    other = /dev/hdc1 
      label = win98 
    ...
    
    Il faut qu'il existe un système Linux sur /dev/hdc dont la partition root est, mettons, /dev/hdc2. Ensuite,
         # mount /dev/hdc2 /mnt
         # mv /tmp/lilo-hdc.conf /mnt/etc/
         # lilo -r /mnt -C etc/lilo-hdc.conf
    

    Une variante

    Une variante de la situation ci-dessus est la suivante: lilo sur /dev/hda qui contient un renvois vers un lilo sur un autre disque. Par exemple on a deux disques /dev/hda et /dev/hdb avec deux distributions différentes, une stable sur le premier disque et une en test sur le deuxième disque. On configure le lilo de /dev/hda comme dans 4.2, en ajoutant une section
    other = /dev/hdb
           label = distro-test 
    
    Dans la distribution sur /dev/hdb, on configure lilo pour qu'il s'installe dans /dev/hdb:
    boot = /dev/hdb
    prompt
    default = linux 
    timeout = 120
    compact 
    read-only
    
    image = /boot/vmlinz 
     label = linux 
     root =  /dev/hdb5 
           ...
    
    Lorsque le PC boot, on tombe sur le premier lilo. Le choix du label distro-test permet alors de lancer le lilo de /dev/hdb. Ainsi, vous pouvez jouer avec la distribution de /dev/hdb et son lilo sans toucher à /dev/hda. Pour ceux qui ont deux distributions sur un même disque, il suffit de remplacer /dev/hdb par la une partition racine de la deuxième distribution.

    4.4. lilo: à consommer sans modération

    Après toute modification de lilo.conf, changement de noyaux, éxecution de mkinitrd, changement de disques ou de partitions... NE PAS OUBLIER de relancer /sbin/lilo:
    # /sbin/lilo
    Added linux *
    Added linux-2
    Added windows
    Added FreeBsd
    
    (le symbole * marque la configuration qui sera bootée par défaut). Beaucoup d'erreurs du boot avec LILO sont causées par l'oubli de cette étape. On peut considérer cela comme un défaut de LILO, mais il faut faire avec pour l'instant. Grub est plus intelligent sur ce point.

    [Sommaire]

    5. Options de configuration avancées

    5.1. Passer des options aux noyaux

    Pour passer des options à un noyau avant qu'il soit chargé par LILO, on tape sur [TAB] ou [ESC] et on entre les options au prompt de LILO:
         LILO: linux 3 root=/dev/hda5 mem=128M video=matrox:vesa:259,fv:80
    
    Ici on indique au noyau le "runlevel" (qui devra être 3), la partition /, la quantité de mémoire vive et des paramètres du mode d'affichage en frambuffer. En cas de problème, les options souvent utilisées sont le runlevel, init=/bin/sh, root=/dev/hda5...

    5.2. Le 1024ième cylindre

    Il fut un temps où le Bios du PC ne voyait pas la partie du disque au delà du 1024ième cylindre. Ce qui interdisait le démarrage par LILO si le noyau à booter se trouve physiquement après le 1024ième cylindre. Ce problème est résolu depuis 1998 côté Bios, et la version 21.3 côté LILO. Il suffit d'ajouter l'option globale
         lba32
    
    dans /etc/lilo.conf. Voir aussi ma petite note pour plus de détail.

    5.3. Chargement d'un ramdisk (initrd)

    Certaines distributions ont pour principe de mettre le maximum d'options du noyau en modules, y compris les options les plus fondamentales (support SCSI, de certains systèmes de fichiers...). Cela a l'avantage de réduire la taille du noyau, mais complique légèrement le processus du boot. Car le noyau a besoin de monter la partition / pour accéder aux modules, mais s'il n'a pas la capacité de monter cette partition (par exemple par absence du support du disque contenant la partition), cela va créer un cercle vicieux. Le but de l'initrd est de charger des modules indispensables au fonctionnement du noyau dans un ramdisk, avant que la partition / soit montée. Voir /usr/src/linux/Documentation/initrd.txt pour plus d'information. Si vous avez un noyau vmlinuz-2.x.y, vous utilisez mkinitrd pour créer une image initrd-2.x.y.img qui sera chargée dans le ramdisk (man mkinitrd). Il faut ensuite renseigner lilo.conf de l'existence de ce ramdisk:
        image=/boot/vmlinuz-2.4.18
          label=linux
          root=/dev/hda5
          initrd=/boot/initrd-2.4.18.img   
    

    5.4. LILO graphique

    À partir de la version 2.1.5, LILO offre un menu semi-graphique qui permet de naviguer parmi les configurations avec les flèches du clavier. Une fois la configuration choisie, on peut rentrer éventuellement des options au noyau. Le mode texte à l'ancienne existe encore, et est activé avec l'option globale
        install=/boot/boot-text.b
    
    À partir de la version 22, on peut même lancer LILO sur un fond d'écran composé d'une image bmp de résolution 640x480 en 16 couleur. Pour activer ce mode, il faut l'indiquer explicitement dans les options globales:
        bitmap = /boot/ins64a.bmp
        bmp-colors = 6,9,0,15,9,0
        bmp-table = 21,287p,2,4,175p
        bmp-timer = 73,29,12,8,0
        install=/boot/boot-bmp.b
    
    La première ligne indique l'emplacement du fichier bmp (celui de l'exemple est contenu dans le package lilo-22.x.y/sample), les autres options bmp-* concernent l'affichage de l'image. J'avoue que la syntaxe est assez hermétique pour moi...

    5.5. Francisation du clavier

    Quand il faut passer des options au noyau au prompt de LILO, il est bien pratique d'avoir un clavier français fonctionnel. Supposons que vous utilisiez fr-latin1 comme carte de clavier (key map). Il faut d'abord créer un fichier de translation avec la commande
         keytab-lilo.pl fr-latin1 > /boot/fr.ktl
    
    Si la carte n'est pas trouvée, il faut la localiser, locate fr-latin1.map (ou locate fr-latin1.kmap), ensuite
         keytab-lilo.pl /chemin/de/us.map /chemin/de/fr-latin1.map > /boot/fr.ktl
    
    (remplacer *.map par *.map.gz ou *.kmap le cas échéant). Enfin, ajouter
         keytable = /boot/fr.ktl
    
    dans les options globales de /etc/lilo.conf et relancer /sbin/lilo.

    5.6. Cohabitation avec OS/2

    Si vous avez OS/2 sur par exemple /dev/hdb5, il faut mettre
        other = /dev/hdb5
          label = OS2
          loader = /boot/os2_d.b 
          table  = E:  
    
    Ici la lettre E: est à remplacer par celle qui désigne la partition /dev/hdb5 dans la convention Dos.

    5.7. Cohabitation avec d'autres gestionnaires de boot

    Il existe de nombreux gestionnaires de boot capables de supporter le démarrage de plusieurs types de systèmes d'exploitation: grub, xsol, gag, smart boot manager, ntld. Il devrait y avoir sur le site www.linux-france.org une page qui en fait l'inventaire. Si on laisse l'un de ces gestionnaires prendre en charge le MBR, on peut installer LILO dans le secteur de boot d'une partition et laisser le gestionnaire de MBR booter cette partition. On met alors
        boot=/dev/hda5
    
    (par exemple) au lieu de boot=/dev/hda dans lilo.conf. Attention cependant que tous les gestionnaiers de MBR en sont pas capables de booter sur une partition logique !

    5.8. Fabriquer une disquette contenant LILO

    Le but est de fabriquer une disquette de boot avec le noyau de votre choix et de pouvoir passer des options à ce noyau au prompt de LILO. C'est pratique de l'utiliser quand la configuration du système a changé ou si on veut l'utiliser sur une autre machine (mais il faut que le noyau soit adapté). Vous pouvez bien sûr utiliser une disquette root/boot comme la tomsrtbt. Mais la procédure ici est plus simple et plus rapide à booter.

    Le package lilo-22.x vient avec un script mkrescue qui est installé dans /sbin. Il est très simple à utiliser. Placer une disquette dans le lecteur, et taper

    # mkrescue --kernel /boot/vmlinuz-x.y --initrd /boot/initrd-x.y.img 
    
    C'est tout. L'option --initrd n'est utile que si vous utilisez un ramdisk. Si l'option --kernel est absente, le noyau courant sous lequel le système est en train de tourner sera utilisé. mkrescue --help liste toutes les options possibles. À partir de la version 22.3.1, mkrescue utilise la même carte de clavier que celle configurée dans lilo.conf. Les distributions ont en général leurs propres scripts de fabrication de disquette de boot: mkbootdisk pour les RedHat-like (y compris Mandrake) et liloconfig pour Slackware.

    Si on veut s'amuser un peu ou introduire des variantes, on peut aussi fabriquer la disquette à la main. Pour cela, éditer un fichier /root/fd-lilo.conf dont le contenu est le suivant:

        boot=/dev/fd0 
        map=/mnt/floppy/map
        install=/mnt/floppy/boot-menu.b    
        keytable=/mnt/floppy/fr.ktl    
        geometric
        compact       ## peut ne pas marcher sur certains systèmes 
        delay=50
        prompt
        image = /mnt/floppy/vmlinuz
          label = linux
          root = /dev/hda5 
          read-only 
    
    (ne pas oublier de passer le paramètre root=/dev/... au noyau si on est amené à booter sur une partition racine différente de celle indiquée). Inserrer une disquette dans le lecteur et passer sous root.
        # mke2fs /dev/fd0
        # mount /dev/fd0 /mnt/floppy 
        # cd /boot
        # cp vmlinuz boot-menu.b map fr.ktl /mnt/floppy
        # lilo -C ~/fd-lilo.conf 
    
    Et voilà. C'est essentiellement ce que fait mkrescue, mais de façon bien plus rudimentaire. Chez moi, l'option install=/mnt/floppy/boot-menu.b provoque le message d'erreur "Map segment is too big" sous LILO 21.5. Ce problème est résolu soit en passant à la version 22, soit en utilisant boot-text.b à la place de boot-menu.b.

    5.9. Autres options tordues

    Pour les autres options de configuration, man lilo.conf s'impose. Voir aussi les liens documentation.

    [Sommaire]

    6. Résolution de problèmes

    Tout d'abord, LILO a fini son travail lorsque vous voyez paraître la ligne
        Loading linux...
    
    (linux représente le label, ça peut être linux-2, windows etc). On n'a pas trop le temps de la voir si on boot sur un disque dur :). À partir de ce moment là, le noyau est le seul maître à bord. Les problèmes qui surviennent après n'ont rien à voir avec LILO, sauf peut-être les paramètres que vous passez au noyau par son intermédiaire.

    Si vous n'arrivez pas à ce stade, c'est que LILO a échoué. Dans ce cas, il y a toujours un code d'erreurs sous la forme d'une partie des lettres LILO et des chiffres. La plupart du temps cela est dû à un problème de reconnaissance de la géométrie du disque, ou un oubli de ré-exécution de /sbin/lilo après des modifications de fichiers.

    Suite de la section quand j'aurai plus temps...

    [Sommaire]

    7. Documentation

    Le package lilo-x.y.tar.gz contient des fichiers README et lilo-x.y/doc/{tech.tex, user.tex} qui sont très complets et instructifs (les fichiers TeX sont aussi en pdf dans les versions récentes de LILO). On peut trouver le Lilo-mini-howto en français dans http://www.freenix.org/unix/linux/HOWTO/mini/. Par ailleurs, toujours en français, la FAQ de fcol (groupes de discussions fr.comp.os.linux.*) contient une section assez conséquente sur LILO.

    [Sommaire]