Académique Documents
Professionnel Documents
Culture Documents
des réseaux
A. NAANAA
1
Chapitre 1
Gestion du noyau Linux et ses modules
A. NAANAA 2
Le BIOS
Rôle:
Le BIOS (Basic Input Output System) est l'interface logicielle entre le matériel et le
système d'exploitation. En d'autre terme il fournit le niveau d'interface le plus bas aux
pilotes et périphériques.
Le BIOS est présent sur une mémoire EEPROM alimentée par une batterie, quand
l'ordinateur est démarré, un signal appelé powergood est envoyé au microprocesseur,
celui ci déclenche l'exécution du BIOS. Le BIOS doit vérifier le bon fonctionnement
des composantes et doit déterminer le périphérique de démarrage.
A. NAANAA 3
Le chargeur de démarrage
MBR: Le secteur de partition principale est le premier secteur d'un disque et comme tout
secteur il fait une taille de 512 octets. Sa structure contient diverses informations sur le
disque ainsi que sur les différentes partitions principales qui le composent.
Il va également nous permettre de démarrer à partir du disque.
EBR: Extended Boot Record (fonction identique au MBR, partitions logiques).
A. NAANAA 4
Le chargeur de démarrage
Linux:
GRUB (GRand Unified Bootloader)
LILO (Linux loader)
Microsoft :
NTLDR (Windows NT)
WINLOAD (Vista)
Apple :
Boot Camp
A. NAANAA 5
Le chargeur de démarrage (Linux Loader)
Une fois lancé, LILO (Linux Loader) procède à la deuxième étape du processus de
chargement qui se situe généralement dans /boot(boot.b. Ce fichier permet aussi le
démarrage d'autres systèmes d'exploitation.
Le fichier de configuration de lilo est /etc/lilo.conf.
Les principales options sont les suivantes :
boot : localisation de lilo (dans le MBR ou au début d'une autre partition Linux, /dev/hda)
install : chemin d'accès du chargeur (/boot/boot.b)
prompt: permet à l'utilisateur d'effectuer un choix de système à charger
default : nom de l'image à charger par défaut. 0 : premier titre
timeout : permet de définir un délai dattente
image : chemin d'accès au noyau
label : nom de l'image
root : la partition qui contient le système de fichiers racine
read-only : pour monter la partition en lecture seule
linear/lba32 : (linear block adressing) utile pour les disques de grande taille
other : permet d'indiquer un autre système d'exploitation
A. NAANAA 7
Le chargeur de démarrage (Linux Loader)
Sécurisation de LILO
Éditer le fichier de configuration /etc/lilo.conf en y ajoutant une clause password avant la
définition des images :
password = mot-de-passe
Inconvénient
Ce mot de passe est écrit en clair et peut être lu par n’importe quelle personne qui se
connecte à la machine.
Pour y remédier on peut retirer le droit de lecture à tout les utilisateurs (sauf root).
A. NAANAA 8
Le chargeur de démarrage
(Grand Unified Bootloader)
A. NAANAA 9
Le chargeur de démarrage
(Grand Unified Bootloader )
#Fichier de configuration /etc/grub.conf
#Section glaobale
timeout=10
Default=0
#Section Linux
title Red Hat
root (hd0,0)
kernel /vmlinuz-2.6.12-15 ro root=LABEL=/
initrd /initrd-2.6.12-15.img
#Section Windows
title Windows XP
rootnoverify (hd0,1)
Chainloader +1 # Démarrer le premier secteur de la racine spécifiée.
A. NAANAA 10
Le chargeur de démarrage
(Grand Unified Bootloader)
Sécurisation de GRUB
Cela est fortement recommandée car GRUB permet d’offrir un accès à une interface
de type shell permettant de modifier la configuration de celui ci, d’obtenir des
informations système et de booter en single user mode
#grub
grub> md5crypt #Cryptage Message Digest 5
password : *********
Encrypted : $6$4fnJk0cnVYDcLOKq$0fwIa1HIKnG9z.LG6IPw/W...
Pour protéger une entrée en particulier, il faut mettre lock après le title de l’entrée.
A. NAANAA 11
Initialisation du noyau
A. NAANAA 12
INIT
init reste actif pour gérer les changements d'état des processus et les niveaux
d'exécution
Le processus init est le père de tous les processus, il a toujours le PID 1
A. NAANAA 13
INIT
Niveaux d'exécution:
Un niveau d'exécution (runlevel) est un état dans lequel se trouve le système. Cet
état est contrôlé par init
Niveau Effet
0 Halt
1 Mode mono-utilisateur utilisé pour la
maintenance, mode console
6 Reboot
S,s Single user mode (urgence)
A. NAANAA 14
INIT
Le niveau d'exécution par défaut est positionné dans /etc/inittab sur la ligne
initdefault
Id:5:initdefault
Le changement de niveau à la volée ce fait par la commande :
#telinit 5
Le niveau d'exécution actuel est visible avec la commande /sbin/runlevel
#runlevel
N5
La première valeur retournée est le niveau précédent.
N: signifie qu'il n'y a pas de niveau précédent.
A. NAANAA 15
Arrêt système
Pour arrêter le système proprement, la commande shutdown peut être utilisée.
Shutdown param délai message
Paramèt Action
re
r C'est un reboot
h Halt, c'est un arrêt
f Empêche l'exécution de fsck au boot
F Force l'exécution de fsck au boot
c Annule le shutdown sans délai, mais un message est
possible
Le délai peut être spécifié de différentes manières: hh:mm ou +m ou bien now
Ex : #shutdown -r +10 "reboot pour maintenance"
#shutdown -c "maintenance annulée"
#shutdown -h équivalente de halt
#shutdown -r équivalente de reboot
A. NAANAA 16
Consulter les traces système (dmesg)
suite
Le tampon de dmesg est circulaire
Récupérer les messages lors des crashs ou une corruption du système de fichiers
Application:
Voir ce qui se passe à l'insertion d'une clé USB, après le boot au cours d'une
utilisation normale, et à sa déconnexion.
#dmesg|grep CPU
Pour voir les messages spécifiques à l'utilisateur root
#tail -100 /var/log/messages |grep root
A. NAANAA 17
Services et modules noyau (Kernel)
Le noyau est:
Le cœur du système d'exploitation
Avant de compiler le noyau pour une éventuelle mise à jour du système, des
informations nécessaires peuvent être contenues dans les fichiers du
répertoire /proc comme sur les pilotes : /proc/devices ou sur les types de
système de fichier dans le noyau : /proc/filesystems
Voir aussi :
pourront être utiles si le nouveau périphérique n’est pas reconnu après recompilation du
noyau.
A. NAANAA 19
Compilation du noyau et installation des modules
A. NAANAA 20
Gestion des modules
sont paramétrables
A. NAANAA 21
Gestion des modules (affichage : lsmod)
lsmod liste les modules actuellement chargés avec leurs dépendances éventuelles
Exemple: le module vfat dépend du module fat
/proc/modules
A. NAANAA 22
Gestion des modules (dépendance: depmod)
depmod met à jour l'arbre des dépendances entre les modules en modifiant le
fichier /lib/modules/`uname -r`/modules.dep, contient le chemin vers le module
ainsi que la liste des dépendances.
Exemple: module fat
Le module vfat.ko dépend du module fat.ko, il faut que le module fat.ko soit
chargé en premier.
depmod -a : Reconstruit les dépendances de tous les modules, cette action est
exécutée à chaque démarrage du système.
A. NAANAA 23
Gestion des modules (informations: modinfo)
L'auteur,
La licence,
Les paramètres,
Les dépendances.
A. NAANAA 24
Gestion des modules (décharger: rmmod)
Il n'est pas possible de décharger un module s'il est utilisé par un autre
Dans ce deuxième exemple, la clé est débranchée. Les modules fat et vfat sont
devenus inutiles. On tente de supprimer le module fat.
Le système retourne une erreur liée aux dépendances.
A. NAANAA 25
Gestion des modules (décharger: rmmod)
Dans ce dernier exemple, le module vfat est déchargé, puis le module fat, dans cet ordre.
# rmmod vfat
# rmmod fat
A. NAANAA 26
Gestion des modules (charger: insmod)
insmod charge le module donné sans gérer les dépendances. C'est à vous de
gérer les dépendances liées.
A. NAANAA 27
Gestion des modules (gérer les dépendances: modprob)
Décharger le module vfat et les modules dont il dépend (s'ils ne sont plus utilisés).
A. NAANAA 28