En savoir plus sur le processus de démarrage Linux: du BIOS au bureau
Une fois que nous avons installé un système d’ exploitation Linux (Ubuntu, Debian, Mint, etc.), pour l’utiliser, il suffit d’appuyer sur le bouton d’alimentation du PC et d’attendre que le système d’exploitation se charge. Comme avec tout autre système d’exploitation, tel que Windows. Cependant, le processus de démarrage est un processus assez complexe, et il est également divisé en plusieurs étapes, chacune étant essentielle pour que notre distribution démarre avec succès. Par conséquent, si nous connaissons ce processus de démarrage, il sera assez facile d’identifier et de résoudre tout problème éventuel auquel nous pourrions être confrontés.
Certaines distributions Linux sont configurées de manière à ce que le processus de démarrage soit en mode détaillé, c’est-à-dire en affichant toutes les commandes en cours d’exécution à l’écran. Bien qu’il soit vrai que la plupart, en particulier les distributions «faciles», ont un splash sur l’écran qui nous empêche de le voir (bien que nous puissions toujours l’afficher en appuyant sur Echap pour contrôler le processus).
Cependant, à la fois en mode texte et avec l’image statique à l’écran, le processus de démarrage est le même. Et à partir du moment où nous appuyons sur le bouton d’alimentation jusqu’à ce que nous puissions voir le bureau, nous passons par plusieurs phases que nous allons détailler ci-dessous.
Phase BIOS / UEFI
Cette phase est la même pour tous les systèmes d’exploitation. Ce petit système, ou firmware, est stocké sur une puce sur la carte mère et est chargé de vérifier que tous les composants du PC sont connectés et fonctionnent correctement. Pour ce faire, effectuez un POST (Power-On Self Test) , vérifiez que les périphériques nécessaires sont connectés pour continuer (en particulier le clavier), et localisez le lecteur que nous avons configuré comme «boot», où le gestionnaire de démarrage sera de continuer avec la charge du système d’exploitation.
Certaines des erreurs que nous pouvons trouver à ce stade sont les suivantes, et la plupart du temps elles sont liées directement au matériel (en particulier avec les disques durs), elles sont donc résolues en vérifiant que les périphériques sont bien connectés, ou en les réinitialisant le BIOS aux paramètres d’usine:
- Corruption MBR.
- Table de partition corrompue.
- Corruption de PBR.
- Corruption du secteur de démarrage.
- Disque corrompu.
- Corruption Bootmgr.
Phase du chargeur de démarrage
Dans cette phase, l’ordinateur essaiera d’accéder au Master Boot Record (MBR) ou à la table de partition guidée (GPT) du disque dur, en fonction des paramètres BIOS ou UEFI. Si cette partition n’est pas trouvée, nous verrons directement un message sur l’ordinateur qui indiquera que le système d’exploitation n’est pas trouvé. Dans ce cas, nous devrons revoir la configuration de démarrage du BIOS ou de l’UEFI et, si nécessaire, même réinstaller le système d’exploitation pour que le démarrage puisse être généré à nouveau.
Si cette partition est trouvée, alors la prochaine chose que nous verrons est le menu de démarrage de Linux, également connu sous le nom de «GRUB» (bien qu’il puisse y avoir d’autres chargeurs de démarrage, tels que LILO). Ici, nous allons voir tous les systèmes d’exploitation installés sur le PC, ainsi que d’autres entrées dans le gestionnaire de démarrage (différents noyaux, options de récupération, analyseur de mémoire RAM, etc.).
Nous choisirons l’entrée que nous voulons démarrer (Ubuntu, par exemple, pour continuer avec le démarrage Linux) et à l’étape suivante, le noyau lui-même commencera à se charger.
Les erreurs que nous pouvons trouver à ce stade sont des entrées corrompues dans GRUB . Et le moyen de le réparer est d’utiliser un disque de récupération (ou une distribution Linux Live que nous pouvons charger à partir de la RAM) pour réparer GRUB et faire pointer les entrées vers les disques durs ou partitions correspondants.
Phase de démarrage du noyau Linux
Vient maintenant la phase de démarrage la plus importante: le noyau Linux . Quelle que soit la distribution que nous utilisons, tous utiliseront une version plus ou moins personnalisée du noyau d’origine de ce système d’exploitation. Pour des raisons d’espace et d’optimisation, le noyau est maintenu compressé sur le disque, donc la première chose à faire est de le décompresser en mémoire pour continuer.
La prochaine étape sera l’initialisation de tous les composants. Pour ce faire, la plupart des distributions utilisent un pilote de démon appelé systemd (bien que certaines utilisent des alternatives telles que init.d). Ce qui est fait dans cette étape est de lancer tous les processus et services qui font partie du système et sont essentiels à son bon fonctionnement. Tous ces processus permettent au matériel de fonctionner et à tous les composants du système d’exploitation d’être synchronisés, en particulier la mémoire et les disques. Ces services continueront de fonctionner après le processus de démarrage et seront fermés lors de l’arrêt du système.
En plus des processus et services Linux essentiels, d’autres services personnalisés peuvent également être chargés (par exemple, un serveur que nous avons mis en place et configuré, tel que SSH ou FTP).
À moins que nous n’ayons apporté nous-mêmes des modifications au système, il est rare de rencontrer des problèmes à ce stade. Le démarrage du système avec Systemd est généralement un processus entièrement automatique et ne nécessite aucune intervention de notre part. De plus, si un démon ne peut pas être chargé, il le marquera simplement comme une erreur et passera au suivant. Ce qui peut arriver, c’est que certains démons mettent plusieurs secondes à se charger . Et puis ce que nous devrions faire est de vérifier à quel point Systemd se bloque et d’essayer de résoudre le problème en désactivant le service, en le configurant correctement ou en mettant à jour le système.
Phase finale du démarrage Linux
À ce stade, notre distribution sera prête. C’est à ce moment que la phase «runlevel» entre dans laquelle le type de fonctionnement du système d’exploitation sera indiqué par un numéro en fonction des services correctement chargés:
- 0 – Arrêter. Erreur système critique.
- 1 – Mode mono-utilisateur.
- 2 – Mode multi-utilisateurs sans accès au réseau.
- 3 – Mode multi-utilisateurs dans le terminal.
- 4 – Mode défini par l’utilisateur.
- 5 – Mode multi-utilisateurs avec environnement graphique. C’est le mode souhaité et dans lequel il essaiera toujours de démarrer par défaut
- 6 – Nécessite le redémarrage de l’ordinateur.
En supposant que nous avons obtenu un «5» dans le niveau d’exécution, alors nous pouvons voir l’écran de connexion de notre distribution Linux, et nous pouvons démarrer la session. Une fois connecté, nous aurons le bureau à portée de main et nous pouvons commencer à travailler avec l’ordinateur en toute liberté.
Nous pouvons changer la valeur de runlevel en exécutant dans un terminal «telinit» suivi de la valeur que nous voulons. Par exemple, une valeur «0» forcerait un arrêt du PC, tandis qu’une valeur «1» nous permettrait uniquement d’utiliser Linux en mode mono-utilisateur.
Nous pouvons également voir combien de temps il a fallu à notre distribution pour se charger avec la commande «systemd-analyser»: