101.2 Leçon 1
Certification : |
LPIC-1 |
---|---|
Version : |
5.0 |
Thème : |
101 Architecture système |
Objectif : |
101.2 Démarrer le système |
Leçon : |
1 sur 1 |
Introduction
Afin de contrôler la machine, le composant principal du système d’exploitation — 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.
Note
|
Sur certaines distributions Linux, les commandes exécutées dans cette leçon peuvent nécessiter les droits root. |
BIOS ou UEFI
Les procédures exécutées par les machines x86 pour lancer le chargeur de démarrage diffèrent en fonction de l’utilisation du BIOS ou de l’UEFI. Le BIOS, abréviation de 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 — suivant l’ordre défini dans l’interface de configuration du BIOS — 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.
D’une manière générale, les étapes préopératoires pour amorcer un système équipé d’un BIOS sont les suivantes :
-
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.
-
Le BIOS active les composants basiques pour charger le système, comme la sortie vidéo, le clavier et les médias de stockage.
-
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).
-
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.
L’UEFI, abréviation de 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.
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.
D’une manière générale, les étapes préopératoires pour amorcer un système avec UEFI sont les suivantes :
-
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.
-
L’UEFI active les composants basiques pour charger le système, comme la sortie vidéo, le clavier et les médias de stockage.
-
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.
-
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.
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.
Le chargeur de démarrage
Le chargeur de démarrage le plus populaire pour Linux dans l’architecture x86 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
. 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 chiffre1
ou la lettreS
(pour “single”) comme paramètre du noyau. 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 noyaunosmp
. Le paramètremaxcpus=2
limitera à deux le nombre de processeurs disponibles pour le système d’exploitation. 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.
La modification des paramètres du noyau n’est pas nécessaire en général, mais elle peut s’avérer utile pour détecter et résoudre les problèmes liés au système d’exploitation. Les paramètres du noyau doivent être ajoutés au fichier /etc/default/grub
à la ligne GRUB_CMDLINE_LINUX
pour les rendre persistants après chaque redémarrage. Un nouveau fichier de configuration pour le chargeur d’amorçage doit être généré à chaque fois que /etc/default/grub
change, ce qui est effectué par la commande grub-mkconfig -o /boot/grub/grub.cfg
. Une fois que le système d’exploitation tourne, les paramètres du noyau utilisés pour le chargement de la session en cours sont disponibles en lecture dans le fichier /proc/cmdline
.
Note
|
La configuration de GRUB sera abordée plus en détail dans une leçon ultérieure. |
Initialisation du système
En dehors du noyau, le système d’exploitation dépend d’autres composants qui fournissent les fonctionnalités voulues. Un grand nombre de ces composants sont chargés au cours du processus d’initialisation du système et vont du simple script shell au programme de service plus complexe. Les scripts sont souvent utilisés pour effectuer des tâches éphémères qui s’exécutent et se terminent pendant le processus d’initialisation du système. Les services, également connus sous le nom de démons, sont susceptibles d’être actifs en permanence car ils peuvent être responsables des aspects intrinsèques du système d’exploitation.
La variété des procédés permettant d’intégrer dans une distribution Linux des scripts de démarrage et des démons présentant les caractéristiques les plus diverses est énorme, ce qui a historiquement entravé le développement d’une solution unique répondant aux attentes des mainteneurs et des utilisateurs de toutes les distributions Linux. Ceci étant dit, n’importe quel outil choisi par les mainteneurs des distributions pour remplir cette fonction sera au moins capable de démarrer, d’arrêter et de redémarrer les services du système. Ces actions sont souvent effectuées par le système lui-même après une mise à jour logicielle, par exemple, mais l’administrateur du système devra presque toujours redémarrer manuellement le service après avoir apporté des modifications à son fichier de configuration.
Il est également pratique pour un administrateur système de pouvoir activer un ensemble particulier de démons en fonction du contexte. Il devrait être possible, par exemple, de ne faire tourner que le strict minimum de services pour effectuer des tâches de maintenance du système.
Note
|
À proprement parler, le système d’exploitation n’est constitué que du noyau et des composants qui contrôlent le matériel et gèrent tous les processus. Il est cependant courant d’utiliser le terme "système d’exploitation" de manière plus souple, pour désigner tout un groupe de programmes distincts qui constituent l’environnement logiciel dans lequel un utilisateur peut effectuer les tâches informatiques de base. |
L’initialisation du système d’exploitation commence lorsque le chargeur de démarrage charge le noyau dans la RAM. Ensuite, le noyau prend en charge le CPU et commence à détecter et à configurer les aspects fondamentaux du système d’exploitation comme la configuration matérielle de base et l’adressage de la mémoire.
Le noyau ouvre alors le disque mémoire initial (initial RAM filesystem ou initramfs). L’initramfs est une archive qui contient un système de fichiers utilisé comme système de fichiers racine temporaire lors du processus de démarrage. Le rôle principal d’un fichier initramfs est de fournir les modules nécessaires pour que le noyau puisse accéder au "vrai" système de fichiers racine du système d’exploitation.
Dès que le système de fichiers racine est disponible, le noyau monte tous les systèmes de fichiers configurés dans /etc/fstab
et exécute ensuite le premier programme, un utilitaire nommé init
. Le programme init
est responsable de l’exécution de tous les scripts d’initialisation et des démons du système. Il existe des implémentations distinctes de ces initialiseurs de système en dehors de l’init traditionnel, comme systemd et Upstart. Une fois que le programme init
est chargé, l’initramfs est retiré de la RAM.
- SysV init
-
Un gestionnaire de services basé sur la norme SysV init contrôle les démons et les ressources qui seront disponibles en se basant sur le concept de niveaux d’exécution ou runlevels. Les niveaux d’exécution sont numérotés de 0 à 6 et définis par les mainteneurs des distributions pour répondre à des objectifs spécifiques. Les seules définitions de niveau d’exécution communes à toutes les distributions sont les niveaux d’exécution 0, 1 et 6.
- systemd
-
Systemd est un gestionnaire de système et de services moderne avec une couche de compatibilité pour les commandes et les niveaux d’exécution SysV. systemd a une structure parallèle, utilise les sockets et D-Bus pour l’activation des services, l’exécution de démons à la demande, la surveillance des processus avec cgroups, le support des instantanés, la récupération des sessions système, le contrôle des points de montage et un contrôle des services basé sur les dépendances. Ces dernières années, la plupart des grandes distributions Linux ont progressivement adopté systemd comme gestionnaire de système par défaut.
- Upstart
-
Comme systemd, Upstart est un remplaçant d’init. Le principal objectif d’Upstart est d’accélérer le processus de démarrage en parallélisant le processus de chargement des services du système. Upstart était utilisé par les distributions basées sur Ubuntu dans les versions précédentes, mais aujourd’hui il a cédé la place à systemd.
Inspection de l’initialisation
Il peut y avoir des erreurs au cours du processus de démarrage, mais elles ne sont pas forcément critiques au point de provoquer l’arrêt complet du système d’exploitation. Néanmoins, ces erreurs peuvent compromettre le comportement attendu du système. Toutes les erreurs génèrent des messages qui peuvent être utilisés pour de futures investigations, car ils contiennent des informations précieuses sur le moment et la manière dont l’erreur s’est produite. Même lorsqu’aucun message d’erreur n’est généré, les informations recueillies pendant le processus de démarrage peuvent être utiles à des fins de réglage et de configuration.
L’espace mémoire où le noyau stocke ses messages, y compris les messages de démarrage, est appelé le tampon circulaire du noyau (kernel ring buffer). Les messages sont conservés dans le tampon circulaire même lorsqu’ils ne sont pas affichés pendant le processus d’initialisation, comme lorsqu’une animation est affichée à la place. Cependant, le tampon circulaire du noyau perd tous les messages lorsque le système est éteint ou lorsque la commande dmesg --clear
est exécutée. Invoquée sans options, la commande dmesg
affiche les messages actuels dans le tampon circulaire du noyau :
$ dmesg [ 5.262389] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null) [ 5.449712] ip_tables: (C) 2000-2006 Netfilter Core Team [ 5.460286] systemd[1]: systemd 237 running in system mode. [ 5.480138] systemd[1]: Detected architecture x86-64. [ 5.481767] systemd[1]: Set hostname to <torre>. [ 5.636607] systemd[1]: Reached target User and Group Name Lookups. [ 5.636866] systemd[1]: Created slice System Slice. [ 5.637000] systemd[1]: Listening on Journal Audit Socket. [ 5.637085] systemd[1]: Listening on Journal Socket. [ 5.637827] systemd[1]: Mounting POSIX Message Queue File System... [ 5.638639] systemd[1]: Started Read required files in advance. [ 5.641661] systemd[1]: Starting Load Kernel Modules... [ 5.661672] EXT4-fs (sda1): re-mounted. Opts: errors=remount-ro [ 5.694322] lp: driver loaded but no devices found [ 5.702609] ppdev: user-space parallel port driver [ 5.705384] parport_pc 00:02: reported by Plug and Play ACPI [ 5.705468] parport0: PC-style at 0x378 (0x778), irq 7, dma 3 [PCSPP,TRISTATE,COMPAT,EPP,ECP,DMA] [ 5.800146] lp0: using parport0 (interrupt-driven). [ 5.897421] systemd-journald[352]: Received request to flush runtime journal from PID 1
La sortie de dmesg
peut compter des centaines de lignes, et le listing ci-dessus ne contient donc que l’extrait qui montre le noyau en train d’appeler le gestionnaire de services systemd. Les valeurs au début de chaque ligne correspondent au nombre de secondes par rapport à l’instant où le noyau a commencé à être chargé.
Dans les systèmes basés sur systemd, la commande journalctl
affichera les messages d’initialisation avec les options -b
, --boot
, -k
ou --dmesg
. La commande journalctl --list-boots
affiche une liste de numéros de démarrage relatifs au démarrage en cours, leur empreinte d’identification et l’horodatage du premier et du dernier message correspondant :
$ journalctl --list-boots -4 9e5b3eb4952845208b841ad4dbefa1a6 Thu 2019-10-03 13:39:23 -03—Thu 2019-10-03 13:40:30 -03 -3 9e3d79955535430aa43baa17758f40fa Thu 2019-10-03 13:41:15 -03—Thu 2019-10-03 14:56:19 -03 -2 17672d8851694e6c9bb102df7355452c Thu 2019-10-03 14:56:57 -03—Thu 2019-10-03 19:27:16 -03 -1 55c0d9439bfb4e85a20a62776d0dbb4d Thu 2019-10-03 19:27:53 -03—Fri 2019-10-04 00:28:47 -03 0 08fbbebd9f964a74b8a02bb27b200622 Fri 2019-10-04 00:31:01 -03—Fri 2019-10-04 10:17:01 -03
Les journaux d’initialisation précédents sont également conservés dans les systèmes basés sur systemd, de sorte que les messages des sessions précédentes du système d’exploitation peuvent toujours être inspectés. Si les options -b 0
ou --boot=0
sont fournies, alors les messages pour le démarrage en cours seront affichés. Les options -b -1
ou --boot=-1
afficheront les messages de la précédente initialisation. Les options -b -2
ou --boot=-2
montreront les messages de l’avant-dernière initialisation, et ainsi de suite. L’extrait suivant montre le noyau en train d’appeler le gestionnaire de services systemd pour le dernier processus d’initialisation :
$ journalctl -b 0 oct 04 00:31:01 ubuntu-host kernel: EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null) oct 04 00:31:01 ubuntu-host kernel: ip_tables: (C) 2000-2006 Netfilter Core Team oct 04 00:31:01 ubuntu-host systemd[1]: systemd 237 running in system mode. oct 04 00:31:01 ubuntu-host systemd[1]: Detected architecture x86-64. oct 04 00:31:01 ubuntu-host systemd[1]: Set hostname to <torre>. oct 04 00:31:01 ubuntu-host systemd[1]: Reached target User and Group Name Lookups. oct 04 00:31:01 ubuntu-host systemd[1]: Created slice System Slice. oct 04 00:31:01 ubuntu-host systemd[1]: Listening on Journal Audit Socket. oct 04 00:31:01 ubuntu-host systemd[1]: Listening on Journal Socket. oct 04 00:31:01 ubuntu-host systemd[1]: Mounting POSIX Message Queue File System... oct 04 00:31:01 ubuntu-host systemd[1]: Started Read required files in advance. oct 04 00:31:01 ubuntu-host systemd[1]: Starting Load Kernel Modules... oct 04 00:31:01 ubuntu-host kernel: EXT4-fs (sda1): re-mounted. Opts: commit=300,barrier=0,errors=remount-ro oct 04 00:31:01 ubuntu-host kernel: lp: driver loaded but no devices found oct 04 00:31:01 ubuntu-host kernel: ppdev: user-space parallel port driver oct 04 00:31:01 ubuntu-host kernel: parport_pc 00:02: reported by Plug and Play ACPI oct 04 00:31:01 ubuntu-host kernel: parport0: PC-style at 0x378 (0x778), irq 7, dma 3 [PCSPP,TRISTATE,COMPAT,EPP,ECP,DMA] oct 04 00:31:01 ubuntu-host kernel: lp0: using parport0 (interrupt-driven). oct 04 00:31:01 ubuntu-host systemd-journald[352]: Journal started oct 04 00:31:01 ubuntu-host systemd-journald[352]: Runtime journal (/run/log/journal/abb765408f3741ae9519ab3b96063a15) is 4.9M, max 39.4M, 34.5M free. oct 04 00:31:01 ubuntu-host systemd-modules-load[335]: Inserted module 'lp' oct 04 00:31:01 ubuntu-host systemd-modules-load[335]: Inserted module 'ppdev' oct 04 00:31:01 ubuntu-host systemd-modules-load[335]: Inserted module 'parport_pc' oct 04 00:31:01 ubuntu-host systemd[1]: Starting Flush Journal to Persistent Storage...
Les messages d’initialisation ainsi que les autres messages émis par le système d’exploitation sont stockés dans des fichiers à l’intérieur du répertoire /var/log/
. Si une erreur critique se produit et que le système d’exploitation est incapable de poursuivre le processus d’initialisation après le chargement du noyau et de l’initramfs, un support de démarrage alternatif pourrait être utilisé pour démarrer le système et accéder au système de fichiers correspondant. Ensuite, les fichiers en dessous de /var/log/
peuvent être examinés pour déterminer les raisons possibles de l’interruption du processus de démarrage. Les options -D
ou --directory
de la commande journalctl
peuvent être utilisées pour lire les logs dans des répertoires autres que /var/log/journal/
, qui est l’emplacement par défaut des messages de journalisation de systemd. Étant donné que les messages du journal de systemd ne sont pas stockés au format texte brut, la commande journalctl
est indispensable pour les lire.
Exercices guidés
-
Sur une machine équipée d’un firmware BIOS, où se situe le binaire d’amorçage ?
-
Le firmware UEFI gère les fonctionnalités étendues fournies par des programmes externes, les applications EFI. Toutefois, ces applications disposent de leur propre emplacement spécifique. À quel endroit du système les applications EFI se trouvent-elles ?
-
Les chargeurs de démarrage permettent de passer des paramètres personnalisés au noyau avant de le charger. Admettons que le système soit incapable de démarrer parce que l’emplacement du système de fichiers racine est mal renseigné. Comment le système de fichiers racine approprié, situé dans
/dev/sda3
, serait-il fourni comme paramètre au noyau ? -
Le processus de démarrage d’une machine sous Linux se termine par le message suivant :
ALERT! /dev/sda3 does not exist. Dropping to a shell!
Quelle est la cause probable de ce problème ?
Exercices d’approfondissement
-
Le chargeur de démarrage présente une liste de systèmes d’exploitation au choix lorsque plusieurs systèmes d’exploitation sont installés sur la machine. Cependant, il arrive qu’un système d’exploitation nouvellement installé écrase le MBR du disque dur, ce qui supprime la première phase du chargeur de démarrage en rendant l’autre système d’exploitation inaccessible. Pourquoi cela ne serait-il pas le cas sur une machine équipée d’un firmware UEFI ?
-
Quelle est la conséquence habituelle de l’installation d’un noyau personnalisé sans fournir une image initramfs appropriée ?
-
Le journal d’initialisation compte des centaines de lignes, de sorte que le résultat de la commande
dmesg
est souvent transmis à une commande de pagination — comme la commandeless
— pour faciliter la lecture. Quelle option dedmesg
va automatiquement paginer sa sortie, en éliminant la nécessité d’utiliser explicitement une commande de pagination ? -
Un disque dur contenant tout le système de fichiers d’une machine hors ligne a été retiré et relié à une machine en état de marche en tant que disque secondaire. En supposant que son point de montage est
/mnt/hd
, commentjournalctl
serait-il invoqué pour inspecter le contenu des fichiers de journalisation situés dans/mnt/hd/var/log/journal/
?
Résumé
Cette leçon couvre la séquence de démarrage dans un système Linux standard. Une bonne connaissance du fonctionnement du processus de démarrage d’un système Linux permet d’éviter les erreurs qui peuvent rendre le système inaccessible. La leçon aborde les sujets suivants :
-
Les différences entre les modes de démarrage du BIOS et de l’UEFI.
-
Les phases typiques de l’initialisation du système.
-
La récupération des messages de démarrage.
Voici les procédures et les commandes abordées :
-
Les paramètres du noyau les plus courants.
-
Les commandes pour lire les messages de démarrage :
dmesg
etjournalctl
.
Réponses aux exercices guidés
-
Sur une machine équipée d’un firmware BIOS, où se situe le binaire d’amorçage ?
Dans le MBR du premier périphérique de stockage, tel que défini dans l’utilitaire de configuration du BIOS.
-
Le firmware UEFI gère les fonctionnalités étendues fournies par des programmes externes, les applications EFI. Toutefois, ces applications disposent de leur propre emplacement spécifique. À quel endroit du système les applications EFI se trouvent-elles ?
Les applications EFI sont stockées dans la partition système EFI (ESP ou EFI System Partition), située dans n’importe quel bloc de stockage disponible doté d’un système de fichiers compatible (généralement un système de fichiers FAT32).
-
Les chargeurs de démarrage permettent de passer des paramètres personnalisés au noyau avant de le charger. Admettons que le système soit incapable de démarrer parce que l’emplacement du système de fichiers racine est mal renseigné. Comment le système de fichiers racine approprié, situé dans
/dev/sda3
, serait-il fourni comme paramètre au noyau ?Le paramètre
root
doit être utilisé, comme dansroot=/dev/sda3
. -
Le processus de démarrage d’une machine sous Linux se termine par le message suivant :
ALERT! /dev/sda3 does not exist. Dropping to a shell!
Quelle est la cause probable de ce problème ?
Le noyau n’a pas pu trouver le périphérique
/dev/sda3
, renseigné comme système de fichiers racine.
Answers to Explorational Exercises
-
Le chargeur de démarrage présente une liste de systèmes d’exploitation au choix lorsque plusieurs systèmes d’exploitation sont installés sur la machine. Cependant, il arrive qu’un système d’exploitation nouvellement installé écrase le MBR du disque dur, ce qui supprime la première phase du chargeur de démarrage en rendant l’autre système d’exploitation inaccessible. Pourquoi cela ne serait-il pas le cas sur une machine équipée d’un firmware UEFI ?
Les machines UEFI n’utilisent pas le MBR du disque dur pour stocker la première phase du chargeur de démarrage.
-
Quelle est la conséquence habituelle de l’installation d’un noyau personnalisé sans fournir une image initramfs appropriée ?
Le système de fichiers racine peut être inaccessible si son type a été compilé comme un module de noyau externe.
-
Le journal d’initialisation compte des centaines de lignes, de sorte que le résultat de la commande
dmesg
est souvent transmis à une commande de pagination — comme la commandeless
— pour faciliter la lecture. Quelle option dedmesg
va automatiquement paginer sa sortie, en éliminant la nécessité d’utiliser explicitement une commande de pagination ?Les commandes
dmesg -H
oudmesg --human
activeront la pagination par défaut. -
Un disque dur contenant tout le système de fichiers d’une machine hors ligne a été retiré et relié à une machine en état de marche en tant que disque secondaire. En supposant que son point de montage est
/mnt/hd
, commentjournalctl
serait-il invoqué pour inspecter le contenu des fichiers de journalisation situés dans/mnt/hd/var/log/journal/
?Avec les options
journalctl -D /mnt/hd/var/log/journal
oujournalctl --directory=/mnt/hd/var/log/journal