Vous êtes sur la page 1sur 59

Administration & Scurit des Systmes

dExploitation
Chapitre 1

Dmarrage de Linux
&
Gestionnaire d'amorage
Unit Pdagogique Systmes
1

Gestionnaire d'amorage (boot manager)


Objectif :
Comprendre comment dmarre Linux
Slectionner, installer et configurer un gestionnaire
d'amorage.

Gestionnaire d'amorage (boot manager)


The Big Picture !

Introduction
La squence de dmarrage est variable en fonction
du systme mais peut globalement tre dcoupe
selon les tapes suivantes :

Le dmarrage de l'ordinateur ou amorage,


L' excution du chargeur de dmarrage ,
Le dmarrage du noyau,
Le lancement du processus 'init',
Le lancement des scripts de dmarrage.

Dmarrage de lordinateur
Amorage matriel
Aprs la mise sous tension, un programme stock
en mmoire morte sur la carte mre prend le
contrle.
Sur les PC, on appelle ce programme le BIOS (Basic
Input/Output System).
Ce programme procde en premier lieu un
autotest de la machine
C'est le POST - Power On Self Test
5

Dmarrage de lordinateur
Le Bios
Cest le programme basique servant d'interface entre le systme
d'exploitation et la carte mre.

Dmarrage de lordinateur
Le Bios
Il est stock dans une ROM (mmoire morte, c'est--dire une mmoire en lecture seule)
Ainsi il utilise les donnes contenues dans le CMOS pour connatre la
configuration matrielle du systme.

CMOS : Complementary Metal Oxide Semiconductor)

Dmarrage de lordinateur
Ensuite il accde certaines informations stockes
en mmoire non volatile.
Entre autre, quel est le priphrique d'amorage ?
ou dfaut, quels priphriques faut il essayer pour
amorcer le systme ?
En dernier lieu, la phase de dmarrage matriel
accde au priphrique d'amorage afin d'excuter le
chargeur de dmarrage s'y trouvant.
6

Chargeur de dmarrage
Le rle principal du chargeur de dmarrage est de
localiser le noyau du systme dexploitation sur le
disque, le charger et l'excuter.
La majorit des chargeurs de dmarrage sont
interactifs, pour permettre la spcification d'un
noyau alternatif (par exemple un noyau de
sauvegarde dans le cas o la dernire version
compile ne fonctionne pas) ou le passage de
paramtres optionnels au noyau.
6

Chargeur de dmarrage
Sur les PC, le chargeur de dmarrage est situ sur le
premier secteur du priphrique d'amorage, c'est le
MBR (Master Boot Record).
La taille de ce MBR (un secteur soit 512 octets)
rend quasiment impossible le stockage d'un chargeur
de dmarrage complet.
Ainsi, sur la plupart des systmes, le chargeur initial
appelle un chargeur de dmarrage secondaire situ
sur une partition du disque.
6

Chargeur de dmarrage
Sous Linux, les chargeurs de dmarrage sont
gnralement
Grub - GRand Unified Bootloader
Lilo - LInux LOader

Chargeur de dmarrage
Chacun peut tre install :
soit en tant que chargeur secondaire (si le MBR
install par DOS pointe vers eux),

soit en tant que chargeur en deux parties


(chargeur initial + chargeur secondaire).

Chargeur de dmarrage

Chargeur de dmarrage
Le programme de partition ou Master Boot Code
contenu dans le MBR ralise les oprations suivantes :
Passage en revue de la table des partitions pour
dterminer la partition active,
Dtermination de ladresse du secteur de dbut de la
partition active,
Chargement dune partie du bloc de boot de la
partition active en mmoire,
Transfert du contrle au bloc de boot de la partition
active.
6

Chargeur de dmarrage
Si le Master Boot Code ne peut raliser une de ces
oprations, on obtient un des messages suivants :
Invalid partition table.
Error loading operating system.
Missing operating system.

Chargeur de dmarrage

Chargeur de dmarrage

Les secteurs de boot sont marqus par ce que lon nomme le


magic number . Il sagit dun identifiant caractristique mis la
valeur fixe 0xAA55 qui permet la machine de dterminer sil
6
sagit dun secteur damorce ou pas.

Chargeur de dmarrage

Chargeur de dmarrage
3- Amorage de Linux: Le boot loader
Quand le boot loader est charg en RAM et excut, un splash-screen est
souvent affich proposant les images dOSs disponibles

19

Gestionnaire d'amorage (boot manager)


Caractristiques du boot manager:
Un gestionnaire d'amorage permet de slectionner
l'image partir de laquelle on dsire dmarrer.
On peut ventuellement lui passer des paramtres.
Pour Linux, il s'agit de dterminer le noyau sur lequel on
veut dmarrer et de lui passer des paramtres (comme
la partition utiliser comme racine).

20

Gestionnaire d'amorage (boot manager)


Cohabitation des boot manager:

De nombreux systmes d'exploitations installe leur


propre gestionnaire de dmarrage sans se proccuper
de l'existence dautre gestionnaire.
Ainsi, si on veut faire cohabiter linux avec d'autres
systmes, il est plus sr de l'installer en dernier.
GRUB est le gestionnaire par dfaut de nombreuses
distributions linux actuelles.
21

Gestionnaire d'amorage (boot manager)


GRUB vs LILO:
Avantages de Grub :

+ Possde un invite de commandes (intgre un shell).


+ Plus scuris (permet de protger par un mot de passe
laccs aux options du noyau)

+ Grub conserve les informations sur le BOOT dans le


systme de fichiers , donc possibilit dextension

- ne supporte pas le chargement depuis LVM ou RAID ou


des systmes de fichiers trs spcifiques.

Limites de LILO:

- LILO conserve les informations sur le BOOT dans le


MBR impossible dajouter des nouvelles
fonctionnalits.
22

Gestionnaire d'amorage (boot manager)

LILO

23

Gestionnaire d'amorage (boot manager)


Installer un boot manager: Lilo
Fichier de configuration: /etc/lilo.conf
Pour linstaller LILO dans le MBR, il faut utiliser la commande
lilo
La commande lilo permet d'crire dans le MBR les lments
contenus dans le fichier /etc/lilo.conf.

24

Gestionnaire d'amorage (boot manager)


Exemple de contenu de /etc/lilo.conf :
# LILO global section
boot = /dev/hda # Cible d'installation de LILO : le MBR
timeout=15 # le temps d'attente
default=fedora # l'OS dmarrer aprs le timeout
vga = normal # (normal, extended, ou ask)
read-only # Monte le systme de fichiers en lecture seule

# LILO Linux section


image=/boot/vmlinuz # Image (noyau) charger
label=fedora # Nom de l'entre du menu
root=/dev/hda1 # Partition racine pour le noyau
initrd=/boot/initrd # disque en RAM
# LILO DOS/Windows section
other=/dev/hda3 #utilis pour les OS non LINUX
label=windows
25

Gestionnaire d'amorage (boot manager)


Protection de Lilo
diter le fichier de configuration lilo.conf en y ajoutant une
clause password avant la dfinition des images :
password = mot_de_passe

Inconvnient : Ce mot de passe est crit en clair et peut tre


lu par nimporte quelle personne qui se connecte la
machine
Pour y remdier on peut retirer le droit de lecture tout
autre utilisateur (except root bien videmment).
# chown root.root /etc/lilo.conf ou # chown root:root /etc/lilo.conf
# chmod 600 /etc/lilo.conf
26

Gestionnaire d'amorage (boot manager)

GRUB

27

Gestionnaire d'amorage (boot manager)


Installer un boot manager: Grub
Fichier de configuration: /boot/grub/menu.lst ou
/boot/grub/grub.conf
Pour linstaller Grub dans le MBR, il faut utiliser la commande
grub
La commande grub permet d'crire dans le MBR les lments
contenus dans le fichier /boot/grub/menu.lst ou grub.conf

28

Gestionnaire d'amorage (boot manager)


Exemple de contenu de /boot/grub/menu.lst :
# GRUB default values
timeout 10 # Dmarrer le noyau par dfaut aprs 10 secondes.
default 0 # SE par dfaut charger.
# Grub for Linux section 0
title GNU/Linux # Titre (tiquette dans le menu)
root (hd0,1) # /dev/hda2 systme de fichiers racine
# Noyau et paramtres passer au noyau.
kernel /boot/vmlinuz root=/dev/hda2 read-only
initrd /boot/initrd # (INITial RamDisk) image d'un systme minimal initialis
au dmarrage du systme.
boot
# Grub for DOS/Windows section
title Windows
root (hd0,2) # /dev/hda3
makeactive # Positionnez le drapeau active de la partition
chainloader+1 # Charger le gestionnaire d'amorage
29

Gestionnaire d'amorage (boot manager)


Convention de nommage
La syntaxe des priphriques utilise dans GRUB est un tout petit peu
diffrente de ce que vous avez pu voir.
Exemple : (hd0,1)
Tout d'abord, GRUB exige que les noms de priphriques se
trouvent entre ( et ).
hd signifie qu'il s'agit d'un disque dur.
Le premier nombre 0 indique le numro du disque, qui est ici le
premier disque, alors que le second entier 1 indique le numro de
la partition
Notez que les numros de partitions sont dtermins partir
de zro 0 , et non depuis un 1 .

30

Gestionnaire d'amorage (boot manager)


Convention de nommage
(hd0,4)
Ceci dsigne le premier lecteur logique du premier disque dur.
Notez que les numros des lecteurs logiques sont compts
partir de 4.

Remarquez que GRUB ne distingue pas l'IDE du SCSI, il compte


simplement les disques depuis zro, sans faire attention leur
type.
(hd0,0)/vmlinuz
Cette ligne dsigne le fichier nomm vmlinuz qui se trouve sur
la premire partition du premier disque dur.
31

Gestionnaire d'amorage (boot manager)


Protection du grub
Cela est fortement recommande car GRUB permet doffrir un accs une
interface de type shell permettant de modifier la configuration de celui ci,
dobtenir des informations systme et de booter en single user mode
Protection de GRUB avec un mot de passe crypt
#grub
grub> md5crypt
password : *******
Encrypted : kw485/fgf$&ee

code encrypt

Le code encrypt doit tre copi et insr par la suite dans le fichier de
configuration /etc/grub.conf, avant la dfinition des images :
password --md5 kw485/fgf$&ee
Pour protger une entre en particulier, il faut mettre lock aprs le title de
lentre

32

Gestionnaire d'amorage (boot manager)


Rinstaller GRUB
Pour installer Grub dans lMBR il faut tout dabord :
1- Trouver le numro de la partition sur laquelle est installe LINUX, de la
forme (hd0,5).

# grub
grub> find /boot/grub/stage1
2- Renseigner la partition sur laquelle est installe Grub:

grub> root (hd0,5)

le retour de la commande find /boot/grub/stage1

3- Installer Grub dans le MBR

grub> setup (hd0)


33

Administration & Scurit des Systmes


dExploitation

Les RunLevel et le processus


de dmarrage init

34

Init

35

Lancement du 1er processus init


Lorsque la machine dmarre, le noyau du systme est charg et
dcompress en mmoire vive (RAM), il s'excute et s'initialise :

Rservation de la mmoire
Prise en compte de la zone d'change (swap)

Dtection du matriel et chargement des pilotes des


priphriques
Montage du systme de fichiers
Et enfin lancement du 1er processus init.

36

Lancement du 1er processus init


Init est lunique processus lanc directement par le kernel, cest
le pre de tous les autres processus (pid=1) Il a pour tche de
lancer chacun des processus, dmons, sessions de login et de
grer l'arrt du systme

37

Rle du processus init


Il vrifie le systme de fichier et le monte
Il dmarre les dmons qui enregistrent les messages
systme (syslog, cron, ), grent le rseau, coutent les
signaux de la souris et clavier.

Dmarre les processus getty qui vous donnent l'invite


de connexion sur vos terminaux.
Ainsi que d'autres fonctions pour lesquelles il a t
configur.
38

Le processus init
La commande init
permet changer le niveau d'excution courant
la commande telinit joue le mme rle que la commande
init et utilise la mme syntaxe
Syntaxe: init [-options] [0123456Ss]
Exemple:

La commande runlevel
Permet de connatre le niveau d'excution courant
Syntaxe: runlevel [-options]
Exemple:
39

Les niveaux dexcution (runlevels) 1/3


7 Diffrents tats dits niveaux d'excution (ou
runlevels) sont dfinis sous un systme
dexploitation Linux.
Chaque niveau d'excution correspond une
configuration logicielle qui permet de lancer un
certain nombre de processus.
Seuls les niveaux 0, 1 et 6 sont standards pour
toutes les distributions.

40

Les niveaux dexcution (runlevels) 2/3

41

Les niveaux dexcution (runlevels) 3/3

42

Le processus init
Dmarrage et changement de niveau

Au dmarrage du systme, lorsque le noyau cre le


processus 'init', il ne spcifie pas de niveau.
C'est le niveau dfini par dfaut dans 'inittab' qui est
choisi.
Si on change de niveau de fonctionnement 'init'
envoie le signal 'SIGTERM' (le signal 15) tous les
processus qui sont pas concerns par le nouveau
niveau demand.
Au bout de 5 secondes, les processus qui ne sont pas
termins reoivent le signal 'SIGKILL' (signal 9).
43

Le fichier '/etc/inittab'
Il dtermine quelles sont les commandes que le
processus 'init' doit excuter pour un niveau donn.
Contient le niveau dexcution par dfaut sur la ligne de
initdefault
Le processus 'init' l'examine squentiellement.
Ce fichier est compos de lignes de texte:
Si une ligne commence par le caractre '#', c'est une
ligne de commentaire.
Si elle dfinit une commande excuter, cette ligne
est compose de quatre champs spars par le
caractre ':'.

44

Le processus init
La commande init avec l'option 'q
permet prendre en compte immdiatement les
modifications apportes ce fichier
Syntaxe
init [-options] [0123456Ss]
Exemple
[root]# init q
Description du fichier '/etc/inittab'
Syntaxe
tiquette:niveau(x):action:commande
45

Le processus init

46

Le fichier '/etc/inittab'

47

Le fichier '/etc/inittab'

48

Le fichier '/etc/inittab'

49

Le processus init

Run gettys est la partie qui permet de dclarer le terminaux


accessibles avec les combinaisons de touches "alt+F1" "alt+F2".
Run xdm est une ligne indispensable pour pouvoir travailler avec
l'interface
graphique.

50

Le processus init
Le dmarrage des dmons associs aux services
Le processus 'init' lance en premier lieu le script
'/etc/rc.d/rc.sysinit
Ensuite il excute le script '/etc/rc.d/rc' en lui
passant en paramtre le niveau d'excution demand
Scripts de dmarrage des services
Pour chaque service gr, il y a un script de
dmarrage stock dans un rpertoire spcifique
(/etc/rc.d/init.d dans la majorit des versions de
Linux).
51

Les rc
Dans le rpertoire /etc se trouve une liste de rpertoire
commenant par rc.

/etc/rc[0-6].d ou /etc/rc.d/rc[0-6].d selon les distrubutions


Exemple :
Le rpertoire rc0.d contient tous les services du runlevel 0

52

Nom des Scripts


[ S | K ] XX nom_du_script.
S indique au systme que le script doit tre lanc avec
l'oprande start (dmarrage du service).
K indique au systme que le script doit tre lanc avec
l'oprande stop (arrt du service).
XX est un numro qui dtermine l'ordre de lancement (ou
d'arrt) du script par rapport aux autres,
Exemple :
S18sound et S24messagebus => impliquent que le
script sound sera lanc avant le script messagebus,

K08lisa et K09dm
=> impliquent que le script lisa
sera arrt avant que le script dm ne soit lui-mme arrt.

53

54

chkconfig
La commande chkconfig affiche ltat dun service pour chacun
des runlevel
Exemple
Pour lister les services et leurs tats par rapport un niveau
dexcution:
# chkconfig - -list
Voir ltat dun service bien dtermin:
# chkconfig - -list NetworkManager
Affiche ltat du service NetworkManager pour chaque Runlevel (marche ou arrt)

Pour modifier ltat dun service dans un niveau dexcution


# chkconfig --level 23 nfs-common on
Active le service pour les niveaux 2 et 3

Trois possibilits pour modifier un service:


on pour activer, off dsactiver, reset remettre ltat par
dfaut.
55

Les commandes Start,Stop,Status


#/etc/init.d/prog1 start
pour dmarrer le programme
#/etc/init.d/prog1 stop
pour arrter le programme
#/etc/init.d/prog1 status
pour arrter le programme
Exemple:
/etc/init.d/syslog status
/etc/init.d/syslog stop
/etc/init.d/syslog start
56

Dmarrage du noyau
Quand le noyau est charg (processus 0)
il initialise les priphriques via leurs pilotes
dmarre le gestionnaire de swap,
monte le systme de fichiers racine.
C'est uniquement cet instant que le noyau cre un
premier processus, qui porte le numro 1.
Ce processus excute le programme '/sbin/init', en lui
passant les paramtres qui ne sont pas dj grs par
le noyau.
57

Gestionnaire d'amorage (boot manager)


5- Amorage de Linux: Init
Quand tout cela est fini, le premier programme de l'espace
utilisateur (init) dmarre.

58

Le processus init
Le processus init et le fichier /etc/inittab
Quand "init" dmarre, il lit le fichier de
configuration /etc/inittab pour y trouver ses
instructions.
Ce fichier dfinit ce qui doit s'excuter dans les
diffrents niveaux d'excution (run-level) offerts par
un systme dexploitation Unix/Linux.
Cela donne l'administrateur systme une
mthode simple de gestion dans laquelle chaque
niveau d'excution est associ un ensemble de
services devant s'excuter.
59