Vous êtes sur la page 1sur 58

Administration & Scurit des Systmes d Exploitation

Chapitre

Dmarrage de Linux & Gestionnaire d'amorage


Unit Systme Anis ZOUAOUI
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 l ordinateur
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 l ordinateur
Le Bios
C est le programme basique servant d'interface entre le systme d'exploitation et la carte mre.

Dmarrage de l ordinateur
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 l ordinateur
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 d exploitation 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 l adresse du secteur de dbut de la partition active, Chargement d une 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 l on nomme le magic number . Il s agit d un identifiant caractristique mis la valeur fixe 0xAA55 qui permet la machine de dterminer s il 6 s agit d un secteur d amorce 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 d OSs disponibles

19

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.
20

Gestionnaire d'amorage (boot manager)


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

21

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 d exploitation 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.
22

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).

23

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 d autre 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.
24

Gestionnaire d'amorage (boot manager)


GRUB vs LILO:
Avantages de Grub :

+ Possde un invite de commandes. + Plus scuris + 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.
25

Gestionnaire d'amorage (boot manager)

LILO

26

Gestionnaire d'amorage (boot manager)


Installer un boot manager: Lilo

Fichier de configuration: /etc/lilo.conf Pour l installer 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.

27

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
28

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 n importe 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 # chmod 600 /etc/lilo.conf
29

Gestionnaire d'amorage (boot manager)

GRUB

30

Gestionnaire d'amorage (boot manager)


Installer un boot manager: Grub

Fichier de configuration: /boot/grub/menu.lst ou /boot/grub/grub.conf Pour l installer 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

31

Gestionnaire d'amorage (boot manager)


Exemple de contenu de /boot/grub/menu.lst :
# GRUB default values timeout 10 # Dmarer le noyau par dfaut aprs 10 secondes. default 0 # Noyau par dfaut. # Grub for Linux section 0 title GNU/Linux # Titre 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 # Chargez le gestionnaire d'amorage

32

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, et non depuis un.
33

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.
34

Gestionnaire d'amorage (boot manager)


Protection du grub
Cela est fortement recommande car GRUB permet d offrir un accs une interface de type shell permettant de modifier la configuration de celui ci, d obtenir 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 On doit copier le code encrypt et l insrer 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 l entre
35

Gestionnaire d'amorage (boot manager)


Rinstall lu grub
Pour installer Grub dans l MBR il faut tout d abord : Trouver le numro de la partition sur laquelle est installe LINUX, de la forme (hd0,5).

# grub grub> find /boot/grub/stage1


Renseignez la partition sur laquelle est installe Grub dans notre exemple : root (hd0,5)

grub> root (hd0,5)


dterminez o installer Grub :

grub> setup (hd0)


installe Grub dans le MBR
36

Administration & Scurit des Systmes d Exploitation

Les RunLevel et le processus de dmarrage init

37

Init

38

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.
39

Lancement du 1er processus init


Init est l unique processus lanc directement par le kernel, c est 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

40

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.
41

Le processus init
La commande init permet changer le niveau d'excution courant Syntaxe init [-options] [0123456Ss] Exemple La commande runlevel Permet de connatre le niveau d'excution courant Syntaxe runlevel [-options] Exemple
42

Le processus init

43

Le processus init

44

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).
45

Le processus init
Le fichier '/etc/inittab' Il dtermine quelles sont les commandes que le processus 'init' doit excuter pour un niveau donn. 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 ':'.

46

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

47

Le processus init

48

Le processus init

49

Le processus init

50

Le processus init

51

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.

52

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).
53

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

54

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, => impliquent que le script lisa K08lisa et K09dm sera arrt avant que le script dm ne soit lui-mme arrt.

55

56

Chkconfig
La commande chkconfig affiche l tat d un service pour chaque un des runlevel Exemple # Chkconfig list NetworkManager
Affiche l etat du service NetworkManager pour chaque Runlevel (marche ou arrt)

57

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

58