Sophie

Sophie

distrib > * > 2010.0 > * > by-pkgid > a412ceb851151854794ced2a242192bb > files > 476

howto-html-fr-20080722-1mdv2010.0.noarch.rpm

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>3. Disques d'amorce et démarrage</title>
<link rel="stylesheet" href="style.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.64.1">
<link rel="home" href="index.html" title="Guide pratique des disquettes d'amorçage">
<link rel="up" href="index.html" title="Guide pratique des disquettes d'amorçage">
<link rel="previous" href="ar01s02.html" title="2. Introduction">
<link rel="next" href="ar01s04.html" title="4. Construire un système racine">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">3. Disques d'amorce et démarrage</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="ar01s02.html">Précédent</a> </td>
<th width="60%" align="center"> </th>
<td width="20%" align="right"> <a accesskey="n" href="ar01s04.html">Suivant</a>
</td>
</tr>
</table>
<hr>
</div>
<div class="sect1" lang="fr">
<div class="titlepage">
<div><div><h2 class="title" style="clear: both">
<a name="id2512390"></a>3. Disques d'amorce et démarrage</h2></div></div>
<div></div>
</div>
<a class="indexterm" name="id2512395"></a><p>
Un disque d'amorce est essentiellement un système Linux miniature et
auto-suffisant contenu sur une disquette. Il doit pouvoir effectuer
nombre d'opérations possibles sur un système Linux de taille
normale. Avant d'essayer d'en créer un, vous devez comprendre les
bases du démarrage de Linux. Nous en faisons ici une présentation qui
devrait suffire à la compréhension de la suite du document. Bien des
détails ou des possibilités ont été omis.
</p>
<div class="sect2" lang="fr">
<div class="titlepage">
<div><div><h3 class="title">
<a name="boot"></a>3.1. Démarrage</h3></div></div>
<div></div>
</div>
<a class="indexterm" name="id2512528"></a><p>
Tous les PC démarrent en exécutant du code situé en mémoire morte (à
savoir, le <span class="acronym">BIOS</span>) afin de charger le secteur situé au
secteur 0, cylindre 0 du <span class="emphasis"><em>disque d'amorce</em></span>. Celui-ci
est habituellement le premier lecteur de disquette (appelé
<span class="emphasis"><em>A:</em></span> sous DOS et <tt class="filename">/dev/fd0</tt> sous
Linux). Le <span class="acronym">BIOS</span> essaye alors d'exécuter ce secteur.
Sur la plupart des disques d'amorce, le secteur 0, cylindre 0 contient :
</p>
<div class="itemizedlist"><ul type="disc">
<li><p>soit le code d'un chargeur tel que
<span><b class="command">LILO</b></span>, qui trouve le noyau, le charge et l'exécute
pour réaliser le démarrage proprement dit,
</p></li>
<li><p>soit le début du noyau d'un système d'exploitation, tel
que Linux.
</p></li>
</ul></div>
<p>
Si un noyau Linux a été copié directement sur une disquette, le
premier secteur du disque sera le premier secteur du noyau Linux
lui-même. Ce premier secteur continuera le démarrage en chargeant le
reste du noyau depuis le périphérique d'amorce.
</p>
<p>
Une fois que le noyau est complètement chargé, il effectue certaines
initialisations de périphériques ainsi que de ses données internes.  Une
fois qu'il est complètement initialisé, il consulte un endroit
particulier dans son image appelé le <span class="emphasis"><em>mot disque
mémoire</em></span>. Ce mot précise comment et où trouver le système de
fichiers racine.  Un système de fichiers racine est simplement celui qui
est monté en tant que « / ». Il faut dire au noyau où trouver ce système
racine ; s'il ne peut trouver d'image à charger, il s'arrête.
</p>
<p>
Dans certains cas au démarrage (souvent lors du démarrage depuis une
disquette), le système de fichiers racine est chargé dans un
<span><b class="command">disque mémoire</b></span>, auquel le système accède ensuite en
mémoire comme s'il s'agissait d'un vrai disque. Il y a deux raisons à
un tel chargement en mémoire. Premièrement, la mémoire vive est de
plusieurs ordres de magnitude plus rapide qu'une disquette, et le
système est donc rapide ; deuxièmement, le noyau peut charger un
<span class="emphasis"><em>système de fichiers compressé</em></span> depuis la disquette
et le décompresser en mémoire, permettant ainsi de stocker plus de
fichiers sur la disquette.
</p>
<p>
Une fois le système de fichiers racine chargé et monté, vous voyez un
message tel que :
</p>
<pre class="programlisting">
VFS: Mounted root (ext2 filesystem) readonly.
</pre>
<a class="indexterm" name="id2512675"></a><a class="indexterm" name="id2512686"></a><a class="indexterm" name="id2512699"></a><p>
À ce moment, le système trouve le programme <span><b class="command">init</b></span> dans
le système racine (dans <tt class="filename">/bin</tt> ou
<tt class="filename">/sbin</tt>) et l'exécute. <span><b class="command">init</b></span> lit sa
configuration dans <tt class="filename">/etc/inittab</tt>, cherche une ligne
nommée <span class="emphasis"><em>sysinit</em></span>, et exécute le script indiqué. Le
script <span><b class="command">sysinit</b></span> est en général un fichier du genre
<tt class="filename">/etc/rc</tt> ou <tt class="filename">/etc/init.d/boot</tt>.
Le script est un ensemble de commandes shell qui mettent en place les
services de base du système, tels que :
</p>
<div class="itemizedlist"><ul type="disc">
<li><p>Lancer <span><b class="command">fsck</b></span> sur tous les disques
;</p></li>
<li><p>Charger les <span class="emphasis"><em>modules</em></span> nécessaires du
noyau ;</p></li>
<li><p>Lancer la pagination ;</p></li>
<li><p>Initialiser le réseau ;</p></li>
<li><p>Monter les disques indiqués dans
<tt class="filename">fstab</tt>.</p></li>
</ul></div>
<p>
Ce script appelle lui-même souvent nombre d'autres scripts pour réaliser
une initialisation modulaire. Par exemple, dans la structure SysVinit
habituelle, le répertoire <tt class="filename">/etc/rc.d/</tt> contient une
structure complexe de sous-répertoires dont les fichiers indiquent
comment lancer et arrêter la plupart des services du système. En revanche,
sur un disque d'amorce, le script <span><b class="command">sysinit</b></span> est
souvent très simple.
</p>
<p>
Quand le script <span><b class="command">sysinit</b></span> se termine, le contrôle
revient à <span><b class="command">init</b></span>, qui entre alors dans le
<span class="emphasis"><em>niveau d'exécution par défaut</em></span>, spécifié dans
<tt class="filename">inittab</tt> par le mot clé
<span class="emphasis"><em>initdefault</em></span>. La ligne du niveau d'exécution indique
en général un programme tel que <span><b class="command">getty</b></span>, responsable de
la gestion des communications par la console ou les
<tt class="filename">tty</tt>. C'est le programme <span><b class="command">getty</b></span>
qui affiche l'invite habituelle <span class="emphasis"><em>login:</em></span>. Lui-même
exécute à son tour le programme <span><b class="command">login</b></span> pour gérer la
validation du login et mettre en place la session de l'utilisateur.
</p>
</div>
<div class="sect2" lang="fr">
<div class="titlepage">
<div><div><h3 class="title">
<a name="id2512915"></a>3.2. Types de disques</h3></div></div>
<div></div>
</div>
<p>
Après avoir revu les bases du démarrage, nous pouvons définir les
différents types de disques mis en jeu. Ces disques sont classés en
quatre catégories. Ça et là dans le document, on emploie le terme
<span class="emphasis"><em>disque</em></span> pour désigner une disquette, sauf précision
contraire, bien que la majeure partie de la discussion puisse également
s'appliquer à des disques durs.
</p>
<div class="variablelist"><dl>
<dt><span class="term">Amorce</span></dt>
<dd>
<p>
Un disque contenant un noyau pouvant être amorcé. Il peut
être utilisé pour démarrer le noyau, qui pourra alors charger un
système racine depuis un autre disque. Il est en général nécessaire
d'indiquer au noyau où se trouve ce système racine.
</p>
<p>
Souvent un disque d'amorce charge le système racine depuis une autre
disquette, mais il est possible de lui indiquer un disque dur d'où il
chargera le système racine à la place. Souvent, c'est dans le but de
tester un nouveau noyau (d'ailleurs, <span><b class="command">make zdisk</b></span> crée
un tel disque d'amorce automatiquement à partir du code source du
noyau).
</p>
</dd>
<dt><span class="term">Racine</span></dt>
<dd>
<p>
Un disque avec un système de fichiers contenant les
fichiers nécessaires au fonctionnement d'un système Linux. Un tel
disque ne contient pas forcément un noyau ou un chargeur.
</p>
<a class="indexterm" name="id2512994"></a><p>
Un disque racine peut être utilisé pour faire tourner le système
indépendamment de tout autre disque, une fois le noyau amorcé. En
général le disque racine est copié automatiquement vers un disque
mémoire. Cela permet un accès au disque racine bien plus rapide, et
libère le lecteur pour une disquette d'utilitaires.
</p>
</dd>
<dt><span class="term">Amorce/racine</span></dt>
<dd><p> Un disque contenant à la fois un noyau
<a class="indexterm" name="id2513024"></a>
et un système de fichiers racine. Autrement dit, il contient tout ce
qui est nécessaire au démarrage et au fonctionnement d'un système
Linux sans disque dur. L'avantage de ce type de disque est sa
compacité : tout ce dont on a besoin est sur un seul
disque. Néanmoins, la taille toujours plus importante des programmes
implique une difficulté croissante pour tout faire tenir sur une seule
disquette, même avec de la compression.
</p></dd>
<dt><span class="term">Utilitaire</span></dt>
<dd><p> Un disque contenant un système de fichier non destiné
à être monté en tant que racine. Il s'agit d'un disque de données
supplémentaires. Vous pouvez utiliser ce genre de disque pour rajouter
des utilitaires, quand vous en avez trop pour un seul disque amorce.
<a class="indexterm" name="id2513065"></a>
</p></dd>
</dl></div>
<p>
En général, lorsque l'on parle de « construire un disque 
d'amorce », c'est de la création des parties amorce (noyau) 
et racine 
(fichiers) qu'il est question, soit en un seul morceau (un seul disque 
amorce/racine), soit séparément (un disque amorce et un racine). 
L'approche la plus flexible pour des disquettes de secours est 
d'utiliser des disquettes amorce et racine séparées, et une ou plusieurs 
disquettes utilitaires pour supporter le trop-plein.
</p>
</div>
</div>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="ar01s02.html">Précédent</a> </td>
<td width="20%" align="center"><a accesskey="u" href="index.html">Niveau supérieur</a></td>
<td width="40%" align="right"> <a accesskey="n" href="ar01s04.html">Suivant</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">2. Introduction </td>
<td width="20%" align="center"><a accesskey="h" href="index.html">Sommaire</a></td>
<td width="40%" align="right" valign="top"> 4. Construire un système racine</td>
</tr>
</table>
</div>
</body>
</html>