Cours LPIC 101
Le cours LPIC-1 (Examen 101) fait partie de la certification Linux Professional Institute (LPI), qui
est une certification reconnue mondialement pour les administrateurs systèmes Linux. Cet examen
couvre des sujets de base qui permettent de tester les compétences des candidats sur des tâches
courantes d'administration Linux. Voici une vue d'ensemble des domaines principaux couverts dans
cet examen :
Domaine 1 : Architecture du système (14%)
- Déterminer et configurer le matériel : installation et configuration de périphériques matériels.
- Démarrage du système: chargeurs d'amorçage (boot loaders), démarrage du système.
- Modification des niveaux de fonctionnement et extinction du système : gestion des services,
niveaux d'exécution, extinction propre du système.
Domaine 2 : Installation de Linux et gestion des packages (18%)
- Conception de la disposition des disques: partitionnement des disques, systèmes de fichiers.
- Installation d'un gestionnaire de démarrage : configuration de GRUB ou LILO.
- Gestion des packages Debian et RPM : installation, mise à jour, et suppression des logiciels.
Domaine 3 : Commandes GNU et Unix (43%)
- Travailler en ligne de commande : utilisation des shells, scripts shell, et outils courants de
manipulation de fichiers.
- Gestion des processus : surveillance et gestion des processus sous Linux.
- Utilitaires de texte : manipulation des fichiers texte, recherche, filtrage.
Domaine 4 : Dispositifs, systèmes de fichiers Linux et hiérarchie des systèmes de fichiers
standards (25%)
- Création de systèmes de fichiers : gestion des systèmes de fichiers et des partitions.
- Montage et démontage des systèmes de fichiers : gestion des points de montage et des systèmes de
fichiers.
- Gestion des permissions : comprendre et configurer les permissions des fichiers et des répertoires.
Architecture du système
Le domaine "Architecture du système" est l'un des domaines couverts par l'examen LPIC-101. Il
représente environ 14% de l'examen. Ce domaine se concentre sur la compréhension de la manière
dont les composants matériels interagissent avec le système d'exploitation Linux. Voici un aperçu
détaillé des sous-domaines et des concepts clés à maîtriser dans cette section.
1.1 Déterminer et configurer le matériel (3 points)
- Configuration du matériel interne :
1
- Identifier et configurer les périphériques internes comme les cartes PCI, USB, etc.
- Connaître les outils pour la configuration du matériel (comme `lspci`, `lsusb`, `lsblk`, `dmesg`).
- Savoir comment vérifier et gérer les périphériques du système à l'aide des fichiers dans `/dev`.
- Configuration du BIOS/UEFI :
- Comprendre comment accéder au BIOS ou à l'UEFI et modifier les paramètres pour optimiser les
performances et la compatibilité matérielle.
- Connaître les options courantes telles que l'ordre de démarrage, la gestion de l'énergie, les
options de sécurité, etc.
1.2 Démarrage du système (4 points)
- Processus de démarrage :
- Connaître les étapes du processus de démarrage Linux, de l'initialisation du matériel par le
BIOS/UEFI au démarrage du noyau Linux.
- Comprendre le rôle du chargeur d'amorçage (comme GRUB ou LILO) dans le processus de
démarrage.
- Savoir comment configurer GRUB et modifier les options de démarrage au besoin.
- Gestion des niveaux d'exécution (runlevels) :
- Savoir comment Linux gère les différents niveaux d'exécution (ou cibles dans `systemd`).
- Connaître les commandes pour changer de niveau d'exécution ou de cible (`init`, `systemctl`).
1.3 Modification des niveaux de fonctionnement et extinction
du système (7 points)
- Gestion des services et des niveaux d'exécution :
- Comprendre comment démarrer, arrêter et redémarrer les services avec des outils comme
`systemctl`, `service`, ou `init.d`.
- Connaître les runlevels classiques et leurs équivalents `systemd` :
- Runlevel 0 : arrêt du système (équivalent à `poweroff.target`).
- Runlevel 1 : mode mono-utilisateur (équivalent à `rescue.target`).
- Runlevel 2-5 : mode multi-utilisateur avec variations de services.
- Runlevel 6 : redémarrage du système (équivalent à `reboot.target`).
- Extinction propre du système :
- Connaître les différentes commandes pour éteindre ou redémarrer le système de manière propre :
`shutdown`, `reboot`, `halt`, `poweroff`.
- Comprendre l'importance d'une extinction propre pour éviter la corruption de données.
Outils à maîtriser :
- lspci : Liste les périphériques PCI.
- lsusb : Liste les périphériques USB.
- dmesg : Affiche les messages du noyau.
- grub-install, update-grub : Outils de gestion du chargeur d'amorçage GRUB.
- systemctl: Commande pour gérer les services et les niveaux d'exécution dans `systemd`.
- shutdown, reboot, halt : Commandes pour l'arrêt et le redémarrage.
2
Concepts clés :
- Le chargeur d'amorçage (Boot Loader) : Programme utilisé pour démarrer le noyau Linux. Il peut
être configuré pour démarrer différents noyaux ou systèmes d'exploitation.
- Niveaux d'exécution: Ils déterminent l'état du système après le démarrage (mode mono-utilisateur,
multi-utilisateur, etc.).
- Gestion des périphériques : Utiliser les bons outils pour configurer et gérer les périphériques
matériels connectés à la machine Linux.
Pour bien préparer cette section, il est recommandé de :
- Travailler sur un système Linux réel ou virtuel pour expérimenter ces concepts en pratique.
- Utiliser les manuels de référence et la documentation des commandes pour approfondir votre
compréhension.
3
TP 1 : Démarrage et gestion du
système
Objectif : Comprendre et configurer le processus de démarrage, les périphériques et les niveaux
d'exécution dans un système Linux.
Pré-requis :
- Accès à une machine Linux (physique ou virtuelle).
- Droits administratifs (sudo).
Étape 1 : Explorer le matériel et les périphériques
1. Lister les périphériques PCI :
- Utilisez la commande `lspci` pour lister les périphériques PCI connectés à votre système.
- Identifiez un périphérique, par exemple une carte graphique ou un contrôleur réseau.
lspci
2. Lister les périphériques USB :
- Utilisez la commande `lsusb` pour lister les périphériques USB connectés à votre système.
- Essayez de brancher un périphérique USB (clé USB, souris, etc.) et observez le changement.
lsusb
3. Afficher les messages du noyau :
- Utilisez la commande `dmesg` pour afficher les messages du noyau concernant le démarrage du
système et la détection des périphériques.
- Filtrez les messages relatifs à un périphérique spécifique (par exemple, un périphérique USB) à
l'aide de `grep`.
dmesg | grep usb
Étape 2 : Configurer le chargeur d'amorçage GRUB
GRand Unified Bootloader, version 2 (ou GRUB 2) est la seconde version de GNU GRUB. C'est un logiciel permettant de charger un
système d'exploitation. Il pourra amorcer lui-même des systèmes compatibles avec la norme POSIX (GNU/Linux, *BSD, Mac OS, etc.) ou
enchaîner vers un autre chargeur d’amorçage pour les autres systèmes.
1. Vérifier la configuration de GRUB :
- Consultez le fichier de configuration de GRUB (généralement `/etc/default/grub`).
- Examinez les options disponibles, par exemple, le délai avant démarrage automatique ou le
noyau par défaut.
cat /etc/default/grub
4
2. Mettre à jour GRUB :
- Modifiez une option dans le fichier de configuration, par exemple, changez le délai de
démarrage (option `GRUB_TIMEOUT`).
- Après modification, mettez à jour GRUB pour appliquer les changements.
sudo nano /etc/default/grub
3. Tester les modifications :
- Redémarrez le système et observez le comportement de GRUB. Est-ce que le délai de démarrage
a changé ?
- Si vous avez plusieurs noyaux installés, essayez de démarrer sur un autre noyau à partir de
l'écran GRUB.
Étape 3 : Gestion des niveaux d'exécution
1. Vérifier le niveau d'exécution actuel (ou cible `systemd`) :
- Utilisez la commande `runlevel` pour vérifier le niveau d'exécution actuel, ou `systemctl get-
default` pour vérifier la cible par défaut sous `systemd`.
runlevel
systemctl get-default
2. Changer de niveau d'exécution (ou cible) :
- Changez temporairement le niveau d'exécution ou la cible, par exemple en passant au mode
mono-utilisateur (runlevel 1 ou `rescue.target`).
sudo systemctl isolate rescue.target
- Revenez au niveau d'exécution normal (`multi-user.target` ou `graphical.target`).
sudo systemctl isolate multi-user.target
3. Configurer la cible par défaut :
- Modifiez la cible par défaut pour qu'elle soit en mode texte (`multi-user.target`) au lieu de
graphique, puis redémarrez le système.
sudo systemctl set-default multi-user.target
sudo reboot
4. Revenir à la cible graphique :
- Après avoir redémarré en mode texte, revenez à la cible graphique par défaut.
sudo systemctl set-default graphical.target
5
NB :
Le niveau de démarrage (ou "runlevel" en anglais) sous Linux définit l'état du système, en particulier quels services ou
processus doivent être lancés. Chaque niveau de démarrage correspond à un ensemble spécifique de services et de
processus. Selon la distribution Linux et le gestionnaire de démarrage utilisé (comme SysVinit, Upstart ou systemd), la
gestion des niveaux de démarrage peut varier.
Niveaux de démarrage classiques (SysVinit)
Les systèmes basés sur SysVinit utilisent une série de niveaux de démarrage numérotés de 0 à 6. Voici une explication
de chacun :
Niveau Description
0 Arrêt du système (shutdown).
1 Mode monoutilisateur (maintenance).
2 Mode multi-utilisateur sans réseau.
3 Mode multi-utilisateur avec réseau (utilisation normale en console).
4 Non utilisé (peut être personnalisé par l'utilisateur).
5 Mode multi-utilisateur avec réseau et interface graphique (GUI).
6 Redémarrage du système (reboot).
Gestion des niveaux de démarrage avec SysVinit
•Vérifier le niveau de démarrage actuel :
who -r
•Changer de niveau de démarrage :
Vous pouvez changer de niveau de démarrage avec la commande telinit. Par exemple, pour passer au
niveau de démarrage 3 (mode texte avec réseau) :
sudo telinit 3
•Configurer le niveau de démarrage par défaut :
Le fichier /etc/inittab contient la configuration du niveau de démarrage par défaut dans les systèmes
utilisant SysVinit. Vous pouvez modifier ce fichier pour changer le niveau de démarrage par défaut.
Par exemple, pour configurer le niveau de démarrage 5 par défaut (interface graphique), vous pouvez modifier
cette ligne :
id:5:initdefault:
Niveaux de démarrage avec systemd
La plupart des distributions Linux modernes utilisent systemd au lieu de SysVinit. Avec systemd, les niveaux de
démarrage sont remplacés par des cibles ("targets"). Voici les cibles équivalentes aux anciens niveaux de démarrage :
Niveaux SysVinit Cible systemd Description
0 poweroff.target Arrêter le système.
1 rescue.target Mode monoutilisateur (maintenance).
2, 3, 4 multi-user.target Mode multi-utilisateur sans interface graphique.
5 graphical.target Mode multi-utilisateur avec interface graphique.
6 reboot.target Redémarrage du système.
6
Gestion des cibles avec systemd
•Vérifier la cible actuelle :
Pour savoir quelle cible est active, utilisez :
systemctl get-default
•Changer de cible :
Pour changer de cible, par exemple pour passer en mode multi-utilisateur (équivalent du niveau 3), vous
pouvez utiliser :
sudo systemctl isolate multi-user.target
Pour retourner à l'interface graphique (équivalent du niveau 5) :
sudo systemctl isolate graphical.target
•Configurer la cible par défaut :
Pour définir une cible par défaut, utilisez la commande suivante. Par exemple, pour définir l'interface
graphique comme cible par défaut :
sudo systemctl set-default graphical.target
Si vous préférez démarrer en mode multi-utilisateur sans interface graphique :
sudo systemctl set-default multi-user.target
Comparaison entre SysVinit et systemd
•SysVinit : Ancien système de gestion des niveaux de démarrage, toujours utilisé sur certaines distributions
Linux (comme Slackware).
•systemd : Nouveau système de gestion des services et des niveaux de démarrage, plus flexible et rapide,
utilisé par la plupart des distributions modernes (comme Debian, Ubuntu, Fedora).
Conclusion
Les niveaux de démarrage sous Linux permettent de définir différents états du système, allant du mode maintenance à
l'interface graphique complète. SysVinit et systemd gèrent ces niveaux différemment, mais l'idée générale reste la
même : vous pouvez contrôler quels services démarrent, définir le mode d'opération par défaut, et changer d'état à la
volée selon vos besoins.
Étape 4 : Extinction propre du système
1. Extinction planifiée :
- Programmez l'extinction du système dans 5 minutes.
sudo shutdown -h +5 "Système s'éteindra dans 5 minutes"
2. Annuler l'extinction :
7
- Annulez l'extinction programmée avant qu'elle ne soit exécutée.
sudo shutdown -c
3. Redémarrage immédiat :
- Redémarrez immédiatement le système.
sudo reboot
Étape 5 : Documentation et rapport
1. Documentez vos actions :
- Pour chaque étape, notez les commandes exécutées et les observations faites.
- Identifiez les problèmes éventuels rencontrés et comment vous les avez résolus.
2. Rapport final :
- Rédigez un court rapport récapitulatif expliquant ce que vous avez appris lors de ce TP.
- Mentionnez les étapes qui vous ont semblé les plus utiles pour votre compréhension de
l'architecture du système.
Conclusion
Ce TP vous permettra de vous familiariser avec les concepts d'architecture du système abordés dans
l'examen LPIC-101. La pratique directe est essentielle pour bien comprendre et mémoriser ces
concepts. N'oubliez pas de consulter la documentation officielle pour approfondir votre
compréhension des outils et commandes utilisés.