Aller au contenu

Boot Process

·
redhat
Jérémy Norgol
Auteur
Jérémy Norgol
Consultant ingénieur Linux Devops
RH134 - Cet article fait partie d'une série.
Partie 35: Cet article

Introduction
#

Une séquence de boot est le processus par lequel un système d’exploitation démarre sur un ordinateur. Cela implique l’initialisation du matériel, le chargement du noyau du système d’exploitation en mémoire, et le lancement des processus nécessaires au fonctionnement du système.

Les système d’initialisation ont varié sous Linux pour tous migré vers systemd:

Distribution Version de Transition vers systemd Méthode d’Initialisation Avant la Transition
CentOS 7 SysVinit
Red Hat 7 SysVinit
Ubuntu 15.04 Upstart

Etapes du process de boot
#

  1. BIOS (Basic Input and Output Settings (firmware interface) POST = Power-On Self-Test started

  2. MBR - (Master Boot Record) Il s’agit du premier secteur d’un disque dur qui indique ou le boot loader est situé (pour Linux on utilise GRUB2) afin de le monter en RAM

  3. GRUB2 - (Grand Unfied Boot Loader v2) - Chargement du Kernel Linux /boot/grub2/grub.cfg Définition du choix de la séquence de démarrage.

  4. Kernel - Core of Operating System - Charge les drivers requis de initrd.img. Démarre le tout premier process d’OS (systemd)

  5. Systemd - System Daemon (PID #1) - Démarre l’ensemble des process suivant un niveau de priorité de démarrage (run-level) et des inter-dépendances entre les daemons. /etc/systemd/system/default.target
    ➡️ 7 niveau de priorités (0-6)

Reboot / Shutdown
#

  • systemctl poweroff : Arrêt des services, démontage des partitions de fichiers, signal d’arrêt d’alimentation du système
  • systemctl reboot : Arrêt des services, démontage des partitions de fichiers, signal de redémarrage du système

Alias poweroff, reboot

Cibles de systemd
#

Cible Description
graphical.target Cible utilisée pour démarrer le système en mode multi-utilisateur avec une interface graphique (par exemple, GNOME, KDE).
multi-user.target Cible similaire à graphical.target, mais sans interface graphique, souvent utilisée pour les serveurs.
rescue.target Cible utilisée pour démarrer le système en mode de dépannage mono-utilisateur, avec un accès complet au système.- sulogin prompt
emergency.target Cible utilisée pour démarrer le système en mode d’urgence mono-utilisateur, avec un accès limité aux services essentiels. - initramfs - sulogin prompt
default.target Cible par défaut du système, généralement un alias de graphical.target ou multi-user.target.
poweroff.target Cible utilisée pour arrêter le système.
reboot.target Cible utilisée pour redémarrer le système.
shutdown.target Cible utilisée pour démarrer la séquence d’arrêt du système.

Commandes utiles
#

Voir la cible courante ou le run-level: systemctl get-default

Voir les dépendances sur une cible: systemctl list-dependencies grahical.target

systemctl list-dependencies

Liste des run-level: ls -al /lib/systemd/system/runlevel*

Changer la cible par défaut: systemctl set-default graphical.target

Astuce

Je vous partage ici une commande vraiment que j’adooooorre !!! On est d’accord que les logs peuvent êtres quelques peu fastidieux quand on veut savoir quels sont les services/daemons qui prennent un temps monstrueux à démarrer lors de la séquence de boot. Alors posez-vous tranquillement dans votre fauteil, taper cette simple commande et visualisez d’un coup d’oeil le résultat !
systemd-analyse plot > sequence.svg Plot sequence.svg Avouez-que c’est tout de suite plus agréable à lire 😊

RH134 - Cet article fait partie d'une série.
Partie 35: Cet article

Articles connexes

Stockage
redhat
Stockage - Les labels
redhat
SELinux
redhat sécurité