Chapitre 7. Amorcer et configurer un système Linux

Table des matières

7.1. Le processus d'amorçage de Linux
7.2. Le programme init
7.3. Les niveaux d'exécution
7.4. Changer de niveau d'exécution
7.5. Scripts d'initialisation
7.6. Éditeur de niveaux d'exécution
7.7. SuSEconfig et /etc/sysconfig
7.8. L'éditeur de sysconfig de YaST

Résumé

L'amorçage d'un système Linux est une procédure complexe. De nombreux composants différents sont impliqués et doivent interagir sans heurts. Ce chapitre fournit une description sommaire des principes sous-jacents et des composants qui interviennent. Le principe des niveaux d'exécution et la configuration du système SUSE avec sysconfig sont également abordés ci-après.

7.1. Le processus d'amorçage de Linux

Le processus d'amorçage de Linux se compose de plusieurs étapes dont chacune est représentée par un autre composant. La liste suivante résume brièvement le processus d'amorçage et décrit tous les composants majeurs concernés.

  1. Le BIOS

    Une fois que l'ordinateur est allumé, le BIOS initialise l'écran et le clavier, puis teste la mémoire centrale. Jusqu'à ce stade, la machine n'accède à aucun support de stockage de masse. Par la suite, les informations sur la date et l'heure actuelles, ainsi que les périphériques sont chargés à partir des valeurs en mémoire non volatile (Réglages CMOS). Lorsque le premier disque dur et sa géométrie sont reconnus, le contrôle du système passe du BIOS au chargeur d'amorçage.

  2. Le chargeur d'amorçage

    Le premier secteur de données physiques de 512 octets du premier disque dur est chargé dans la mémoire centrale et le chargeur d'amorçage, placé au début de ce secteur, prend le contrôle. Les commandes exécutées par le chargeur d'amorçage déterminent le reste du processus d'amorçage. Par conséquent, les 512 premiers octets du disque dur sont appelés Master Boot Record (MBR, secteur d'amorçage maître). Le chargeur d'amorçage passe ensuite le contrôle au système d'exploitation proprement dit, dans ce cas, le noyau Linux. Vous trouverez plus d'informations sur GRUB, le chargeur d'amorçage de Linux dans Chapitre 8, Le gestionnaire d'amorçage.

  3. Le noyau et initrd

    Pour transmettre le contrôle du système, le chargeur d'amorçage charge à la fois le noyau et un disque virtuel (RAM disk) initial en mémoire. Le noyau Linux offre la possibilité d'avoir de petits systèmes de fichiers chargés dans un disque virtuel et de lancer des programmes avant que le système de fichiers racine proprement dit ne soit monté. Le noyau décompresse ensuite l'initrd et le monte à titre de système de fichiers racine temporaire. Le contenu d'initrd est un système Linux minimal qui contient un exécutable appelé linuxrc. Cet exécutable est exécuté avant que le système de fichiers racine réel ne soit monté. Lorsque cela est possible, le noyau libère la mémoire occupée par initrd et démarre init dès que linuxrc a terminé sa tâche. Vous trouverez plus d'informations sur initrd dans Section 7.1.1, « initrd ».

  4. linuxrc

    Ce programme effectue toutes les actions nécessaires pour monter le véritable système de fichiers racine comme fournir les fonctionnalités du noyau pour le système de fichiers nécessaire et les pilotes de périphériques pour les contrôleurs de mémoire de masse. Dès que le système de fichiers réel a été monté avec succès, linuxrc s'arrête et le noyau démarre le programme init. Vous trouverez plus d'informations sur linuxrc dans Section 7.1.2, « linuxrc ».

  5. init

    init prend en charge l'amorçage effectif du système par l'intermédiaire de plusieurs niveaux différents qui fournissent différentes fonctionnalités. init est décrit dans Section 7.2, « Le programme init ».

7.1.1. initrd

initrd est un petit système de fichiers (généralement compressé) que le noyau peut charger dans un disque virtuel puis monter en tant que système de fichiers temporaire. Il fournit un environnement Linux minimal qui permet d'exécuter des programmes avant que le système de fichiers racine réel ne soit monté. Cet environnement Linux minimal est chargé en mémoire par les routines BIOS et ne nécessite pas une configuration matérielle particulière autre que suffisamment de mémoire. initrd doit toujours fournir un exécutable nommé linuxrc qui doit être quitté sans erreur.

Avant que le système de fichiers racine réel puisse être monté et le système d'exploitation réel ne soit démarré, le noyau a besoin des pilotes correspondants pour accéder au périphérique sur lequel réside le système de fichiers racine. Ces pilotes peuvent contenir des pilotes spéciaux pour un certain type de disques durs, voire des pilotes réseau pour accéder à un système de fichiers en réseau (voirGérer la configuration réseau). Le noyau doit également contenir le code nécessaire pour lire le système de fichiers de initrd. Les modules pour le système de fichiers racine peuvent être chargés par linuxrc.

Créez un initrd avec le script mkinitrd. Dans SUSE LINUX, les modules à charger sont indiqués par la variable INITRD_MODULES dans le fichier /etc/sysconfig/kernel. Après l'installation, cette variable se voit automatiquement affecter la valeur correcte (le linuxrc d'installation enregistre la liste des modules qui ont été chargés). Les modules sont chargés dans l'ordre exact dans lequel ils apparaissent dans INITRD_MODULES. C'est particulièrement important si l'on fait appel à plusieurs pilotes SCSI, car sinon les noms des disques durs changeraient. À proprement parler, il serait suffisant de ne charger que ces pilotes nécessaires pour accéder au système de fichiers racine. Cependant, tous les pilotes SCSI requis pour l'installation sont chargés au moyen d'initrd car les charger plus tard pourrait être problématique.

[Important]Mettre à jour initrd

Le chargeur d'amorçage charge initrd de la même manière que le noyau. Il n'est pas nécessaire de réinstaller GRUB après la mise à jour de l'initrd, car GRUB cherche dans le répertoire le fichier correct lors de l'amorçage.

7.1.2. linuxrc

L'objectif principal de linuxrc est de préparer le montage du système de fichiers racine réel et l'accès à ce dernier. Selon votre configuration système effective, linuxrc se charge des tâches suivantes.

Charger les modules du noyau

Selon votre configuration matérielle, des pilotes spéciaux peuvent être nécessaires pour accéder aux composants matériels de votre ordinateur (le composant le plus important étant votre disque dur). Pour accéder au système de fichiers racine final, le noyau doit charger les pilotes appropriés du système de fichiers.

Gérer les configurations RAID et LVM

Si vous avez configuré votre système qui contienne le système de fichiers racine en RAID ou sous LVM, linuxrc configure LVM ou le RAID pour permettre d'accéder plus tard au système de fichiers racine. Vous trouverez plus d'informations sur le RAID dans Section 3.8, « Configuration RAID logiciel ». D'autres information sur LVM sont disponibles dans Section 3.7, « Configuration du gestionnaire de volumes logiques (LVM) ».

Gérer la configuration réseau

Si vous avez configuré votre système pour utiliser un système de fichiers racine monté en réseau (monté via NFS), linuxrc doit être sûr que les pilotes réseau corrects sont chargés et qu'ils sont configurés pour permettre l'accès au système de fichiers racine.

Quand linuxrc est appelé au cours de l'amorçage initial en tant que partie de la procédure d'installation, ses tâches diffèrent de celles mentionnées plus haut :

Trouver le support d'installation

Lorsque vous démarrez le processus d'installation, votre machine charge un noyau d'installation et un initrd spécial avec l'utilitaire d'installation YaST à partir du support d'installation. Le programme d'installation YaST, qui est exécuté dans un système de fichiers en mémoire vive, doit avoir des informations sur l'emplacement réel du support d'installation pour y accéder et installer le système d'exploitation.

Démarrer la reconnaissance du matériel et charger les modules de noyau appropriés

Comme mentionné dans Section 7.1.1, « initrd », le processus d'amorçage démarre avec un ensemble minimal de pilotes que l'on peut utiliser avec la plupart des configurations matérielles. linuxrc démarre un processus initial d'analyse du matériel qui détermine l'ensemble de pilotes appropriés pour votre configuration matérielle. Ces valeurs sont écrites ultérieurement dans INITRD_MODULES, dans le fichier /etc/sysconfig/kernel pour permettre à n'importe quel processus d'amorçage qui viendrait plus tard d'utiliser un initrd personnalisé. Pendant le processus d'installation, linuxrc charge cet ensemble de modules.

Charger le système d'installation ou le système de secours

Dès que le matériel a été correctement reconnu et que les pilotes appropriés ont été chargés, linuxrc démarre le système d'installation qui contient le programme d'installation YaST réel ou le système de secours.

Démarrer YaST

Pour finir, linuxrc démarre YaST, qui démarre à son tour l'installation des paquetages et la configuration du système.

7.1.3. Pour plus d'informations

Pour plus d'informations, voir /usr/src/linux/Documentation/ramdisk.txt, /usr/src/linux/Documentation/initrd.txt, ainsi que les pages de manuel initrd(4) et mkinitrd(8).


SUSE LINUX Guide de l'administrateur 9.2