Cours introduction
au système d'exploitation Linux
Dr. TBATOU Zakariae
Année Universitaire 2020-2021
Ecole polytechnique privée d‘Agadir
Contenu du cours
Module II
Conception du schéma de partitionnement
«Booter» un Système
Étapes de Chargement du Système d’Exploitation
Démarrage d’un PC
Du BIOS… à l’UEFI
(Rappel sur) Le partitionnement
Table de Partitionnement
La Séquence de Boot: Boot Loader
Chargeur de Noyau : LILO et GRUB
Configuration de GRUB
Installation d’un gestionnaire d’amorçage
Contenu du cours
Quelques notions clés !
le BIOS (Basic Input/Output System)- de quoi s’occupe le BIOS ?...et l’UEFI ?
BIOS en version classique
1. Contrôle le bus système,
2. Vérifie tous les connecteurs d’extension,
3. Vérifie la mémoire de la carte graphique et les signaux commandant l’affichage,
4. Interroge le BIOS de la carte vidéo et ajouter son code de reconnaissance et c’est à ce moment-là que
l’affichages apparait à l’écran
5. Teste la RAM en tentant une écriture sur chaque zone mémoire et tente de lire ensuite pour les comparer
à ce qu’il a écrit,
6. Vérifie si le clavier et la souris sont bien connectés,
7. Envoie des signaux à tous les périphériques de stockage (lecteur disquette, cd, et DVD, USB . . . )
8. Amorce en mémoire le secteur d’amorce principal du disque dur, appelé MBR.
Contenu du cours
Quelques notions clés !
Version alternative du Bios, l’interface logicielle UEFI
Une interface logicielle située entre le micrologiciel (firmware dans une mémoire flash)
et le système d’exploitation, apparue sur les ordinateurs depuis 2010 avec de nouvelles
fonctionnalités : adressage de la mémoire, l’amorçage par le réseau, la cryptographie des
disques durs et leur exploitation avec de nouvelles tables de partitions labellisée GPT
pour les gros volumes. C’est le boot EFI, ou plutôt la norme UEFI (Unified Extensible
Firmware Interface)
Contenu du cours
Démarrage d’un PC
Du BIOS… à l’UEFI
BIOS: Basic Input Output System
Microprogramme (firmware) sur une EEPROM de la carte mère
Effectue les opération élémentaires lors de la mise sous tension
Développé en Assembleur (évolue peu)
Un système efficace mais vieillissant
o Exécuté en mode 16 bits et 1Mo de mémoire accessible
UEFI: Unified Extensible Firmware Interface
Le successeur du BIOS
Développé en C: donne une souplesse pour les évolutions
Pris en charge par de nombreux systèmes Linux depuis 2000, Mac OS X 10.4, Windows Vista SP1
[Link]
Contenu du cours
«Booter» un Système
Processus complexe
Chargement successifs de plusieurs programmes
Charger le noyau est compliqué et ne peut être réalisé en une seul opération
o Trop volumineux pour le loger en mémoire morte
o Le programme de chargement du noyau est lui-même un programme qu'il faut
charger avec un programme chargeur !
Le périphérique ou trouver le noyau est paramétrable
o Disque dur puis CD seulement
o Périphérique USB puis CD puis disque dur
o Réseau
...
Le système de chargement est dépendant de la plateforme
Contenu du cours
Une vision macro
Contenu du cours
Démarrage d’un PC
La Séquence de Boot : Exemple avec le BIOS
Chaque processeur s'initialise
Self-test
Multiprocesseurs: élection d'un CPU leader
CPU leader exécute les instructions en 0xfffffff0
Instruction en 0xfffffff0
Saut vers le début du programme BIOS (Basic Input /Output System)
BIOS: POST (Power On Self Test)
BIOS: Choix d'un périphérique d’amorçage
Contenu du cours
(Rappel sur) Le partitionnement
Subdivision de l’espace de stockage en différent zone
Au moins une partition
Nécessité d’une table de partition
Exemple de partitionnement Windows 10
Exemple de partitionnement avec plusieurs OS
Contenu du cours
Démarrage d’un PC
Table de Partitionnement GPT
MBR GUID Partition Table
Master Boot Record MBR protecteur
Code d’amorçage (lancer le boot loader) GPT primaire: entête
Table de partitionnement GPT secondaire: table partitions
Signature (0x55 AA) UEFI
BIOS et UEFI Limitation
Limitation 128 partitions
4 partitions maximum Taille partition < 256To
Taille partition < 2,2To Pas pour Windows 32 bits
Contenu du cours
Exemple: Zoom sur le MBR
Code sur 440 octets
Ne peut être qu’un amorçage du boot loader complet (une redirection vers un
programme plus complet)
Contenu du cours
La Séquence de Boot : Exemple du MBR
BIOS: Charge le MBR (Master Boot Record) du périphérique de boot
1er secteur (512 octets) du périphérique
BIOS: inspecte le MBR:
Vérification (nombre magique, table des partitions)
Recherche le secteur de boot
Attention à l'écrasement si multi OS sur la machine
BIOS: charge le secteur de boot
Charge le début du programme chargeur de Linux (Lilo, Grub) ou le chargeur d'un
autre OS
Contenu du cours
La Séquence de Boot : Boot Loader
Soit
Le programme du boot sector termine le chargement du boot loader(MBR)
Le boot sector déclenche le chargement du chargeur d'un autre OS qui
chargera le premier secteur du Boot Loader
o 1ersecteur du Boot Loader installé dans le secteur de boot secondaire (en début de
partition Linux)
o On se retrouve alors dans la même situation, le Boot Loader termine son
chargement
Le Boot loader: charge le noyau et lance son exécution
Options possibles pour paramétrer le noyau
Contenu du cours
Chargeur de Noyau : LILO et GRUB
LILO (Linux LOader)
Le chargeur «historique» (plus utilisé maintenant)
Outil ad hoc Linux (soit Linux soit Other)
Des limitations trop contraignantes
o Premier secteur sur cylindre < 1024
GRUB (Grand Unified Boot loader)
Le chargeur générique de GNU/FSF
Support natif pour de multiples OS (Linux, *BSD, ...)
Nombreuses améliorations («micro shell», ...)
Contenu du cours
Configuration de GRUB
Fichier de configuration:
/boot/grub/[Link]
Fichier lisible assez facilement
Définition des différentes possibilités de démarrage
Passage de paramètres au noyau
Identifiant des disques et partitions
Utilisation des UUID (nécessite un fichier initrd avec des
scripts)
Ou utilisation de la dénomination /dev/sda1 (depuis Grub1.9x)
Contenu du cours
Grub vs Grub2 Boot loader
Grub a deux fichiers de configuration, à savoir [Link] et [Link], alors que Grub2
ne contient qu'un seul fichier de configuration principal, à savoir [Link]
Dans Grub, il est très difficile pour l’utilisateur normal de modifier la configuration. Mais
Grub2 est plus convivial, Grub-mkconfig changera automatiquement la configuration.
En Grub. Le numéro de partition commence à 0, alors que dans Grub2, il commence par 1.
Le premier périphérique est toujours identifié avec hd0. Ces modifications peuvent être
modifiées si nécessaire en apportant certaines modifications au fichier [Link] du
dossier / etc / grub.
Grub utilise des adresses physiques et logiques pour adresser le disque, il ne peut même
pas lire de nouvelles partitions alors que Grub2 utilise UUID pour identifier un disque, ce
qui le rend plus fiable. Il supporte les périphériques LVM et RAID.
Dans les Distributions Linux actuels, y compris (Ubuntu 16.04 et RHEL 7), GRUB2 affichera
maintenant directement une invite de connexion et aucun menu ne s’affiche à présent.
Contenu du cours
Grub vs Grub2 Boot loader
Contenu du cours
Exemple de fichier grub. cfg
Les paramètres ont la signification suivante:
set root=(hd0,3)
o utiliser la 3ème partition du premier disque
linux /vmlinuz root=/dev/hda3 ro
o utiliser le noyau se trouvant en /vmlinuz avec les paramètres pour le lancement
du noyau : root=/dev/hda3 ro
o un UUID peut être utilisé pour identifier le périphérique spécial par bloc plutôt
que par son nom de fichier root=UUID=81b289d5-…
Initrd /[Link]
o utiliser l’image initrd/initrd située en /[Link]
Contenu du cours
Installation de GRUB
Connaitre le nom des périphériques
blkid
Installer GRUB pour la première fois (ou pour tout réinstaller)
grub-install/dev/sdX
Mettre à jour automatiquement le fichier [Link] à partir des
fichiers trouvés dans /boot
update-grub
Contenu du cours
Une vision macro
Contenu du cours
Contenu du cours
Paramétrage du Noyau au Démarrage
Les paramètres sont passés par le boot loader
Liste des paramètres du noyau dans le fichier
/usr/src/linux/Documentation/[Link]
Exemple de paramètres:
Avec valeur:
o init=: définit l'exécutable à lancer après avoir monté la racine
o root=: définit la partition racine à monter via
UUID: identifiant unique d’une partition d’un disque dur
/dev/…: identification classique des périphériques sous Unix
o vga=: donne le mode vidéo pour le démarrage
Sans valeur:
o ro (rw): définit que la partition racine doit être montée en lecture (ou en lecture écriture)
o quiet: ne pas afficher les message de démarrage du noyau
o single: démarrage en mode «single user»
Contenu du cours
Pour résumer: Les Grandes Etapes du Boot d’un PC
Contenu du cours
Installation d’un gestionnaire d’amorçage
Identifiez le disque et la partition
lsblk –f
Démontez la partition :
umount /dev/nom_partition
ouvrez fdisk à partir du disque identifié précédemment :
sudo fdisk /dev/nom_partition
Vérifiez le système de fichiers de la partition avec e2fsck :
e2fsck -f /dev/nom_partition
Redimensionnez le système de fichiers de la partition avec resize2fs :
resize2fs /dev/nom_partition
Montez la partition avec mount :
mount /nom_partition