Une fois que le chargeur de démarrage a chargé le noyau en mémoire et lui a transmis les paramètres nécessaires, le noyau prend le contrôle du système. Explorons ce qui se passe ensuite.
Initialisation du Noyau et l'Initramfs
Un défi classique lors du démarrage est que le noyau a besoin de pilotes pour accéder aux périphériques matériels, mais ces pilotes résident souvent sur un périphérique de stockage auquel le noyau ne peut pas encore accéder. Pour résoudre ce problème, Linux utilise un système de fichiers racine temporaire.
Dans les systèmes plus anciens, cela était géré par un initrd (initial RAM disk). Le noyau chargeait cette image disque, trouvait les pilotes nécessaires, puis basculait vers le véritable système de fichiers racine. Les systèmes modernes, y compris les distributions comme Ubuntu, utilisent initramfs (initial RAM filesystem). Contrairement à initrd, initramfs est une archive cpio qui est décompressée dans un système de fichiers temporaire directement en mémoire. Cette approche est plus efficace car elle évite la surcharge liée à la création et au montage d'un périphérique bloc. L'initramfs contient uniquement les modules essentiels dont le noyau a besoin pour accéder à la partition de démarrage réelle (boot partition) et à d'autres matériels.
Montage du Système de Fichiers Racine de Démarrage
Avec les pilotes chargés depuis l'initramfs, le noyau peut maintenant localiser et monter le système de fichiers racine de démarrage principal (boot root). L'emplacement de ce système de fichiers est généralement transmis comme paramètre par le chargeur de démarrage, ce qui peut être configuré dans des fichiers comme /etc/default/grub.
Premièrement, le noyau monte la partition racine de démarrage (boot root) en lecture seule. C'est une mesure de sécurité qui permet à l'utilitaire fsck (vérification du système de fichiers) de s'exécuter et de vérifier l'intégrité du système de fichiers sans risquer la corruption des données. Une fois la vérification terminée avec succès, le noyau remonte le système de fichiers en mode lecture-écriture.
Enfin, le système de fichiers racine étant entièrement disponible, le noyau démarre le tout premier programme de l'espace utilisateur : init. Ce programme est responsable de la mise en ligne du reste du système.