Vous êtes sur la page 1sur 36

Démarrage du système

Administration et maintenance du
système GNU/Linux

1
plan

 Personnaliser le démarrage système et la


séquence de boot.

 Restauration du système.

2
Séquence de démarrage

 Le premier programme lancé au démarrage


est le BIOS.
 Le bios cherche le chargeur dont le but sera
de lancer le système d'exploitation complet.
 Les chargeurs récents sont capables de
laisser à l'utilisateur le choix du système à
lancer (on appelle cela un multiboot).
Plusieurs peuvent alors cohabiter sur une
même machine.
Séquence de démarrage

4
Séquence de démarrage

 Ici nous avons le choix entre deux entrées


relatives à un même noyau linux (kernel).
 La première correspond à un lancement normal,
 la seconde ("single user mode" ou "recovery
mode") n'est utile que si votre système Debian ne
démarre plus dans son mode normal.

5
 Les chargeurs les plus utilisés pour lancer un
noyau Linux sont LILO et GRUB. Ils partagent
de nombreux points communs comme le fait
de pouvoir passer des options au noyau.
 La configuration de LILO se fait dans le fichier
/etc/lilo.conf. En voici un exemple :
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
default=linux
prompt
timeout=10
message=/boot/message

image=/boot/vmlinuz
  label=linux
  root=/dev/hda1

image=/boot/vmlinuz.old
  label=ancien linux
  root=/dev/hdb1
  append="noapic"
Séquence de démarrage

Chargement du noyau Linux


 Votre noyau Linux commence à se charger.
 Il prend en charge un minimum de matériel
pour que le démarrage s'effectue avec succès.

8
Séquence de démarrage

9
Séquence de démarrage

Chargement de l'OS (operating system)


 Si le kernel se charge avec succès, l'OS va

commencer à s'amorcer.
 La position de l'OS est précisée au niveau du

boot loader.

10
Séquence de démarrage-init

 Rappelons que le premier processus à être lancé sur un système Unix est le

programme init (qui est le père de tous les processus existants).


 Son but est de lancer tous les autres processus nécessaires à l'utilisation d'une

machine.
 La gestion de tous les services installés sur une machine passe par des scripts

situés dans le répertoire /etc/init.d/.


 Ce répertoire contient un script par service (serveur web, gestion du réseau,

l'interface graphique, le DHCP, le gestionnaire des logs, ...).

11
Séquence de démarrage -init

 Un certain nombre d'états de marche ont été

prédéfinis sur le système, on peut les voir dans le

fichier /etc/inittab.
 Le fichier /etc/inittab indique quelles commandes

amorcer en fonction du runlevel.

12
Séquence de démarrage -init
 Le comportement d'init se configure à l'aide du fichier /etc/inittab. En voici un
exemple d'extrait :

id:5:initdefault:

si::sysinit:/etc/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6

ca::ctrlaltdel:/sbin/shutdown -t3 -r now


13
Personnaliser le démarrage
Chaque ligne est construite de la même manière avec les champs
suivants :
 1 Identifiant une chaîne de caractère choisie par l'utilisateur (sauf dans
certains cas particuliers) et permettant d'identifier la ligne.
 2 Niveaux d'exécution Les niveaux d'exécution (détaillés dans le
chapitre suivant) pour lesquels cette ligne doit être prise en compte.
 3 Action Contient une des actions prédéfinies indiquant ce qui doit être
fait.Le tableau suivant les liste.
 4 Programme Le programme qui doit être exécuté lorsque l'on rentre
dans les niveaux indiqués.

Selon l'action choisie, le comportement sera différent et certains


champs peuvent être ignorés. Voici la description des actions le plus
souvent utilisées.
14
Personnaliser le démarrage
Action Champ ignorés description

Permet d'indiquer le niveau d'exécution à utiliser par


initdefault Programme défaut. Le champs Niveaux d'exécution contiendra
alors une seule valeur qui sera ce niveau par défaut.
Le champs Programme contient le chemin vers un
exécutable qui sera lancé en tout premier par init
sysinit Niveaux d'exécution
(donc juste après que le noyau ait terminé ses
initialisations).
Lorsque le système passera dans la niveau
wait Aucun d'exécution spécifié, init exécutera la commande
indiquée puis attendra qu'elle se termine.
Semblable à wait si ce n'est qu'à chaque fois que le
respawn Aucun
programme se termine, init le relancera.
Permet d'indiquer une commande devant être
ctrlaltdel Niveaux d'exécution exécutée lorsque l'utilisateur presse la combinaison
de touches Ctrl-Alt-Suppr.

15
Personnaliser le démarrage
Numéro Désignation Description
0 Arrêt Passer dans ce niveau provoque un arrêt de la machine.
On a directement accès à un shell, mais quasiment aucun
1 Maintenance service n'est lancé. Utile pour le dépannage en cas de problème
important.
Multi-utilisateurs Plusieurs utilisateurs peuvent se connecter en mode texte. Mais
2
simple les services sont limités (souvent pas de réseau par exemple).
Multi-utilisateurs Tous les services nécessaires sont démarrés et plusieurs
3
complet utilisateurs peuvent se connecter en mode texte.
4 Mode utilisateur Généralement non utilisé, il peut être librement utilisé.
Identique au mode 3, mais les utilisateurs peuvent se connecter
5 Graphique
en mode graphique et disposer d'un gestionnaire de fenêtre.
6 Redémarrage Passer dans ce niveau redémarre la machine.

16
Séquence de démarrage
Voici ce qu'on peut trouver au début du fichier:

# Default runlevel. The runlevels used by RHS are:


# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not
have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:
17
Personnaliser le démarrage

 Après le démarrage, le système se trouve


dans le mode indiqué par initdefault dans
/etc/inittab. Pour pouvoir changer, il existe un
outil appellé telinit. Il suffit de le lancer en lui
passant en paramètre le numéro du niveau
souhait. Par exemple :
> telinit 6

18
Les runlevels

Au démarrage ou à l'arrêt d'une machine Linux, plusieurs


tâches doivent être effectuées. Ces tâches peuvent
correspondre:
 à des fonctionnalités de base (montage des partitions,
chargement des périphériques, démarrage de l'interface
graphique, ..)

 à des tâches plus spécifiques (lancement d'un serveur


web, d'un service ssh, d'une base de données MySQL, ...).

19
Les runlevels

Ces scripts (tâches) peuvent être exécutés en leur passant


un paramètre spécifique :
 start : démarrer le service
 stop : arrêter le service
 restart : redémarre le service
 reload : force la relecture du fichier de configuration sans
arrêter le service
 status : affiche l'état actuel du service (démarré, éteint, ...)
Par exemple, pour lancer un serveur apache:
 : /etc/init.d/apache2 start
 pour le redémarrer : /etc/init.d/apache2 restart.

20
Personnaliser le démarrage
 Le programme gérant les niveaux d'exécution va
consulter le contenu du répertoire /etc/rc.d/rcX.d (où X
correspond au numéro du niveau devant être changé). Il
y recherche d'abord tous les exécutables s'y trouvant et
dont le nom commence par la lettre K (pour Kill) suivie
par deux chiffres. Il lance ces programmes en leur
passant en paramètre stop. Cela correspond aux
services qui doivent être arrêté dans ce mode là. Ils sont
lancés dans l'ordre croissant du nombre indiqué après le
K, ce qui permet de les ordonner.

21
Personnaliser le démarrage
 C'est ensuite au tour des programmes dont le nom commence par
la lettre S (pour Start) puis également un nombre sur deux
chiffres. Ils sont lancés de la même manière que les précédents si
ce n'est que c'est le paramètre start qui est passé.
 Pour illustrer ceci, voici un contenu possible d'un de ces
répertoires :
 > ls /etc/rc.d/rc3.d
K15httpd
K20nfs
K45named
S10network
S55sshd
S99local
22
Personnaliser le démarrage

 Dans ce cas-là, lorsque l'on passe dans le niveau 3


(soit au démarrage si c'est celui par défaut, soit
ensuite si c'est l'utilisateur qui le demande), on
arrêtera les services httpd (serveur web), nfs
(serveur de fichiers) et named (serveur de noms).
Et ensuite seront démarrés les services network
(pour la prise en charge du réseau), sshd (serveur
de connexion distante sécurisée) et local (qui va
lancer des programmes devant être exécuté en fin
de démarrage).
23
Personnaliser le démarrage

 Comme des programmes peuvent exister dans


plusieurs niveaux différents, dans les répertoires
/etc/rc.d/rcX.d on trouvera en réalité des
liens symboliques pointant vers des fichiers dans
le répertoire /etc/rc.d/init.d. Ces fichiers sont en
réalité des scripts shell et le même sera lancé pour
le démarrage ou l'arrêt. C'est donc de la
responsabilité du script de voir s'il a été appelé
avec le paramètre start ou stop pour savoir quelle
action entreprendre.
24
Personnaliser le démarrage

 uniquement à créer ou supprimer des liens


symboliques. En reprenant l'exemple
précédent, voici ce qui pourrait être fait :
 > cd /etc/rc.d/rc3.d
> rm S55sshd
> ln -s /etc/rc.d/init.d/ftpd S40ftpd

25
Personnaliser le démarrage

 Cela va faire en sorte que dans le niveau 3, le


serveur SSH ne soit plus exéctuté. En revanche
un serveur FTP sera mis en place. Tout cela
suppose qu'un script ftpd soit présent dans le
répertoire /etc/rc.d/init.d/ et qu'il fournisse le
service attendu. Les distributions GNU/Linux
incluent ce genre de script lorsqu'un service
est installé. L'utilisateur n'a donc ensuite qu'à
modifier les liens symboliques.
26
Restauration

 Pour des questions de sécurité ou d'intégrité


d'un système ou de confort d'utilisation,
avant toute installation ou désinstallation de
logiciel dans votre distribution GNU/Linux ou
du plantage récurrent du système ou d'un
logiciel en particulier, il est parfois
souhaitable de pouvoir revenir en arrière sur
nos actions.

27
Restauration

 Pour ce faire, il y a le concept de Point de


Restauration. Il est question ici de conserver un
certain nombre de paramètres concernant, soit
les paramètres et les données des paquets
logiciels et les modules et dépendances qui sont
installés dans l'ordinateur, soit des versions des
données personnelles, vos textes, photos, etc.,
soit tout cela et les paquets des logiciels eux-
mêmes, soit une migration d'une version à une
autre, etc.
28
Restauration
 Voici la méthode pour sauvegarder la liste de paquets, et la restaurer, si besoin :
 Téléchargement des listes des sources des paquets disponibles.
 Téléchargement décompression et installation des mises à jour des paquets.
 Enregistrement de la liste des paquets installés comme point de restauration.
 Installer et tester le ou les logiciels.
 Si vous gardez le ou les logiciels installés, vous arrêtez ici, il n'y a rien d'autre a
faire.
 Sinon, vous notez le nom du logiciel ou des logiciels que vous souhaitez garder.
 Marquage de tous les paquets pour la désinstallation.
 Marquage de tous les paquets à installer avec la liste des paquets installés
comme point de restauration.
 Application des modifications effectuées sur la liste des paquets qui ont été
marqués.
 Réinstaller que le ou les logiciels retenus.

29
Restauration

Pour mettre en place une restauration, deux


méthode sont proposées :
 Une méthode en ligne de commande.

 Une méthode avec un script bash qui


automatise les deux tâches principales .

30
Restauration par ligne de commande.

Création d'un point de restauration


Procédez à la mise à jour du système GNU/Linux avec les commandes
suivantes :
 sudo aptitude update
# Téléchargement des listes des sources des paquets disponibles.
 sudo aptitude safe-upgrade
# Téléchargement décompression et installation des mises à jour des
paquets.
 Enregistrement de la liste des paquets installés comme point de
restauration avec la commande suivante (dans le nom du fichier texte, vous
remplacez "Date" par la date du jour) :
 dpkg --get-selections > PointDeRestauration-Date.txt
# Enregistrement dans le fichier texte "PointDeRestauration-Date.txt" de la
liste des paquets déjà installés.
 Installer et tester le ou les logiciels.

31
Restauration par ligne de commande.

Restauration d'un point


 Si vous gardez le ou les logiciels installés, vous arrêtez ici, il n'y a rien d'autre a
faire, votre système est propre !
 Sinon, vous notez le nom du logiciel ou des logiciels que vous souhaitez garder.
 Pour revenir à un point de restauration précédemment créé (dans le nom du fichier
texte, vous remplacez "Date" par la date du jour du point de restauration que vous
souhaitez récupérer) :
 dpkg --clear-selections
# Marquage de tous les paquets pour la désinstallation.
 dpkg --set-selections < PointDeRestauration-Date.txt
# Marquage de tous les paquets à installer avec le contenu du fichier texte
"PointDeRestauration-Date.txt".
 sudo apt-get dselect-upgrade
# Application des modifications effectuer sur la liste des paquets qui ont été
marqués.
 Réinstaller le ou les logiciels retenus.

32
Restauration avec un Script bash

Algorithme
 Vérifie l'existence d'un dossier nommé «
PointDeRestauration » à la racine du dossier de l'utilisateur.
- S'il n'existe pas, le dossier est créé.
- S'il existe, on passe à la prochaine action.
On vous propose les actions suivantes :
 1) Créer un point de restauration. 
 2) Restaurer un point. 
 3) Quitter. 
Taper le numéro de l'action que vous souhaitez ou CTRL-C
pour quitter ce script :

33
Restauration avec un Script bash

 Dans le cas 1, un point de restauration est créé


dans le dossier « PointDeRestauration » portant
comme nom la date du jour.
 Dans le cas 2, La liste des points de restauration
du dossier apparaît et on vous demande d'entrer
la date du point de restauration. Vous entrez au
clavier la date au format AAAA-MM-JJ du fichier
souhaité.
 Dans le cas 3, le script se termine.
 Si vous tapez CTRL-C, le script s'arrête.
34
Restauration avec un Script bash

Créer et utiliser le script


 Créer le script avec la commande suivante
dans une console :
- Sous Ubuntu :
sudo gedit ~/PointDeRestauration.sh

35
Restauration avec un Script bash

 Copier le contenu du script(réalisé en TP)dans


l'éditeur de texte et enregistrer le fichier, puis
quitter l'éditeur de texte.
 Donner les droits d'exécution au nouveau fichier
avec la commande suivante dans une console :
chmod +x PointDeRestauration.sh
Pour exécuter ce script dans une console avec la
commande suivante et suivez les instructions :
./PointDeRestauration.sh

36

Vous aimerez peut-être aussi