Provided by:
manpages-fr_3.32d0.2p4-1_all 
NOM
boot-scripts - Description generale du demarrage du systeme
DESCRIPTION
La sequence de demarrage est variable en fonction du systeme mais peut
globalement etre decoupee selon les etapes suivantes : (i) amorcage
materiel, (ii) chargeur de demarrage, (iii) demarrage du noyau, (iv)
init et inittab, (v) scripts de demarrage. Nous allons decrire chacune
d'entre-elles plus en detail ci-dessous.
Amor,cage mat'eriel
Apres la mise sous tension ou un reset materiel, un programme stocke en
memoire morte (souvent une PROM) prend le controle. Sur les PC, on
appelle generalement ce programme le BIOS.
Ce programme effectue normalement un autotest de la machine et accede a
la memoire non volatile pour y lire quelques parametres. Dans les PC,
cette memoire est maintenue par une batterie de type CMOS. Ainsi la
plupart des gens l'appellent CMOS, alors qu'en dehors du monde des PC,
elle est generalement appelee nvram (non-volatile ram).
Les parametres stockes dans la nvram varient d'un systeme a l'autre,
mais au minimum, le programme d'amorcage materiel devrait savoir quel
est le peripherique d'amorcage, ou a defaut quels peripheriques il faut
essayer pour amorcer le systeme.
Ensuite, la phase de demarrage materiel accede au peripherique
d'amorcage, charge le chargeur de demarrage, qui est situe a une
position fixe sur le peripherique d'amorcage, et lui passe le controle.
Note : Nous n'abordons pas ici le demarrage a partir du reseau. Ceux
qui s'interessent a ce sujet devraient rechercher du cote de
DHCP, TFTP, PXE, Etherboot.
Chargeur de d'emarrage
Sur les PC, le chargeur de demarrage est situe sur le premier secteur
du peripherique d'amorcage - c'est le MBR (Master Boot Record).
Sur la plupart des systemes, ce chargeur initial est tres limite du
fait de diverses contraintes. Meme sur des systemes autres que le PC,
il existe des limitations concernant la taille et la complexite de ce
chargeur, mais la taille du MBR des PC est limitee - 512 octets y
compris la table de partition (64 octets) et un identifiant de disque
(2 octets) ne laissent que 446 octets pour le code - et rend quasiment
impossible le stockage d'un chargeur de demarrage complet.
Ainsi, sur la plupart des systemes d'exploitation, le chargeur initial
appelle un chargeur de demarrage secondaire situe sur une partition du
disque.
Sous Linux, le chargeur de demarrage est normalement lilo(8) ou
grub(8). Chacun peut etre installe soit en tant que chargeur secondaire
(si le MBR installe par DOS pointe vers eux), soit en tant que chargeur
en deux parties, car ils fournissent un MBR special contenant un code
d'amorcage pour charger la seconde partie du chargeur a partir de la
partition principale.
Le role principal du chargeur de demarrage est de localiser le noyau
sur le disque, le charger et l'executer. La plupart des chargeurs de
demarrage sont interactifs, pour permettre la specification d'un noyau
alternatif (par exemple un noyau de sauvegarde dans le cas ou la
derniere version compilee ne fonctionne pas) et le passage de
parametres optionnels au noyau.
D'emarrage du noyau
Quand le noyau est charge, il initialise les peripheriques (via leurs
pilotes), demarre le gestionnaire de swap (c'est un << processus
noyau >>, appele kswapd sur les noyaux Linux modernes), et monte le
systeme de fichiers racine - appele root filesystem - (/).
Quelques parametres relatifs a cela peuvent etre passes au noyau (par
exemple : on peut specifier un autre systeme de fichiers racine que
celui par defaut). Pour plus d'informations sur les parametres du noyau
Linux, consultez bootparam(7).
C'est uniquement a cet instant que le noyau cree un premier (en espace
utilisateur) processus, qui porte le numero 1. Ce processus execute le
programme /sbin/init, en lui passant tout parametre qui n'est pas deja
gere par le noyau.
init et inittab
Quand init demarre, il lit /etc/inittab pour y trouver ses
instructions. Ce fichier definit ce qui doit s'executer dans les
differents modes de fonctionnement (run-levels).
Cela donne a l'administrateur systeme une methode simple de gestion
dans laquelle chaque run-level est associe a un ensemble de services
(par exemple : S correspond a un mode maintenance (single-user), en
run-level 2, la plupart des services reseaux sont actifs, etc.).
L'administrateur peut changer le run-level courant par init(8) et
connaitre le run-level courant par runlevel(8).
Toutefois, comme il n'est pas pratique de gerer les services
individuellement en editant ce fichier, inittab se limite a l'appel
d'un ensemble de scripts qui demarrent/arretent les services.
Scripts de d'emarrage
Note : La description suivante s'applique aux systemes bases sur
System V release 4, ce qui couvre actuellement la plupart des
systemes UNIX commerciaux (Solaris, HP-UX, Irix, Tru64) ainsi
que les distributions majeures de Linux (Red Hat, Debian,
Mandriva, SUSE, Ubuntu). Certains systemes (Slackware Linux,
FreeBSD, OpenBSD) utilisent un procede quelque peu different
pour les scripts de demarrage.
Pour chaque service gere (messagerie, serveur nfs, cron, etc.) il y a
un script de demarrage simple stocke dans un repertoire specifique
(/etc/init.d dans la majorite des versions de Linux). Chacun de ces
scripts accepte en unique argument le mot << start >> -- dont l'effet
est le lancement du service --, ou le mot << stop >> -- pour arreter le
service. Le script peut eventuellement accepter d'autres parametres
pratiques (par exemple : << restart >>, enchaine un << stop >> suivi
d'un << start >>, << status >> donne l'etat du service). Un appel du
script sans argument permet d'afficher tous ceux possibles.
R'epertoires d'ordonnancement
Pour permettre aux scripts specifiques de demarrer/arreter dans un
run-level specifique et dans un ordre particulier, il y a des
r'epertoires d'ordonnancement. Ce sont generalement /etc/rc[0-6S].d.
Dans chacun de ces repertoires, il y a des liens (generalement
symboliques) vers les scripts du repertoire /etc/init.d.
Un premier script (souvent /etc/rc) est appele par inittab(5) et
appelle lui-meme les scripts des services grace aux liens des
repertoires d'ordonnancement. Tous les liens dont le nom commence par
<< S >> sont appeles avec l'argument << start >> (et demarrent le
service concerne). Tous les liens dont le nom commence par << K >> sont
appeles avec l'argument << stop >> (et arretent le service concerne).
Pour definir l'ordre de demarrage ou d'arret au sein d'un meme
run-level, les noms des liens contiennent des numeros d'ordre. Aussi,
pour plus de clarte, ils se terminent par le nom du service auquel il
se refere. Exemple : Le lien /etc/rc2.d/S80sendmail demarre le service
sendmail dans le run-level 2. Cela est fait apres l'execution de
/etc/rc2.d/S12syslog mais avant celle de /etc/rc2.d/S90xfs.
Pour gerer l'ordre de demarrage et les run-levels, on doit gerer ces
liens. Toutefois, sur beaucoup de versions de Linux, il existe des
outils qui facilitent cela. (exemple : chkconfig(8)).
Configuration de d'emarrage
Habituellement, les demons demarres peuvent eventuellement recevoir des
options et arguments sur leur ligne de commande. Pour permettre aux
administrateurs systemes de modifier ces parametres sans editer le
script, des fichiers de configuration sont utilises. Ils sont stockes
dans un repertoire specifique (/etc/sysconfig sur les systemes Red Hat
et Mandrake), et sont utilises par les scripts de demarrage.
Sur les anciens systemes UNIX, ces fichiers contenaient les options de
ligne de commande pour les demons, mais sur les systemes Linux modernes
(et aussi sur HP-UX), ces fichiers contiennent uniquement des variables
shell. Les scripts de demarrage du repertoire /etc/init.d sourcent (par
la commande interne << . >> du shell) les fichiers de configuration et
utilisent ensuite les variables.
FICHIERS
/etc/init.d/, /etc/rc[S0-6].d/, /etc/sysconfig/
VOIR AUSSI
inittab(5), bootparam(7), init(8), runlevel(8), shutdown(8)
COLOPHON
Cette page fait partie de la publication 3.32 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent etre trouvees a l'adresse
<URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION
Depuis 2010, cette traduction est maintenue a l'aide de l'outil po4a
<URL:http://po4a.alioth.debian.org/> par l'equipe de traduction
francophone au sein du projet perkamon
<URL:http://perkamon.alioth.debian.org/>.
Francois Micaux (2003), Alain Portal <URL:http://manpagesfr.free.fr/>
(2006). Julien Cristau et l'equipe francophone de traduction de
Debian (2006-2009).
Veuillez signaler toute erreur de traduction en ecrivant a
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir acces a la version anglaise de ce document
en utilisant la commande << man -L C <section> <page_de_man> >>.