2. Vue d'Ensemble des Paramètres de Démarrage

Contenu de cette section

Cette partie donne un certain nombre d'exemples de logiciels qui peuvent être utilisés pour transmettre les paramètres de démarrage au noyau. Elle donne aussi une idée de la façon dont les paramètres sont traités, quelles sont les limitations des paramètres de démarrage, et la façon dont ils sont répartis vers chaque périphérique pour lesquels ils ont été conçus.

Il est important de noter que l'on ne peut pas utiliser d'espaces dans un paramètre de démarrage, mais seulement entre des paramètres différents. Une liste de valeurs correspondant à un seul paramètre doit utiliser des virgules comme séparateur entre les différentes valeurs, là aussi, sans aucun espace. Voir les exemples ci-dessous.


        ether=9,0x300,0xd0000,0xd4000,eth0  root=/dev/hda1            *BON*
        ether = 9, 0x300, 0xd0000, 0xd4000, eth0  root = /dev/hda1    *MAUVAIS*

2.1 LILO (LInux LOader)

Le programme LILO (LInux LOader) écrit par Werner Almesberger est le plus couramment utilisé. Il a la capacité de démarrer différents noyaux, et stocke les informations de configuration dans un fichier contenant exclusivement du texte. Beaucoup de distributions fournissent LILO comme "boot-loader" (chargeur de noyau) par défaut. LILO peut démarrer DOS, OS/2, Linux, FreeBSD, etc. sans aucun problème, et il est très souple.

Une configuration classique est d'avoir LILO qui arrête le démarrage et affiche LILO: peu de temps après que vous ayez allumé votre ordinateur. Il attendra alors quelques instants en vue d'une eventuelle saisie de l'utilisateur, faute de quoi il lancera le système d'exploitation par défaut. Les étiquettes couramment utilisées dans les fichiers de configuration de LILO sont linux , backup et msdos. Si vous désirez entrer un paramètre de démarrage, vous le taperez ici, après avoir entré l'étiquette du système que vous voulez que LILO lance, comme indiqué dans l'exemple ci-dessous.


        LILO: linux root=/dev/hda1

LILO est fourni avec une documentation excellente, et pour les paramètres de démarrage dont nous parlons ici, la commande append= de LILO est d'une très grande importance lorsque l'on veut ajouter un paramètre de démarrage de façon permanente dans le fichier de configuration de LILO. Vous ajoutez tout simplement quelque chose comme append = "foo=bar" dans le fichier /etc/lilo.conf. On peut l'ajouter soit en haut du fichier de configuration, afin qu'il s'applique à toutes les sections, ou dans une section correspondant à un système particulier en le mettant dans une section image=. Voyez la documentation de LILO pour une description plus complète.

2.2 LoadLin

L'autre chargeur de noyau couramment utilisé est `LoadLin' qui est un programme DOS qui est capable de lancer un noyau Linux à partir du prompt du dos (avec des paramètres de démarrage) en supposant que certaines ressources sont disponibles. Ceci est très bien pour les gens qui utilisent le DOS et qui veulent basculer sur Linux à partir du DOS.

C'est aussi très pratique si vous possédez du matériel qui est dépendant du pilote fourni pour le DOS afin de mettre le matériel dans un état donné. Un exemple fréquent : les cartes son `SoundBlaster Compatible' qui requièrent un pilote DOS pour positioner un ensemble de registres propriètaires pour mettre la carte dans un mode compatible SoundBlaster. Démarrez le DOS avec le pilote requis, et maintenant chargez Linux à partir du prompt du DOS avec LOADLIN.EXE en esquivant la remise à zéro de la carte qui intervient si on redémarre complètement la machine. De cette façon, la carte est laissée dans le mode compatible SB et par conséquent est utilisable sous Linux.

Il y a aussi d'autres programmes qui peuvent être utilisés pour démarrer Linux. Pour une liste complète, regardez sur votre miroir ftp Linux local, les programmes disponibles dans le répertoire system/Linux-boot/.

2.3 L'utilitaire ``rdev''

Un certain nombre des paramètres de démarrage du noyau ont leurs valeurs par défaut stockées dans différents octets de l'image du noyau. Il existe un utilitaire baptisé rdev qui est installé sur la plupart des systèmes et qui sait où sont ces valeurs, et comment les changer. Il peut aussi modifier un certain nombre de choses qui ne possèdent pas de paramètre de démarrage équivalent, comme le mode vidéo utilisé par défaut.

L'utilitaire rdev est couramment associé à swapdev, ramsize, vidmode et rootflags. Les cinq paramètres que rdev peut modifier sont : le périphérique de démarrage, le périphérique de swap, les paramètres du disque RAM, le mode vidéo par défaut, et l'autorisation de lecture-seule/lecture-écriture sur le périphérique racine.

Des informations plus complètes sur rdev peuvent être obtenues en tapant rdev -h ou en lisant la page correspondante du manuel fourni (man rdev).

2.4 Comment le noyau gère t-il les paramètres ?

La plupart des paramètres de démarrage utilisent la syntaxe suivante :


        nom[=valeur_1][,valeur_2]...[,valeur_11]

où `nom' est un mot clé unique qui est utilisé pour reconnaître à quelle partie du noyau sont destinées les valeurs associées (si il y en a). Plusieurs paramètres de démarrage peuvent être transmis sous forme d'une liste d'éléments, comme celle situé ci-dessus, séparés par des espaces. Notez que la limite de 11 paramètres est réelle, c'est pourquoi le code ci-dessus ne comporte que 11 paramètres séparés par des virgules pour un mot clé. Toutefois, vous pouvez réutiliser le même mot clé avec 11 paramètres de plus dans des situations très complexes, en sachant que ceci est accepté par la fonction de configuration. Notez aussi que le noyau partage la liste en un maximum de 10 paramètres entiers, et une chaîne de caractères accompagnatrice, donc vous pouvez réellement fournir 11 entiers, dans la mesure ou vous assurez la conversion du 11ème paramètre, de chaîne en entier, dans le pilote lui même.

La plupart sont pris en charge par linux/init/main.c. Tout d'abord, le noyau cherche à voir si le paramètre fait partie des paramètres spéciaux comme `root=', `ro', `rw', ou `debug'. La signification de ces paramètres spéciaux est décrite plus loin dans ce document.

Il parcourt alors une liste de fonctions de configuration (contenues dans le tableau bootsetups) pour voir si la chaîne paramètre spécifiée (comme par exemple `foo') a été associée à une fonction de configuration (foo_setup()) pour un périphérique particulier ou une partie du noyau. Si vous passez au noyau la ligne foo=3,4,5,6,bar alors, il cherchera dans le tableau bootsetups pour voir si `foo' y figure. S'il y est, alors il pourra appeler la fonction de configuration associée à `foo' (foo_setup()) et prendra en charge les paramètres 3, 4, 5 et 6 tels qu'ils sont donnés dans la ligne de commande adressée au noyau, et traitera aussi le paramètre de type chaîne bar.

2.5 Positionnement des Variables d'Environnement.

Quelque chose du type `foo=bar', qui n'est pas accepté comme une fonction de configuration telle qu'elle est décrite ci-dessus, est interprétée comme une variable d'environnement à positionner. Un exemple (inutile ?) serait d'utiliser `TERM=vt100' comme paramètre de démarrage.

2.6 Passer des paramètres au programme `init'

Tous les paramètres restants qui ne sont pas pris par le noyau et qui ne sont pas considérés comme étant des variables d'environnement sont transmis au processus initial, qui est généralement le programme init. Le paramètre le plus couramment passé au processus init est le mot single qui demande à init de démarrer l'ordinateur en mode mono-utilisateur, et de ne pas lancer les "daemons" (démons) habituels. Regardez la page du manuel correspondant à la version de init installée sur votre système, afin de connaître les paramètres acceptés.


Chapitre suivant, Chapitre Précédent

Table des matières de ce chapitre, Table des matières générale

Début du document, Début de ce chapitre