Provided by: manpages-fr_3.65d1p1-1_all bug

NOM

       boot-scripts - Description générale du démarrage du système

DESCRIPTION

       La  séquence  de  démarrage est variable en fonction du système mais peut globalement être découpée selon
       les étapes suivantes : (i) amorçage matériel, (ii) chargeur de démarrage du système d'exploitation, (iii)
       démarrage du noyau, (iv) init et inittab, (v) scripts de démarrage. Nous allons décrire  chacune  d'entre
       elles plus en détail ci-dessous.

   Amorçage matériel
       Après  la mise sous tension ou un reset matériel, un programme stocké en mémoire morte (souvent une PROM)
       prend le contrôle. Sur les PC, on appelle généralement ce programme le BIOS.

       Ce programme effectue normalement un autotest de la machine et accède à la mémoire non  volatile  pour  y
       lire  quelques  paramètres. Dans les PC, cette mémoire 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  généralement  appelée
       nvram (non-volatile ram).

       Les  paramètres  stockés  dans  la  nvram  varient  d'un système à l'autre, mais au minimum, le programme
       d'amorçage matériel devrait savoir quel est le périphérique d'amorçage, ou à défaut  quels  périphériques
       il faut essayer pour amorcer le système.

       Ensuite,  la  phase  de  démarrage  matériel  accède  au  périphérique  d'amorçage, charge le chargeur de
       démarrage, qui est situé à une position fixe sur le périphérique d'amorçage, et lui passe le contrôle.

       Note : Nous n'abordons pas ici le démarrage à partir  du  réseau.  Ceux  qui  s'intéressent  à  ce  sujet
              devraient rechercher du côté de DHCP, TFTP, PXE, Etherboot.

   Chargeur de démarrage
       Sur  les PC, le chargeur de démarrage est situé sur le premier secteur du périphérique d'amorçage - c'est
       le MBR (Master Boot Record).

       Sur la plupart des systèmes, ce chargeur initial est très limité du fait de  diverses  contraintes.  Même
       sur  des systèmes autres que le PC, il existe des limitations concernant la taille et la complexité de ce
       chargeur, mais la taille du MBR des PC  est  limitée  -  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 démarrage complet.

       Ainsi, sur la plupart des systèmes d'exploitation, le chargeur initial appelle un chargeur  de  démarrage
       secondaire situé sur une partition du disque.

       Sous  Linux,  le chargeur de démarrage est normalement lilo(8) ou grub(8). 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, car ils fournissent un MBR spécial contenant un code d'amorçage pour charger la seconde
       partie du chargeur à partir de la partition principale.

       Le rôle principal du chargeur de démarrage est de localiser  le  noyau  sur  le  disque,  le  charger  et
       l'exécuter.  La plupart des chargeurs de démarrage sont interactifs, pour permettre la spécification d'un
       noyau alternatif (par exemple un noyau de sauvegarde dans le cas  où  la  dernière  version  compilée  ne
       fonctionne pas) et le passage de paramètres optionnels au noyau.

   Démarrage du noyau
       Quand  le  noyau est chargé, il initialise les périphériques (via leurs pilotes), démarre le gestionnaire
       de swap (c'est un « processus noyau », appelé kswapd sur les noyaux Linux modernes), et monte le  système
       de fichiers racine - appelé root filesystem - (/).

       Quelques  paramètres  relatifs  à  cela  peuvent être passés au noyau (par exemple : on peut spécifier un
       autre système de fichiers racine que celui par défaut). Pour plus d'informations sur  les  paramètres  du
       noyau Linux, consultez bootparam(7).

       C'est  uniquement à cet instant que le noyau crée un premier (en espace utilisateur) processus, qui porte
       le numéro 1. Ce processus exécute le programme /sbin/init, en lui passant tout paramètre  qui  n'est  pas
       déjà géré par le noyau.

   init et inittab
       Quand  init  démarre, il lit /etc/inittab pour y trouver ses instructions. Ce fichier définit ce qui doit
       s'exécuter dans les différents modes de fonctionnement (run-levels).

       Cela donne à l'administrateur système une méthode simple de gestion dans laquelle  chaque  run-level  est
       associé  à  un  ensemble  de services (par exemple : S correspond à un mode maintenance (single-user), en
       run-level 2, la plupart des services réseaux sont actifs). L'administrateur  peut  changer  le  run-level
       courant par init(8) et connaître le run-level courant par runlevel(8).

       Toutefois,  comme  il  n'est  pas  pratique de gérer les services individuellement en éditant ce fichier,
       inittab se limite à l'appel d'un ensemble de scripts qui démarrent/arrêtent les services.

   Scripts de démarrage
       Note : La description suivante s'applique aux systèmes  basés  sur  System V  release 4,  ce  qui  couvre
              actuellement  la plupart des systèmes UNIX commerciaux (Solaris, HP-UX, Irix, Tru64) ainsi que les
              distributions majeures de Linux (Red Hat,  Debian,  Mandriva,  SUSE,  Ubuntu).  Certains  systèmes
              (Slackware Linux, FreeBSD, OpenBSD) utilisent un procédé quelque peu différent pour les scripts de
              démarrage.

       Pour  chaque  service  géré  (messagerie,  serveur  nfs, cron, etc.) il y a un script de démarrage simple
       stocké dans un répertoire spécifique (/etc/init.d dans la majorité 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 arrêter le service.  Le  script  peut  éventuellement  accepter  d'autres  paramètres
       pratiques  (par exemple : « restart », enchaîne un « stop » suivi d'un « start », « status » donne l'état
       du service). Un appel du script sans argument permet d'afficher tous ceux possibles.

   Répertoires d'ordonnancement
       Pour permettre aux scripts spécifiques de démarrer/arrêter dans un run-level spécifique et dans un  ordre
       particulier,  il  y a des répertoires d'ordonnancement. Ce sont généralement /etc/rc[0-6S].d. Dans chacun
       de ces répertoires, il  y  a  des  liens  (généralement  symboliques)  vers  les  scripts  du  répertoire
       /etc/init.d.

       Un  premier  script  (souvent  /etc/rc)  est  appelé  par  inittab(5) et appelle lui-même les scripts des
       services grâce aux liens des répertoires d'ordonnancement. Tous les liens dont le nom commence par  « S »
       sont  appelés  avec  l'argument  « start » (et démarrent le service concerné). Tous les liens dont le nom
       commence par « K » sont appelés avec l'argument « stop » (et arrêtent le service concerné).

       Pour définir l'ordre de démarrage ou d'arrêt au sein d'un même run-level, les noms des liens  contiennent
       des  numéros  d'ordre.  Aussi,  pour  plus de clarté, ils se terminent par le nom du service auquel il se
       réfère. Exemple : Le lien /etc/rc2.d/S80sendmail démarre le service sendmail dans  le  run-level 2.  Cela
       est fait après l'exécution de /etc/rc2.d/S12syslog mais avant celle de /etc/rc2.d/S90xfs.

       Pour  gérer  l'ordre  de démarrage et les run-levels, on doit gérer ces liens. Toutefois, sur beaucoup de
       versions de Linux, il existe des outils qui facilitent cela. (exemple : chkconfig(8)).

   Configuration de démarrage
       Habituellement, les démons démarrés peuvent éventuellement recevoir des options  et  arguments  sur  leur
       ligne  de commande. Pour permettre aux administrateurs systèmes de modifier ces paramètres sans éditer le
       script, des fichiers de configuration sont utilisés. Ils  sont  stockés  dans  un  répertoire  spécifique
       (/etc/sysconfig sur les systèmes Red Hat et Mandrake), et sont utilisés par les scripts de démarrage.

       Sur les anciens systèmes UNIX, ces fichiers contenaient les options de ligne de commande pour les démons,
       mais  sur  les  systèmes  Linux  modernes  (et  aussi sur HP-UX), ces fichiers contiennent uniquement des
       variables shell. Les scripts de démarrage du répertoire /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.65 du projet man-pages Linux. Une description du projet et des
       instructions     pour     signaler     des     anomalies    peuvent    être    trouvées    à    l'adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par
       l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

       François Micaux (2003), Alain Portal <http://manpagesfr.free.fr/>  (2006).  Julien  Cristau  et  l'équipe
       francophone de traduction de Debian (2006-2009).

       Veuillez  signaler  toute erreur de traduction en écrivant à <debian-l10n-french@lists.debian.org> ou par
       un rapport de bogue sur le paquet manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C
       <section> <page_de_man> ».

Linux                                           19 septembre 2010                                        BOOT(7)