lilo.conf

Le fichier /etc/lilo.conf est lu lors de l'installation du chargeur Lilo. La forme générale du fichier est :

boot = /dev/hda
delay = 40
compact
vga = normal
root = /dev/hda1
read-only
image = /vmlinuz-2.2.11-1smp
label = linux
image = /vmlinuz-2.2.10-smp-modular
label = old
image = /tamu/vmlinuz
label = tamu
root = /dev/hdb2
vga = ask
other = /dev/hda3
label = dos
table = /dev/hda

Ce fichier de configuration indique que Lilo utilise le secteur de boot principal (Master Boot Record) sur le disque /dev/hda. Au démarrage, le chargeur va attendre 4 secondes (40 dixièmes de seconde) pour une éventuelle pression sur SHIFT. Cette action déclenchera une demande de la part de Lilo interrogeant l'utilisateur sur l'image à utiliser. En pressant la touche [TAB] (ou [?] sur les claviers US), la liste des choix possibles sera affichée. Si on ne presse pas SHIFT, l'image du premier noyau (ici vmlinuz-2.2.11-1smp) sera chargée.

Il est alors possible de démarrer sur un noyau flambant neuf, sur un noyau plus ancien, ou sur un noyau situé sur un autre système de fichiers principal (juste au cas où l'on vient de faire une ânerie sur le système racine habituel). Gros avantage, Lilo permet également de démarrer sur un autre système d'exploitation.

Il peut y avoir jusqu'à 16 images différentes dans lilo.conf.

Comme on peut le voir ci-dessus, un fichier de configuration commence avec un certain nombre d'options globales (les 6 premières lignes de l'exemple), puis viennent les options pour chacune des images à gérer. Lorsqu'une option est indiquée pour une image donnée, elle a priorité sur la valeur de l'option globale correspondante.

Options globales

Il existe plusieurs mots-clés, les descriptions ci-dessous sont extraites de user.tex (un peu abrégées).

backup = backup-file
Copier le secteur de boot original dans le fichier backup-file (qui peut également être un périphérique, par exemple /dev/null) à la place de /boot/boot.NNNN

boot = boot-device
Indique le nom du périphérique (ex: une partition de disque dur) qui contient le secteur de boot. Si ce mot clé est omis, le secteur de boot lu (et éventuellement écrit) est celui du périphérique actuellement monté comme racine du système de fichiers.

compact
Essaye de regrouper les lectures de secteurs adjacentes en une seule requête. Ceci réduit nettement le temps de chargement et la taille du fichier de carte. L'utilisation de "compact" est surtout recommandée lorsque l'on boot depuis une disquette.

default = name
Utiliser par défaut l'image indiquée. Si "default" est omis, la première image du fichier de configuration est utilisée comme image par défaut.

delay = dsecs
Indique la durée (en dixième de secondes) pendant laquelle le chargeur attendra avant de démarrer la première image. Ceci est utilisé sur les systèmes qui bootent immédiatement sur le disque dur après avoir mis le clavier en marche. Si "delay" est absent, ou si la valeur est nulle, le chargeur n'attend pas.

disk = device-name
Précise les valeurs des paramètres non standards du disque indiqué. Voir la section "Géométrie du disque" dans user.tex pour plus de détails.

disktab = disktab-file
Indique le nom d'un fichier de paramètres pour le disque. Si cette option est absente, le fichier /etc/disktab est recherché. Il vaut mieux éviter d'utiliser ces fonctionnalités.

fix-table
Ceci permet à Lilo d'ajuster les adresses 3D (secteur / tête / cylindre) de la table des partitions. Chaque partition possède une adresse 3D et une adresse linéaire pour son premier et son dernier secteur.

Si la partition n'est pas alignée sur une frontière de piste, et si certains autres systèmes d'exploitation (MS-Dos ou OS/2) utilisent le même disque, ils peuvent modifier l'adresse 3D. Lilo ne peut installer son secteur de démarrage que sur des partitions où les deux types d'adressage correspondent. Si l'option "fix-table" est indiquée, Lilo réajustera les adresses 3D incorrectes.

ATTENTION :

Ceci ne garantit pas que les autres systèmes d'exploitation ne vont pas essayer de modifier à nouveau l'adressage plus tard. Il est également possible que ces corrections aient des effets de bords inattendus. La véritable correction à apporter consiste à repartitionner le disque avec un utilitaire qui aligne les partitions sur les frontières de pistes. De plus, avec certains disques (les gros EIDE avec une translation d'adresses automatique), et sous certaines circonstances, il est inévitable d'obtenir des conflits dans la table des partitions.

force-backup = backup-file
Comme "backup" mais écrase la sauvegarde précédente s'il y en a une.

ignore-table
Ne pas tenir compte des erreurs dans la table des partitions.

install = boot-sector
Utiliser le fichier indiqué comme secteur de démarrage. Si "install" est omis, /boot/boot.b sera utilisé par défaut.

linear
Crée des adresses de secteur linéaires plutôt que des adresses 3D (secteur / tête / cylindre). Les adresses linéaires sont traduites à l'exécution, et ne dépendent pas de la géométrie du disque. Notez que les disquettes de démarrage risquent de ne pas être portables d'une machine à l'autre si "linear" est utilisé, car les services BIOS pour déterminer la géométrie du disque ne fonctionnent pas bien avec les disquettes. Quand on utilise "linear" avec des gros disques, /sbin/lilo risque de générer des références à des zones de disque inaccessibles car les adresses 3D ne sont pas connues avant le boot.

lock
Autorise l'enregistrement de lignes de commande au démarrage comme choix par défaut pour les redémarrages ultérieurs. De cette façon, Lilo "vérouille" un choix jusqu'à ce qu'il soit écrasé manuellement.

map = map-file
Indique l'emplacement du fichier de carte des noyaux. Si "map" est omis, le fichier /boot/map est utilisé.

message = message-file
Indique l'emplacement d'un fichier contenant un message qui sera affiché avant l'invite de démarrage. Aucun message n'est affiché pendant l'attente de la touche SHIFT, après avoir imprimé "LILO". Dans ce message, le caractère FF (Ctrl-L) efface l'écran. La taille du message est limitée à 65535 octets. Le fichier carte doit être reconstruit si le message est modifié ou déplacé.

nowarn
Désactive les avertissements à propos de risques futurs.

optional
Correspond à l'option "optional" spécifique à une image, que l'on applique alors à toutes les images (voir plus bas).

password = motdepasse
Correspond à l'option "password" spécifique à une image, que l'on applique alors à toutes les images (voir plus bas).

prompt
Affiche obligatoirement l'invite de démarrage, sans réclamer de pression sur SHIFT. Un redémarrage intempestif (coupure électrique) de la machine est impossible si "prompt" est indiqué, et pas "timeout".

restricted
Correspond à l'option "restricted" spécifique à une image, que l'on applique alors à toutes les images (voir plus bas).

serial = paramètres
Autorise la prise de contrôle par une ligne série. Le port série mentionné est initialisé, et le chargeur accepte des instructions à la fois depuis le clavier et depuis le port.

L'émission d'un "break" sur la prise série est équivalente à la pression sur SHIFT afin de réclamer l'attention du chargeur. Toutes les images devraient être protégées par mots de passe si l'accès au port série est moins sécurisé que l'accès au clavier (par exemple à travers un modem). La chaîne de paramètres à la syntaxe suivante :

<port> [ ,<bps> [<parité> [<bits>]]]

<port> : numéro du port série (0 correspond à COM1, alias /dev/ttyS0). Les quatres ports (s'ils existent) peuvent être utilisés.

<bps> : vitesse du port série. Les vitesses suivantes sont supportées : 110, 150, 300, 600, 1200, 2400, 4800 et 9600 bps (2400 bps par défaut).

<parité> : parité utilisée sur la ligne. Le chargeur ignore la parité en entrée, et élimine le 8ième bit. Les lettres suivantes décrivent la parité : n aucune, e paire, o impaire.

<bits> : nombre de bits par caractères. Seuls les caractères de 7 et 8 bits sont supportés. (par défaut 8 si parité n, 7 si parité e ou o).

Si "serial" est indiqué, la valeur de "delay" est automatiquement portée à 20. Exemple : serial=0,2400n8 initialise COM1 avec les paramètres par défaut.

timeout = dsecs
Indique un délai (en dixième de secondes) pour la saisie au clavier. Si aucune touche n'est pressée durant ce délai, la saisie est abandonnée. Sur l'invite de connexion, l'image par défaut est lancée, sur la saisie de mot de passe, l'action est annulée. La valeur par défaut du timeout est infinie.

verbose = niveau
Valide de nombreux rapports de progression. Plus le nombre est élevé, plus Lilo sera volubile. Si -v est de plus ajouté sur la ligne de comande, le niveau sera augmenté. Le niveau maximal de volubilité est 5.

En outre, des paramètres de configuration du noyau "append", "ramdisk", "read-only", "read-write", "root" et "vga" peuvent être indiqués dans la section des options globales. Ils sont utilisés par défaut à moins d'être surchargés dans les sections de configurations spécifiques des images.

Sections spécifiques aux images

Une section spécifique à une image débute soit par une ligne image = chemin qui indique un fichier ou un périphérique contenant l'image d'un noyau Linux, soit par une ligne other = chemin pour indiquer le démarrage d'un autre système d'exploitation. Dans le premier cas, si la ligne image demande le démarrage depuis un périphérique, il faut également indiquer l'intervalle de secteurs à utiliser. Ceci se fait ainsi : range = debut-fin Dans le second cas (démarrer un autre système), il existe 3 options :

loader = chain-loader
Ceci indique le chargeur à utiliser. Par défaut /boot/chain.b est utilisé. Le chargeur doit être précisé si l'on démarre depuis un périphérique autre que le premier disque dur ou disquette.

table = device
Cette option spécifie le périphérique qui contient la table de partitions. Le chargeur ne transmettra pas les informations sur les partitions au système à démarrer si cette variable est omise (certains systèmes d'exploitation utilisent d'autres moyens pour déterminer la partition depuis laquelle ils démarrent, par exemple MS-Dos stocke habituellement les informations géométriques dans son secteur de démarrage). Notez que /sbin/lilo doit être relancé si une table de partitions référencée dans une option "table" est modifiée.

unsafe
Ne pas toucher au secteur de démarrage lors de la création de la carte. Ceci désactive certains contrôles, y compris la vérification de la table des partitions. Si le secteur de boot se trouve sur une disquette avec un format propriétaire, l'utilisation de UNSAFE évite d'avoir à insérer un disque lisible dans le lecteur durant l'installation de la carte. Les options "unsafe" et "table" sont mutuellement exclusives.

Dans tous les cas les options suivantes s'appliquent :

label = nom
Le chargeur utilise le nom de fichier principal (sans le chemin d'accès) de chaque image pour les identifier. On peut indiquer ici un nom différent qui sera utilisé lors de l'invite de connexion. NDT: Lors de l'invite de démarrage, le clavier est au format QWERTY, et vous avez probablement sous les yeux un clavier AZERTY. Aussi évitez d'utiliser des noms d'images employant les lettres A, Z, Q, W et M. Ceci ne pose aucun problème pour des étiquettes comme Linux, Unix, et même Dos, par contre il vaut mieux éviter d'utiliser Win (personnellement je trouve Ouin plus marrant).

alias = nom
Un deuxième nom peut être utilisé comme alias pour la même image.

lock
(voir au dessus)

optional
Omettre l'image si elle n'est pas présente lors de la création de la carte. Ceci est utile pour indiquer des noyaux de test qui ne sont pas toujours présents.

password = motdepasse
Protéger le chargement de l'image par un mot de passe.

restricted
Ne demander un mot de passe qui si l'on ajoute des paramètres sur la ligne de commade (par exemple "single" pour redémarrer en mode mono-utilisateur).

Options du noyau

Si l'image chargée est un noyau Linux, on peut ici passer des paramètres supplémentaires sur la ligne de commande.

append = chaîne
Ajoute l'option indiquée sur la ligne de commande transmise au noyau. Ceci est typiquement utilisé pour indiquer des paramètres matériels qui ne peuvent pas être auto-détectés, ou pour lesquels l'auto-détection peut être dangereuse. Par exemple : append = "hd=64,32,202".

literal = chaîne
Comme "append", mais élimine de surcroît toutes les autres options (par ex: l'emplacement du périphérique racine). Comme des options vitales peuvent être supprimées malencontreusement avec "literal", celle-ci ne peut pas apparaître dans les options globales.

ramdisk = taille
Indique la taille d'un disque virtuel optionnel. Une valeur nulle empêche la création du disque RAM. Si cette variable est omise, la taille du disque virtuel indiquée dans la configuration de l'image du noyau est utilisée.

read-only
Ceci indique que le système de fichiers racine doit être monté en lecture seule. Typiquement le démarrage du noyau remontera ce système en lecture / écriture plus tard (après l'avoir vérifié).

read-write
Ceci indique que le système de fichiers racine doit être monté en lecture / écriture.

root = root-device
Précise le périphérique à monter en tant que racine du système de fichier. Si le mot-clé "current" est utilisé en guise de root-device la racine du système actuel est utilisée. Si la racine a été changée avec l'option \-r, le périphérique correspondant est utilisé. Si la variable "root" est omise, le périphérique indiqué dans l'image du noyau est utilisé. (Il est positionné au moment de la compilation par la variable ROOT_DEV dans le fichier Makefile, et peut être changé ultérieurement avec le programme rdev (8).

vga = mode
Ceci précise le mode texte VGA à utiliser pendant le démarrage. Les valeurs suivantes sont autorisées (pas de différence majuscule / minuscule) :

normal
Mode texte 80x25 normal.

extended (ou ext)
Mode texte 80x50.

ask
Arrêter et demander à l'utilisateur (lors du démarrage).

<numéro> : Utiliser le mode texte correspondant. Une liste des modes disponibles peut être obtenue en démarrant avec vga = ask et en pressant [Entrée].

Si cette variable est omise, le mode VGA déclaré dans l'image du noyau est utilisé. (Le mode est indiqué à la compilation du noyau dans la variable SVGA_MODE du fichier Makefile, et peut être changé ultérieurement avec le programme rdev (8).

Copyright 1992-1994 Werner Almesberger

D'après la man page lilo.conf écrite par Werner Almesberger et traduite par Christophe Blaess.
Vous avez le droit de faire et de distribuer des copies de cette carte à condition que la notice de copyright et cette note d'autorisation soient conservées sur toutes les copies.

Linux Magazine France n° 5 - Avril 99

* Mini Howto français sur Lilo