2. • Afin de contrôler la machine, le noyau doit être chargé par
un programme appelé le chargeur de démarrage, qui est
lui-même chargé par un micrologiciel (firmware) préinstallé
comme le BIOS ou l’UEFI.
• Le chargeur de démarrage peut être personnalisé pour
transmettre des paramètres au noyau, par exemple la
partition qui contient le système de fichiers racine ou le
mode dans lequel le système d’exploitation doit s’exécuter.
• Une fois chargé, le noyau poursuit le processus de
démarrage en identifiant et en configurant le matériel. Au
terme de ce processus, le noyau lance l’utilitaire chargé de
démarrer et de gérer les services du système.
3. BIOS ou UEFI
• Le BIOS (Basic Input/Output System) est un programme stocké dans une
puce de mémoire non volatile attachée à la carte mère, exécuté à chaque
fois que l’ordinateur est mis sous tension. Ce type de programme est
appelé firmware et son emplacement de stockage est distinct des autres
périphériques de stockage que le système peut avoir.
• Le BIOS part du principe que les 440 premiers octets du premier
périphérique de stockage constituent la première phase du chargeur de
démarrage (également appelée bootstrap ou amorçage).
• Les 512 premiers octets d’un périphérique de stockage sont appelés le
MBR (Master Boot Record) pour les périphériques de stockage qui utilisent
le schéma de partition DOS standard et, en plus de la première phase du
chargeur de démarrage, contiennent la table de partitions.
• Si le MBR ne contient pas de données correctes, le système ne pourra pas
démarrer, à moins qu’une méthode alternative ne soit utilisée.
4. BIOS ou UEFI
• D’une manière générale, les étapes préopératoires pour amorcer un
système équipé d’un BIOS sont les suivantes :
1. L’auto-test d’allumage POST (Power-On Self-Test) est exécuté
pour identifier les défaillances matérielles élémentaires dès que
la machine est mise sous tension.
2. Le BIOS active les composants basiques pour charger le système,
comme la sortie vidéo, le clavier et les médias de stockage.
3. Le BIOS exécute la première phase du chargeur de démarrage à
partir du MBR (les 440 premiers octets du premier périphérique,
tel qu’il est défini dans l’interface de configuration du BIOS).
4. La première phase du chargeur de démarrage appelle la
deuxième phase du chargeur de démarrage, chargée de
présenter les options de démarrage et de charger le noyau.
5. BIOS ou UEFI
• L’UEFI (Unified Extensible Firmware Interface), se distingue du BIOS sur plusieurs points
essentiels.
• Tout comme le BIOS, l’UEFI est également un micrologiciel, mais il est capable d’identifier des
partitions et de lire un grand nombre de systèmes de fichiers qui s’y trouvent.
• L’UEFI ne s’appuie pas sur le MBR et ne prend en compte que les seuls paramètres stockés
dans sa mémoire non volatile (NVRAM) attachée à la carte mère. Ces définitions indiquent
l’emplacement des programmes compatibles UEFI, appelés applications EFI, qui seront
exécutés automatiquement ou invoqués à partir d’un menu de démarrage.
• Les applications EFI peuvent être des chargeurs d’amorçage, des sélecteurs de systèmes
d’exploitation, des outils de diagnostic et de réparation système, etc. Ils doivent figurer dans
une partition classique de périphérique de stockage et dans un système de fichiers
compatible.
• Les systèmes de fichiers standard compatibles sont le FAT12, le FAT16 et le FAT32 pour les
dispositifs en bloc et l’ISO-9660 pour les supports optiques. Cette approche permet le
déploiement d’outils beaucoup plus sophistiqués que ceux qui sont possibles avec le BIOS.
6. BIOS ou UEFI
• La partition qui contient les applications EFI est appelée EFI System
Partition ou simplement ESP. Cette partition ne doit en aucun cas
être partagée avec d’autres systèmes de fichiers du système comme
le système de fichiers racine ou les systèmes de fichiers contenant
les données des utilisateurs. Le répertoire EFI dans la partition ESP
contient les applications référencées par les entrées enregistrées
dans la NVRAM.
• La norme UEFI comprend également une option appelée Secure
Boot, qui autorise uniquement l’exécution des applications EFI
signées, c’est-à-dire des applications EFI autorisées par le fabricant
du matériel. Cette fonctionnalité renforce la protection contre les
malwares, mais peut entraver l’installation de systèmes
d’exploitation non couverts par la garantie du fabricant.
7. BIOS ou UEFI
• D’une manière générale, les étapes préopératoires pour amorcer un
système avec UEFI sont les suivantes :
1. L’auto-test d’allumage POST (Power-On Self-Test) est exécuté
pour identifier les défaillances matérielles élémentaires dès que
la machine est mise sous tension.
2. L’UEFI active les composants basiques pour charger le système,
comme la sortie vidéo, le clavier et les médias de stockage.
3. Le micrologiciel de l’UEFI lit les paramètres stockés dans la
NVRAM pour exécuter l’application EFI prédéfinie stockée dans
le système de fichiers de la partition ESP. En règle générale, cette
application EFI prédéfinie est un chargeur de démarrage.
4. Si l’application EFI prédéfinie est un chargeur de démarrage,
celui-ci chargera le noyau pour démarrer le système
d’exploitation.
8. Le chargeur de démarrage
• Le chargeur de démarrage le plus populaire est GRUB (Grand
Unified Bootloader). Dès qu’il est appelé par le BIOS ou par l’UEFI,
GRUB affiche une liste de systèmes d’exploitation disponibles au
démarrage. Il peut arriver que la liste n’apparaisse pas
automatiquement, mais elle peut être invoquée en appuyant
sur Maj pendant que GRUB est appelé par le BIOS. Avec les
systèmes UEFI, la touche Échap doit être utilisée à la place.
• Depuis le menu GRUB, il est possible de choisir lequel des noyaux
installés doit être chargé ainsi que de transmettre de nouveaux
paramètres à celui-ci. La plupart des paramètres du noyau suivent
le schéma option=valeur.
9. Le chargeur de démarrage
Voici quelques-uns des paramètres les plus pertinents du noyau :
• acpi: Active/désactive le support de l’ACPI. acpi=off désactivera le
support de l’ACPI.
• Init: Définit un initialiseur système alternatif.
À titre d’exemple, init=/bin/bash définira le shell Bash comme initialiseur. Cela
signifie qu’une session shell sera lancée juste après le processus de démarrage du
noyau.
• systemd.unit: Définit la cible systemd à activer.
Par exemple, systemd.unit=graphical.target. Systemd accepte également les
niveaux d’exécution numériques tels que définis pour SysV. Pour activer le niveau
d’exécution 1, par exemple, il suffit d’inclure le chiffre 1 ou la lettre S (pour
“single”) comme paramètre du noyau.
10. Le chargeur de démarrage
• mem: Définit la quantité de RAM disponible pour le système. Ce
paramètre est utile pour les machines virtuelles afin de limiter la
quantité de RAM disponible pour chaque système invité.
L’utilisation de mem=512M limitera à 512 mégaoctets la quantité
de RAM disponible pour un système invité donné.
• maxcpus : Limite le nombre de processeurs (ou cœurs de
processeur) visibles pour le système dans les machines à
multiprocesseurs symétriques. C’est également valable pour les
machines virtuelles. Une valeur de 0 désactive le support des
machines multiprocesseurs et a le même effet que le paramètre de
noyau nosmp. Le paramètre maxcpus=2 limitera à deux le nombre
de processeurs disponibles pour le système d’exploitation.
11. Le chargeur de démarrage
• quiet : Masque la plupart des messages de démarrage.
• vga : Sélectionne un mode vidéo. Le paramètre vga=ask affichera
une liste des modes disponibles au choix.
• root : Définit la partition racine, distincte de celle pré-configurée
dans le chargeur de démarrage. Par exemple, root=/dev/sda3.
• rootflags : Options de montage pour le système de fichiers
racine.
• ro: Effectue le montage initial du système de fichiers racine en
lecture seule.
• rw: Permet l’écriture dans le système de fichiers racine lors du
montage initial.