L'intérêt principal d'implémenter
initrd
était de permettre une configuration modulaire du noyau
lors de l'installation du système.
Un scénario possible d'installation est le suivant :
- 1.
-
Le programme de chargement démarre depuis une disquette,
ou un autre support, avec un noyau minimal (par exemple, les supports pour
/dev/ram,
/dev/initrd,
et le système de fichiers ext2). Puis charge
/dev/initrd
depuis une version compressée avec gzip d'un système de fichiers initial.
- 2.
-
L'exécutable
/linuxrc
détermine ce qui est nécessaire pour (1) monter le système de fichiers
normal (pilotes de périphériques, systèmes de fichiers) et (2) utiliser
le support fourni pour la distribution (CD-ROM, réseau, bande magnétique).
Cette étape peut être effectuée en interrogeant l'utilisateur,
en effectuant des tests de détection automatique, ou en utilisant
une approche hybride entre les deux.
- 3.
-
L'exécutable
/linuxrc
charge les modules nécessaires depuis le système de fichiers initial.
- 4.
-
L'exécutable
/linuxrc
crée et remplit le système de fichiers racine.
(À cet instant, le système de fichiers racine n'est pas nécessairement
complet).
- 5.
-
L'exécutable
/linuxrc
configure
/proc/sys/kernel/real-root-dev,
démonte
/proc,
le système de fichiers normal, et tout autre système de fichiers
qu'il a éventuellement monté, et se termine.
- 6.
-
Le noyau monte alors le système de fichiers racine normal.
- 7.
-
Maintenant que le système de fichiers est accessible,
le chargeur peut être installé.
- 9.
-
Le chargeur est configuré pour installer dans
/dev/initrd
un système de fichiers disposant de l'ensemble des modules qui ont été
utilisés pour démarrer le système.
(par exemple un périphérique comme
/dev/ram0
peut être modifié, puis démonté, et finalement l'image est recopiée depuis
/dev/ram0
vers un fichier.)
- 9.
-
Le système est maintenant prêt à redémarrer,
et les tâches supplémentaires d'installation peuvent être effectuées.
Le principal avantage offert par
/dev/initrd
dans ce scénario est de permettre de réutiliser les données
de configuration lors du fonctionnement normal du noyau, sans nécessiter
de choisir un noyau initial, d'utiliser un gros noyau générique,
ou de recompiler le noyau après l'installation.
Un second scénario sert à l'installation
de Linux sur un réseau constitué de machines configurées différemment.
Dans ce cas, il peut être préférable de n'utiliser qu'un nombre minimal
de noyaux (voire un seul dans le meilleur des cas), et de ne stocker
qu'une quantité la plus faible possible d'information de configuration.
Ainsi, on crée un fichier commun contenant tous les modules nécessaires,
et seul le fichier
/linuxrc,
ou les fichiers qu'il lance, changent suivant les machines.
Un troisième scénario permet de disposer de disques de secours les plus
confortables possible.
Les informations comme l'emplacement du système de fichiers racines, etc.
ne sont pas indispensables lors du démarrage.
Le système chargé par
/dev/initrd
peut utiliser des menus de dialogue et/ou des détections automatiques suivi
de vérification de cohérence du système.
Enfin, et c'est peut-être l'usage le plus important, les distributions de
Linux sur CD-ROM permettent une installation plus aisée.
La distribution peut utiliser directement
LOADLIN
pour charger
/dev/initrd
depuis le CD-ROM sans avoir besoin de créer de disquettes.
La distribution peut également utiliser une disquette de démarrage avec
LILO
puis charger un disque ram par l'intermédiaire de
/dev/initrd
depuis le CD-ROM.