boot(7) Miscellaneous Information Manual boot(7) NOM boot - processus de demarrage du systeme base sur System V version 4 d'UNIX DESCRIPTION The bootup process (or "boot sequence") varies in details among systems, but can be roughly divided into phases controlled by the following components: (1) materiel (2) chargeur de demarrage (3) noyau (4) root user-space process (init(8) and inittab(5)) (5) scripts de demarrage Chaque composant est decrit plus en details ci-dessous. Materiel After power-on or hard reset, control is given to a program stored in read-only memory (normally PROM); for historical reasons involving the personal computer, this program is often called "the BIOS". This program normally performs a basic self-test of the machine and accesses nonvolatile memory to read further parameters. This memory in the PC is battery-backed CMOS memory, so most people refer to it as "the CMOS"; outside of the PC world, it is usually called "the NVRAM" (nonvolatile RAM). The parameters stored in the NVRAM vary among systems, but as a minimum, they should specify which device can supply an OS loader, or at least which devices may be probed for one; such a device is known as "the boot device". The hardware boot stage loads the OS loader from a fixed position on the boot device, and then transfers control to it. Note : Le peripherique depuis lequel le chargeur d'amorcage est lu peut etre attache via un reseau, auquel cas les details de demarrage sont indiques par des protocoles tels que DHCP, TFTP, PXE, Etherboot, etc. Chargeur de demarrage Le role principal du chargeur de demarrage est de localiser le noyau sur un peripherique, 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. In a traditional PC, the OS loader is located in the initial 512-byte block of the boot device; this block is known as "the 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 - et rend quasiment impossible d'y inserer beaucoup de fonctionnalites. Ainsi, sur la plupart des systemes d'exploitation, le chargeur initial appelle un chargeur de demarrage secondaire situe sur une partition du disque. Ce chargeur de demarrage secondaire peut se trouver dans un plus grand emplacement de stockage persistant, comme une partition de disque. Sous Linux, le chargeur de demarrage est souvent grub(8) (lilo(8) est une alternative). Noyau When the kernel is loaded, it initializes various components of the computer and operating system; each portion of software responsible for such a task is usually consider "a driver" for the applicable component. The kernel starts the virtual memory swapper (it is a kernel process, called "kswapd" in a modern Linux kernel), and mounts some filesystem at the root path, /. 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 processus en espace utilisateur, qui porte le numero de processus 1 (PID). Ce processus execute le programme /sbin/init, en lui passant tout parametre qui n'est pas deja gere par le noyau. Processus root en espace utilisateur Note : La description suivante s'applique aux systemes bases sur System V release 4. Cependant, un certain nombre de systemes tres repandus ont adopte une approche semblable mais fondamentalement differente appelee systemd(1), pour laquelle le processus de demarrage est detaille dans bootup(7). Lorsque /sbin/init demarre, il lit /etc/inittab pour y trouver ses instructions. Ce fichier definit ce qui doit s'executer lorsque le programme /sbin/init doit entrer dans un mode de fonctionnement (run-level) particulier. Cela donne a l'administrateur une methode simple pour etablir un environnement pour un usage donne. Chaque mode de fonctionnement est associe a un ensemble de services (par exemple, S correspond a un mode maintenance (single-user) et 2 implique le fonctionnement de la plupart des services reseaux). L'administrateur peut modifier le mode de fonctionnement grace a init(1) et consulter le mode de fonctionnement actuel avec runlevel(8). Toutefois, comme il n'est pas pratique de gerer les services individuellement en editant ce fichier, /etc/inittab se limite a l'appel d'un ensemble de scripts qui demarrent/arretent les services. Scripts de demarrage Note : La description suivante s'applique aux systemes bases sur System V release 4. Cependant, un certain nombre de systemes tres repandus (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 existe 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. Repertoires d'ordonnancement To make specific scripts start/stop at specific run levels and in a specific order, there are sequencing directories, normally of the form /etc/rc[0-6S].d. In each of these directories, there are links (usually symbolic) to the scripts in the /etc/init.d directory. A primary script (usually /etc/rc) is called from inittab(5); this primary script calls each service's script via a link in the relevant sequencing directory. Each link whose name begins with 'S' is called with the argument "start" (thereby starting the service). Each link whose name begins with 'K' is called with the argument "stop" (thereby stopping the service). Pour definir l'ordre de demarrage ou d'arret au sein d'un meme run level, le nom d'un lien contient un numero d'ordre. Aussi, pour rendre les noms plus clairs, ceux-ci se terminent par le nom du service auquel ils se referent. Exemple : le lien /etc/rc2.d/S80sendmail demarre le service sendmail(8) dans le run level 2. Cela est fait apres l'execution de /etc/rc2.d/S12syslog mais avant celle de /etc/rc2.d/S90xfs. Gerer ces liens revient a gerer l'ordre de demarrage et les run levels. Toutefois, sur beaucoup de systemes, il existe des outils qui facilitent cela (exemple : chkconfig(8)). Configuration de demarrage A program that provides a service is often called a "daemon". Usually, a daemon may receive various command-line options and parameters. To allow a system administrator to change these inputs without editing an entire boot script, some separate configuration file is used, and is located in a specific directory where an associated boot script may find it (/etc/sysconfig on older Red Hat systems). In older UNIX systems, such a file contained the actual command line options for a daemon, but in modern Linux systems (and also in HP-UX), it just contains shell variables. A boot script in /etc/init.d reads and includes its configuration file (that is, it "sources" its configuration file) and then uses the variable values. 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) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier et David Prevot Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.15 17 mai 2025 boot(7)