Administration Système

Ce laboratoire porte sur l'administration système sous GNU/Linux, en particulier sur le démarrage et l'arrêt du système. Il permet de comprendre les différentes étapes du boot, le rôle du BIOS, du chargeur d'amorçage, du noyau et du processus init. Il aborde aussi la gestion des scripts de démarrage et de connexion, ainsi que les procédures d'arrêt propre du système.

D'après le document Administration Système

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Document source

Administration Système

System Administration · PDF · 39 pages

Afficher l'aperçu du document

Consulter le document original →

Ce laboratoire porte sur l'administration système sous GNU/Linux, en particulier sur le démarrage et l'arrêt du système. Il permet de comprendre les différentes étapes du boot, le rôle du BIOS, du chargeur d'amorçage, du noyau et du processus init. Il aborde aussi la gestion des scripts de démarrage et de connexion, ainsi que les procédures d'arrêt propre du système. Pour réaliser ce TP, il faut disposer d'un système GNU/Linux fonctionnel et avoir des connaissances de base en ligne de commande et en structure des systèmes de fichiers.

Objectifs

  • Comprendre les différentes étapes du démarrage d'un système GNU/Linux.
  • Identifier le rôle du BIOS, du MBR, du bootloader (GRUB ou LILO) et du noyau.
  • Analyser le fonctionnement du processus init et la gestion des runlevels.
  • Connaître l'organisation des scripts de démarrage et leur exécution.
  • Appliquer une procédure correcte d'arrêt du système pour éviter les dommages.

Prérequis et installation

  • Un système GNU/Linux avec accès root.
  • Connaissances élémentaires sur la structure des systèmes de fichiers Linux.
  • Accès à un terminal pour exécuter les commandes.
  • Outils de consultation de fichiers (cat, less), et commandes dd et od pour l'analyse du MBR.

Démarrage du système : étapes et rôle des composants

Le démarrage d'un système GNU/Linux se déroule en plusieurs étapes successives :

  1. BIOS : Au démarrage, le BIOS (Basic Input/Output System), stocké en ROM, réalise un POST (Power-On Self Test) pour vérifier le matériel et détecter les périphériques d'amorçage (disque dur, CD-ROM, clé USB, etc.). Il recherche ensuite le MBR (Master Boot Record) sur le périphérique d'amorçage.
  2. MBR : Le MBR est le premier secteur du disque (512 octets) contenant un petit programme de démarrage (bootloader 1) et la table de partitions. Le BIOS charge ce secteur en mémoire à l'adresse 0x7c00 et lui passe le contrôle.
  3. Bootloader : Le bootloader 1 chargé depuis le MBR charge ensuite un second bootloader situé dans la partition /boot (bootloader 2). Les bootloaders les plus courants sont GRUB et LILO. GRUB est plus récent et lit sa configuration dans /boot/grub/grub.conf, tandis que LILO nécessite une réécriture du MBR à chaque modification.
  4. Chargement du noyau : Le bootloader charge en mémoire le noyau Linux (fichier vmlinuz-<version>) ainsi que l'initrd (image disque RAM initial) qui contient les pilotes nécessaires au démarrage, notamment pour les périphériques SCSI, RAID ou USB.
  5. Noyau : Le noyau initialise la mémoire, les processeurs, les périphériques standards et monte la racine temporaire à partir de l'initrd. Il charge les modules nécessaires, démonte l'initrd et monte la racine définitive du système de fichiers.
  6. Processus init : Le noyau lance ensuite le premier processus utilisateur, /sbin/init, qui lit le fichier /etc/inittab pour déterminer le runlevel et les scripts à exécuter pour démarrer les services.

Une fois ces étapes terminées, l'utilisateur est invité à se connecter.

Analyse du MBR et du bootloader

Pour mieux comprendre le MBR, vous pouvez examiner son contenu avec les commandes suivantes :

# dd if=/dev/had of=mbr.bin bs=512 count=1
# od -x mbr.bin

Le MBR contient :

  • Les 446 premiers octets : le premier chargeur d'amorçage (code exécutable et messages d'erreur).
  • 64 octets : la table des partitions (4 partitions maximum, 16 octets chacune).
  • 2 octets : le nombre magique 0xAA55, qui valide la présence d'un MBR correct.

Les partitions peuvent être primaires (contenant un OS) ou étendues (permettant la création de lecteurs logiques).

Le processus init et la gestion des runlevels

Le processus /sbin/init est le père de tous les autres processus. Il lit /etc/inittab pour :

  • Déterminer le runlevel par défaut (initdefault).
  • Définir les scripts à exécuter pour chaque runlevel.
  • Gérer les actions à effectuer lors d'événements spécifiques (ex : CTRL-ALT-DEL).

Les runlevels sont les suivants :

  • 0 : arrêt du système (halt)
  • 1 : mode mono-utilisateur
  • 2 : multi-utilisateurs sans NFS
  • 3 : multi-utilisateurs complet
  • 4 : non utilisé
  • 5 : multi-utilisateurs avec interface graphique
  • 6 : redémarrage du système (reboot)

Selon le runlevel, init exécute les scripts situés dans /etc/rc.d/rcX.d/ (X correspondant au runlevel). Ces scripts sont des liens symboliques vers /etc/rc.d/init.d/. Leur nom commence par S (start) ou K (kill) suivi d'un numéro indiquant l'ordre d'exécution.

Par exemple, dans /etc/rc.d/rc5.d/ on trouve :

lrwxrwxrwx 1 root root 14 Jul 20 21:43 S10network -> ../init.d/network*
lrwxrwxrwx 1 root root 14 Jul 20 21:47 S55sshd -> ../init.d/sshd*
lrwxrwxrwx 1 root root 11 Jul 20 21:43 S99local -> ../rc.local*

Les scripts K sont d'abord exécutés avec l'argument stop pour arrêter les services, puis les scripts S sont lancés avec start pour démarrer les services.

Scripts de connexion utilisateur

Lors de la connexion, plusieurs scripts sont exécutés dans l'ordre :

  1. /etc/profile : configuration globale pour tous les utilisateurs, définit PATH et umask.
  2. Exécution des scripts dans /etc/profile.d/*.sh.
  3. $HOME/.bash_profile : fichier personnel de démarrage, exécute $HOME/.bashrc.
  4. $HOME/.bashrc : contient fonctions et alias personnels.
  5. /etc/bashrc : alias globaux et définition du prompt $PS1.

Enfin, le prompt utilisateur s'affiche et le shell attend une commande.

Arrêt propre du système

Il est essentiel d'arrêter un système GNU/Linux correctement pour éviter la corruption des systèmes de fichiers, car les écritures sont souvent mises en cache avant d'être réellement enregistrées sur disque.

La commande principale pour arrêter le système est :

shutdown -h now

On peut aussi programmer un arrêt différé avec :

shutdown -h +temps "message"

où temps est le délai en minutes avant l'arrêt et message une explication.

Les commandes halt, telinit, init ou poweroff peuvent également être utilisées pour arrêter ou redémarrer le système.

Procédure complète du démarrage

Le processus complet de démarrage se résume ainsi :

  1. Démarrage du BIOS et exécution du POST.
  2. Chargement du MBR et exécution du premier bootloader.
  3. Chargement du second bootloader (GRUB ou LILO).
  4. Chargement du noyau Linux et de l'initrd.
  5. Initialisation du noyau et montage des systèmes de fichiers.
  6. Lancement du processus init.
  7. Exécution des scripts d'initialisation (/etc/rc.d/rc.sysinit puis /etc/rc.d/rcX.d/).
  8. Lancement des consoles virtuelles avec mingetty ou du gestionnaire graphique.
  9. Affichage de l'invite de connexion.

Résultats attendus

  • Observation d'un démarrage fluide avec passage successif du BIOS au bootloader, puis au noyau et enfin à init.
  • Affichage de l'écran de sélection du système d'exploitation ou du noyau via GRUB ou LILO.
  • Montage correct des partitions selon /etc/fstab.
  • Exécution des scripts de démarrage correspondant au runlevel configuré.
  • Affichage de l'invite de connexion sur les consoles virtuelles ou en mode graphique selon le runlevel.
  • Arrêt du système sans erreurs ni corruption des fichiers.

Pièges courants

  • Modifier le MBR sans précaution peut rendre le système non amorçable.
  • Ne pas respecter l'ordre d'exécution des scripts S et K peut empêcher le démarrage ou l'arrêt correct des services.
  • Oublier de démonter proprement les systèmes de fichiers lors de l'arrêt peut endommager les données.
  • Confusion entre les différents runlevels et leurs scripts associés peut entraîner un comportement inattendu du système.
  • Ne pas vérifier la présence du nombre magique 0xAA55 dans le MBR peut indiquer un secteur corrompu.
  • Ne pas utiliser la commande shutdown pour arrêter le système, mais éteindre brutalement la machine, risque de perte de données.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions