EEIJ

Païou : Mandriva Linux depuis 2002. Aujourd'hui, c'est Mageia Linux


Sommaire


Conforme à XHTML 1.0 Strict Conforme à CSS!

On se lasse de tout, sauf de comprendre.
Attribué à Virgile.

Démarrage de l'ordinateur sous Linux

Historique

02 juin 2011 : Ébauche de cette page.
1 octobre 2011 : restructuration
31 mai 2014 : actualisation
26 mars 2018 : Simplification car systemd a largement remplacé sysvinit et je me restreints à LXQt

Difficulté

Pour : tout utilisateur curieux.

 Introduction

Païou s'intéresse au démarrage de l'ordinateur, avec Linux Mageia.
En fait, c'est pour pouvoir choisir le gestionnaire de connexion qui convient le mieux au bureau LXQt.

Dans cette page, vous ne trouverez que le début du démarrage de Linux.
Pour le moment, c'est dans les coulisses que cela se passe. L'utilisateur ne voit pas grand'chose. Différents liens vous amèneront à d'autres pages, pour le gestionnaire de démarrage (systemd), l'animation de démarrage (plymouth) et pour le gestionnaire de connexion

Haut

 Le BIOS

Sans entrer dans les détails, lorsque l'ordinateur est mis sous tension, le BIOS (Basic Input Output System) initialise les différents périphériques (bus, ram, disques, écran clavier ...), puis teste la mémoire.
Ce processus est appelé POST (Power ON Self Test).

 BIOS et MBR

Les anciennes cartes-mères utilisaient le MBR (Master Boot Record) pour stocker les informations nécessaires au démarrage de l'ordinateur. C'est le premier secteur (512 octets) du disque de démarrage.
Il contient la table des partitions et, soit le début de la routine d'amorçage du système d'exploitation, soit le début d'un chargeur d'amorçage.

À la fin du POST, le contrôle est transféré du BIOS à la routine d'amorçage du système d'exploitation ou au chargeur de démarrage (boot loader), via le MBR.

Certaines cartes récentes proposent le choix entre MBR et UEFI.

 UEFI

L’UEFI (Unified Extensible Firmware Interface) est un standard qui a été créé vers 2006, pour remplacer le BIOS.
Le fonctionnement de UEFI est un peu différent de celui du BIOS. C'est un micrologiciel contenu dans une puce de la carte mère.Il permet de lancer des applications qui sont stockées dans une partition du disque dur prévue à cet effet.
L'UEFI lit la GPT du disque (GUID Partition Table) pour trouver la routine d'amorçage ou le chargeur.

Haut

 Le partitionnement

Le partitionnement est le découpage d'un disque dur en plusieurs morceaux appelés partitions.
L'intérêt est de pouvoir reformater une partition (ce qui efface le contenu de la partition) sans effacer le contenu de tout le disque.
Cela permet également d'utiliser un système de fichier différent sur les partitions.

On distingue :

 avec un disque partitionné avec un MBR

MBR vs GPT

MBR est un secteur spécial, situé au tout début du périphérique de stockage (en général, le disque dur).
Il renferme la suite du démarrage et les informations spécifiant l'organisation des partitions de ce média de stockage.

 avec un disque partitionné avec une GPT

La GPT (GUID Partition Table) est un nouveau standard pour décrire la table de partitionnement d’un disque dur.
Elle est amenée à remplacer le MBR vu que ce dernier limite la taille maximale d’une partition à 2,2 To.

Le GPT fait parti du standard UEFI; un système d’exploitation UEFI ne peut démarrer que sur un disque dur avec table de partitions GPT. Par ailleurs, un BIOS traditionnel ne peut pas démarrer sur un disque GPT.

Le premier secteur de 512 octets (LBA0) est ce qui s'appelle un MBR de protection. Il sert aux applications non GPT et leur propose un MBR qui définit une unique partition, déjà pleine. Il en résulte que cette application ne peut donc pas enregistrer et perturber ainsi l'ordonnancement GPT.

Le secteur suivant (LBA1) constitue l'en-tête de la GPT (L'entête de GPT définit les blocs utilisables sur le disque ainsi que les nombres et la taille des descripteurs de la table de partitionnement), avec une copie en fin de disque.

Les secteurs 2 à 33 contiennent les descripteurs de partitions ou éléments du Tableau des partitions

 Le chargeur de démarrage grub2

Le chargeur de démarrage permet de lancer le système d'exploitation. Mageia utilise actuellement GRUB2.
Grub2 peut être utilisé aussi bien sur systèmes MBR que sur système GPT et sa conception est modulaire.
Lorsque plusieurs systèmes sont installés sur un même ordinateur, le chargeur permet de choisir le système à lancer.

Au coeur du fonctionnement, on trouve une image amorçable (boot.img) et une image principale (core.img). Cette dernière supporte le chargement dynamique de modules, ce qui lui permet de s'adapter à la constitution de la machine.

 avec un disque partitionné avec un MBR

En travaux de mise à jourTravaux




 avec un disque partitionné avec une GPT

Haut

 Le noyau linux

Le chargeur de démarrage lance donc le système d'exploitation que vous avez choisi (Sinon, c'est le système par défaut qui est démarré).
Bien sûr, nous nous intéressons ici au système Linux.

C'est donc une image compressée du noyau linux qui est chargée, avec toutes les options précisées sur la ligne de commande.
kernel (hd0,0)/boot/vmlinuz BOOT_IMAGE=linux root=UUID=0066e940-0dbc-11e0-a53d-8b9920942bc6 resume=UUID=9bc5f0a4-4e69-4855-8b06-e1eab35755fe splash quiet vga=788

Dès lors qu'il est chargé et décompressé (hd0,0)/boot/vmlinuz), c'est le noyau linux qui prend la relève.

Son rôle, lors du démarrage, est d'initialiser les différents composants matériels présents. Il le fait à l'aide des pilotes de périphérique compilés directement dans le noyau et en chargeant les modules appropriés (usb, sata, pata ...).
Ces initialisations concernent surtout le processeur, les contrôleurs de périphériques et la carte graphique.

Il monte ensuite le système de fichier racine (root=UUID=xxxxxx).

Haut

 La suite du démarrage

Depuis longtemps, la majorité des distributions linux utilise sysvinit pour continuer le démarrage. Mageia 1 en faisait partie.
Le noyau lance le premier processus : /sbin/init.
La page pour voir la suite du démarrage avec sysvinit :
Cliquez

Peu à peu, sysvinit laisse la place à un système plus récent, plus rapide : systemd. C'est la cas pour Mageia 2 et les versions suivantes.
Le noyau lance également /sbin/init, mais ici, il s'agit d'un lien vers /lib/systemd/systemd.
La page pour voir la suite du démarrage avec systemd : Cliquez

Haut