GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Un guide de base du processus de démarrage Linux

Chaque fois que vous allumez votre PC Linux, il passe par une série d'étapes avant d'afficher finalement un écran de connexion qui vous demande votre nom d'utilisateur ou votre mot de passe. Il y a 4 étapes distinctes que chaque distribution Linux traverse dans un processus de démarrage typique.

Dans ce guide, nous mettrons en évidence les différentes étapes suivies par le système d'exploitation Linux depuis sa mise sous tension jusqu'au moment où vous vous connectez. Veuillez noter que ce guide ne prend en considération que le GRUB2 chargeur de démarrage et systemd init car ils sont actuellement utilisés par la grande majorité des distributions Linux modernes.

Le processus de démarrage suit les 4 étapes suivantes dont nous parlerons plus en détail :

  • BIOS Contrôle d'intégrité (POST )
  • Chargement du chargeur de démarrage (GRUB2 )
  • Initialisation du noyau
  • Démarrer systemd , le parent de tous les processus

1. La vérification de l'intégrité du BIOS (POST)

Le processus de démarrage est généralement initialisé lorsqu'un utilisateur appuie sur le bouton sous tension - si le PC était déjà éteint - ou redémarre le système à l'aide de l'interface graphique ou de la ligne de commande.

Lorsque le système Linux démarre, le BIOS (Système d'entrée-sortie de base ) démarre et effectue un test automatique de mise sous tension (POSTER ). Il s'agit d'une vérification d'intégrité qui effectue une pléthore de vérifications de diagnostic.

Le POST sonde l'opérabilité matérielle des composants tels que le disque dur ou SSD , Clavier , RAM , USB ports et tout autre élément matériel. Si un périphérique matériel n'est pas détecté, ou s'il y a un dysfonctionnement dans l'un des périphériques, tel qu'un disque dur ou un SSD corrompu, un message d'erreur s'affiche à l'écran et vous invite à intervenir.

Dans certains cas, un bip sonore se déclenchera notamment en cas de module RAM manquant. Cependant, si le matériel attendu est présent et fonctionne comme prévu, le processus de démarrage passe à l'étape suivante.

2. Le chargeur de démarrage (GRUB2)

Une fois le POST est complet et la côte est libre, le BIOS sonde le MBR (enregistrement de démarrage principal ) pour le chargeur de démarrage et les informations de partitionnement de disque.

Le MBR est un code de 512 octets qui se trouve sur le premier secteur du disque dur qui est généralement /dev/sda ou /dev/hda selon l'architecture de votre disque dur. Notez, cependant, que parfois le MBR peut être situé sur un Live USB ou DVD installation de Linux.

Il existe 3 principaux types de chargeurs de démarrage sous Linux :LILO , GRUB, et GRUB2 . Le GRUB2 bootloader est le dernier et principal chargeur de démarrage des distributions Linux modernes et informe notre décision de laisser de côté les deux autres qui sont devenus obsolètes avec le temps.

GRUB2 signifie GRand Unified Bootloader version 2. Une fois le BIOS localise le bootloader grub2, il l'exécute et le charge dans la mémoire principale (RAM ).

Le grub2 Le menu vous permet de faire plusieurs choses. Il vous permet de sélectionner la version du noyau Linux que vous souhaitez utiliser. Si vous avez mis à jour votre système plusieurs fois, vous verrez peut-être différentes versions de noyau répertoriées. De plus, il vous donne la possibilité de modifier certains paramètres du noyau en appuyant sur une combinaison de touches du clavier.

De plus, dans une configuration à double démarrage où vous avez plusieurs installations de système d'exploitation, le menu grub vous permet de sélectionner le système d'exploitation sur lequel démarrer. Le fichier de configuration grub2 est le /boot/grub2/grub2.cfg dossier. L'objectif principal de GRUB est de charger le noyau Linux sur la mémoire principale.

3. Initialisation du noyau

Le noyau est le cœur de tout système Linux. Il interface le matériel du PC avec les processus sous-jacents. Le noyau contrôle tous les processus de votre système Linux. Une fois que le noyau Linux sélectionné est chargé par le chargeur de démarrage, il doit s'auto-extraire de sa version compressée avant d'entreprendre toute tâche. Lors de l'auto-extraction, le noyau sélectionné monte le système de fichiers racine et initialise le /sbin/init programme communément appelé init .

Init est toujours le premier programme à être exécuté et se voit attribuer l'ID de processus ou le PID de 1. C'est le processus d'initialisation qui génère divers démons et monte toutes les partitions spécifiées dans /etc/fstab fichier.

Le noyau monte ensuite le disque RAM initial (initrd ) qui est un système de fichiers racine temporaire jusqu'à ce que le véritable système de fichiers racine soit monté. Tous les noyaux sont situés dans le /boot répertoire avec l'image initiale du disque RAM.

4.Démarrer Systemd

Le noyau charge enfin Systemd , qui remplace l'ancien SysV init. Systemd est la mère de tous les processus Linux et gère entre autres le montage des systèmes de fichiers, le démarrage et l'arrêt des services pour n'en citer que quelques-uns.

Systemd utilise le /etc/systemd/system/default.target pour déterminer l'état ou la cible dans laquelle le système Linux doit démarrer.

  • Pour un poste de travail de bureau (avec une interface graphique), la valeur cible par défaut est 5, ce qui équivaut au niveau d'exécution 5 pour l'ancienne initialisation SystemV.
  • Pour un serveur, la cible par défaut est multi-user.target qui correspond au niveau d'exécution 3 dans SysV init.

Voici une ventilation des cibles systemd :

  • poweroff.target (niveau d'exécution 0)  :éteignez ou arrêtez le système.
  • rescue.target (niveau d'exécution 1) :lance une session shell de secours.
  • multi-user.target (niveau d'exécution 2,3,4)  :configure le système en un système multi-utilisateurs non graphique (console).
  • graphical.target (niveau d'exécution 5)  :configurez le système pour qu'il utilise une interface graphique multi-utilisateurs avec les services réseau.
  • reboot.target (niveau d'exécution 6) :redémarre le système.

Pour vérifier la cible actuelle sur votre système, exécutez la commande :

$ systemctl get-default

Vous pouvez passer d'une cible à une autre en exécutant la commande suivante sur le terminal :

$ init runlevel-value

Par exemple, init 3 configure le système dans un état non graphique.

L'init 6 la commande redémarre votre système et init 0 éteint le système. Assurez-vous d'invoquer la commande sudo lorsque vous souhaitez basculer vers ces deux cibles.

Le processus de démarrage se termine une fois systemd charge tous les démons et définit la valeur cible ou de niveau d'exécution. C'est à ce stade que vous êtes invité à entrer votre nom d'utilisateur et votre mot de passe sur lesquels vous accédez à votre système Linux.


Ubuntu
  1. Processus de démarrage Linux :un guide pour démarrer

  2. Installer le noyau Linux 5.15 sur Ubuntu 20.04 - Guide étape par étape ?

  3. Linux – Init Process :ancêtre de tous les processus ?

  4. Le noyau Linux ne sera pas mis à jour vers 2.35.25 ?

  5. Guide du débutant pour la configuration du module du noyau sous Linux

Commande sysctl sous Linux

Linux, GPU AMD, écran noir au démarrage

Guide complet de journalisation Linux

Comment tuer ou terminer un processus Linux :Le guide ultime

Un guide pour le système de fichiers ‘/proc’ sous Linux

6 étapes du processus de démarrage Linux (séquence de démarrage)