Provided by: manpages-fr_4.15.0-9_all bug

NOM

       boot – processus de démarrage du système basé sur System V version 4 d'UNIX

DESCRIPTION

       Le  processus  de  démarrage (ou « séquence de démarrage ») dépend des systèmes, mais peut
       grossièrement être divisé en phases contrôlées par les composants suivants :

       1.  matériel

       2.  chargeur de démarrage

       3.  noyau

       4.  processus root en espace utilisateur (init et inittab)

       5.  scripts de démarrage

       Chaque composant est décrit plus en détails ci-dessous.

   Matériel
       Après la mise sous tension ou une réinitialisation  matérielle,  un  programme  stocké  en
       mémoire  morte (souvent une PROM) prend le contrôle. Pour des raisons historiques liées au
       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
       mémoire CMOS entretenue par une batterie. Ainsi la  plupart  des  gens  l'appellent  CMOS,
       alors  qu'en  dehors  du  monde  des  PC,  elle  est  généralement  appelée NVRAM (RAM non
       volatile).

       Les paramètres stockés dans la NVRAM dépendent  des  systèmes,  mais  doivent  indiquer  a
       minima  quel  périphérique  peut  fournir un chargeur de démarrage, ou quels périphériques
       peuvent être sondés pour en trouver un. Un  tel  périphérique  est  appelé  « périphérique
       d'amorçage ».  La  phase  de démarrage matériel charge le chargeur de démarrage depuis une
       position fixe sur le périphérique d'amorçage et lui passe le contrôle.

       Note : Le périphérique depuis lequel le chargeur d'amorçage est lu peut être  attaché  via
              un  réseau,  auquel  cas  les détails de démarrage sont indiqués par des protocoles
              tels que DHCP, TFTP, PXE, Etherboot, etc.

   Chargeur de démarrage
       Le rôle principal du chargeur de démarrage est de localiser le noyau sur un  périphérique,
       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.

       Sur les PC traditionnels, le chargeur de démarrage  est  situé  sur  le  premier  bloc  de
       512 octets du périphérique d'amorçage – ce bloc est appelé 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 – et rend quasiment  impossible  d'y  insérer
       beaucoup de fonctionnalités.

       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.  Ce  chargeur  de  démarrage
       secondaire  peut  se  trouver dans un plus grand emplacement de stockage persistant, comme
       une partition de disque.

       Sous Linux, le chargeur de démarrage est souvent lilo(8) ou grub(8).

   Noyau
       Quand le noyau est chargé, il initialise divers composants de l'ordinateur et  du  système
       d'exploitation.  Chaque  morceau  de  logiciel responsable d'une telle tâche est considéré
       comme un « pilote » pour le composant concerné. Le noyau 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 sur la racine « / »).

       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  processus  en  espace
       utilisateur,  qui  porte le numéro de processus 1 (PID). 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.

   Processus root en espace utilisateur
       Note : La description suivante s'applique  aux  systèmes  basés  sur  System V  release 4.
              Cependant,  un  certain  nombre  de  systèmes très répandus ont adopté une approche
              semblable mais fondamentalement différente appelée  systemd(1),  pour  laquelle  le
              processus de démarrage est détaillé dans bootup(7).

       Lorsque  /sbin/init  démarre,  il  lit  /etc/inittab  pour  y trouver ses instructions. Ce
       fichier définit ce qui doit s'exécuter lorsque le programme /sbin/init doit entrer dans un
       mode  de  fonctionnement (run-level particulier. Cela donne à l'administrateur une méthode
       simple pour établir un environnement pour un usage donné. Chaque  mode  de  fonctionnement
       est  associé  à  un  ensemble de services (par exemple, S correspond à un mode maintenance
       (single-user) et 2 implique le fonctionnement de la plupart des services réseaux).

       L'administrateur peut modifier le mode de fonctionnement grâce à init(1) et  consulter  le
       mode de fonctionnement actuel avec runlevel(8).

       Toutefois,  comme  il n'est pas pratique de gérer les services individuellement en éditant
       ce  fichier,  /etc/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.
              Cependant, un certain nombre de systèmes très répandus (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 existe 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 mode de fonctionnement
       (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  le
       script   de   chaque   service  grâce  à  un  lien  dans  le  répertoire  d'ordonnancement
       correspondant. 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, le nom d'un lien
       contient  un numéro d'ordre. Aussi, pour rendre les noms plus clairs, ceux-ci se terminent
       par le nom du service auquel ils se réfèrent.  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.

       Gérer ces liens revient à gérer l'ordre de démarrage et  les  run-levels.  Toutefois,  sur
       beaucoup de systèmes, il existe des outils qui facilitent cela (exemple : chkconfig(8)).

   Configuration de démarrage
       Un programme fournissant un service est souvent appelé « démon ». Habituellement, un démon
       peut recevoir des options et arguments sur  la  ligne  de  commande.  Pour  permettre  aux
       administrateurs  système  de  modifier  ces  paramètres  sans  éditer un script complet de
       démarrage, un fichier  de  configuration  séparé  est  utilisé.  Il  est  stocké  dans  un
       répertoire  spécifique  (/etc/sysconfig  sur les anciens systèmes Red Hat) où un script de
       démarrage associé pourra le trouver.

       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. Un script  de  démarrage  dans  le  répertoire
       /etc/init.d  lit  et  incorpore  son fichier de configuration (il « source » le fichier de
       configuration) et utilise ensuite les valeurs des variables.

FICHIERS

       /etc/init.d/, /etc/rc[S0-6].d/, /etc/sysconfig/

VOIR AUSSI

       init(1), systemd(1), inittab(5), bootparam(7), bootup(7), runlevel(8), shutdown(8)

COLOPHON

       Cette page fait partie de la publication 5.13 du projet man-pages Linux.  Une  description
       du  projet et des instructions pour signaler des anomalies et la dernière version de cette
       page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION

       La traduction française de cette  page  de  manuel  a  été  créée  par  Christophe  Blaess
       <https://www.blaess.fr/christophe/>,  Stéphan  Rafin  <stephan.rafin@laposte.net>, Thierry
       Vignaud <tvignaud@mandriva.com>, François Micaux, Alain  Portal  <aportal@univ-montp2.fr>,
       Jean-Philippe    Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-
       luc.coulon@wanadoo.fr>,   Julien    Cristau    <jcristau@debian.org>,    Thomas    Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>,  Denis
       Barbier <barbier@debian.org> et David Prévot <david@tilapin.org>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General
       Public  License  version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   concernant   les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à ⟨debian-l10n-french@lists.debian.org⟩.