/usr/share/doc/HOWTO/fr-html/Diskless.html is in doc-linux-fr-html 2013.01-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 25 March 2009), see www.w3.org">
<meta name="GENERATOR" content="LinuxDoc-Tools 0.9.69">
<title>Mini Howto Linux pour systèmes sans lecteur de
disque(ttes)</title>
</head>
<body>
<h1>Mini Howto Linux pour systèmes sans lecteur de
disque(ttes)</h1>
<h2>par Robert Nemkin <code>buci@math.klte.hu</code><br>
Traducteur: <a href="http://www.lifl.fr/~blondeel">Sébastien
Blondeel</a> ( <a href=
"mailto:sebastien.blondeel@lifl.fr">sebastien.blondeel@lifl.fr</a>)<br>
</h2>
v0.0.3 12 Sep 1996
<hr>
<em>Ce document décrit la manière de configurer un
système sous Linux sans disque dur ni lecteur de disquettes.
Ses droits appartiennent à Robert Nemkin, et il est
placé sous les termes de la Publique Générale
GNU. L'auteur remercie Bela Kis <bkis@cartan.math.klte.hu>
pour avoir traduit ce document en anglais. Sébastien
Blondeel, <Sebastien.Blondeel@lifl.fr> a traduit ce document
en français.</em>
<hr>
<h2><a name="s1">1. Modifications</a></h2>
<ul>
<li>v0.0.3 12 Sep 1996: Quelques erreurs mineures ont
été corrigées</li>
</ul>
<h2><a name="s2">2. Comment configurer un système sous Linux
sans lecteur de disque(ttes)</a></h2>
<p>Ce document décrit la manière de configurer un
système sous Linux sans disque dur ni lecteur de disquette.
Il peut parfois s'avérer nécessaire de faire tourner
Linux sur des ordinateurs personnels ("PC") qui ne possèdent
ni disque dur ni lecteur de disquettes. Si on dispose d'un
réseau, d'un autre système sous Unix avec bootp et
tftp, d'un serveur NFS et d'un brûleur d'EPROM, alors il est
possible de configurer et de faire tourner un système sous
Linux sans disque dur ni disquette.</p>
<h2><a name="s3">3. Consulter également les documents
suivants:</a></h2>
<ul>
<li>NFS-root Mini Howto</li>
<li>Linux NET-2/3-HOWTO par Terry Dawson,
<code>94004531@postoffice.csu.edu.au</code></li>
<li><code>/usr/src/linux/README</code> pour la configuration et la
compilation de nouveaux noyaux</li>
</ul>
<h2><a name="s4">4. Matériel</a></h2>
<p>Tout ce qui est décrit ici a été
testé avec la configuration suivante:</p>
<ul>
<li>Sun-OS 4.1.3 comme serveur d'amorçage</li>
<li>Slackware 2.3 + Linux 1.2.8 + la carte ethernet wd 8013</li>
<li>Un réseau ethernet en état de fonctionnement</li>
</ul>
<h2><a name="s5">5. Idées fondamentales</a></h2>
<p>L'idée de base est la suivante: le PC va obtenir son
adresse IP du serveur d'amorçage par le protocole bootp, en
utilisant 0.0.0.0 comme adresse IP initiale et en obtenant son
noyau par le protocole tftp.</p>
<blockquote>Un amorçage à travers des segments (via
un routeur) n'est pas un problème simple, aussi faut-il
mettre à la fois le serveur et la machine sans disque sur le
même segment de réseau, ou configurer une adresse UDP
d'aide dans votre routeur pointant vers l'adresse du serveur.
Référez-vous au manuel de votre routeur pour de plus
amples informations sur le sujet.</blockquote>
<p>Pour cela, suivez les étapes ci-dessous.</p>
<h2><a name="ss5.1">5.1 Configurer le PC</a></h2>
<p>Obtenez le paquetage nfsboot (ce paquetage est disponible sur
votre site miroir de Linux préféré dans le
répertoire <code>/pub/Linux/system/Linux-boot</code>). Il
contient une image d'amorçage pour l'EPROM de la carte
wd8013 qui peut être brûlée telle quelle.</p>
<p>Il y a d'autres manières de préparer le PC:</p>
<ul>
<li>si votre machine contient un petit disque ou un lecteur de
disquette, vous pouvez utiliser le petit programme sous DOS,
ou</li>
<li>l'image binaire pour disquette qui se trouve dans le même
paquetage.</li>
</ul>
Si vous choisissez la deuxième option, il faut utiliser la
commande dd pour écrire l'image sur la disquette.
<p>Ces images contiennent un client bootp et un client tftp. Vous
devez également préparer un noyau pour linux,
comportant l'option NFS-root (amorçage par NFS).</p>
<ul>
<li>Si vous utilisez le dernier noyau stable, linux-1.2.13, alors
il faut corriger le noyau avec le fichier de correction contenu
dans le paquetage nfsboot
<blockquote>Consulter patch(1)</blockquote>
</li>
<li>Si vous utilisez le dernier noyau en date, instable, de la
série linux-1.3.x, il vous faut configurer l'option
NFS-root.</li>
</ul>
Vous pouvez ou non choisir de configurer le support pour
périphérique en mode bloc (disque dur ou disquette),
mais vous devez configurer le support pour tcp/ip, pour la carte
ethernet wd, et pour le système de fichiers NFS. Puis
recompilez le noyau de manière habituelle.
<h2><a name="ss5.2">5.2 Configurer un bootpd sur le
serveur</a></h2>
<p>On peut le trouver dans le paquetage
<code>bootpd-2.4.tar.gz</code> (qui se trouve sur votre site miroir
de Linux préféré dans le répertoire
<code>/pub/Linux/system/Network/boot.net</code>). Chargez le
paquetage, compilez-le et installez-le. Si votre autre
système sous Linux se trouve être une distribution
Slackware, vous pouvez passer à l'étape suivante
puisque les distributions standard comportent un bootpd. On peut
démarrer le démon, soit en tapant la commande</p>
<blockquote>
<hr>
<pre>
<code> bootpd -s
</code>
</pre>
<hr></blockquote>
soit en utilisant inetd. Dans ce dernier cas, il vous faut
éditer:
<ul>
<li>/etc/inetd.conf pour ôter le signe dièse de mise
en commentaire au début des lignes suivantes:
<blockquote>
<hr>
<pre>
<code># tftp dgram udp wait root /usr/sbin/in.tftpd tftpd /export
# bootps dgram udp wait root /usr/sbin/in.bootpd bootpd
</code>
</pre>
<hr></blockquote>
</li>
<li>insérer ou ôtez le signe de commentaire pour les
deux lignes suivantes dans /etc/services:
<blockquote>
<hr>
<pre>
<code>bootps 67/tcp # serveur BOOTP
tftp 69/udp # serveur TFTP
</code>
</pre>
<hr></blockquote>
</li>
<li>redémarrez inetd en tapant
<blockquote>
<hr>
<pre>
<code> kill -HUP <numéro d'identification du processus de inetd>.
</code>
</pre>
<hr></blockquote>
</li>
</ul>
<h2><a name="ss5.3">5.3 Configurer le bootpd sur le
serveur.</a></h2>
<p>Tout d'abord, bootpd possède un fichier de configuration
qui s'appelle bootptab et qui se trouve habituellement dans /etc.
Vous devez le modifier en indiquant les adresses IP de votre
passerelle, de votre serveur dns, et les adresses ethernet de votre
ou vos machines sans disques. Voici un fichier /etc/bootptab
d'exemple:</p>
<blockquote>
<hr>
<pre>
<code>
global.prof:\
:sm=255.255.255.0:\
:ds=192.168.1.5:\
:gw=192.168.1.19:\
:ht=ethernet:\
:bf=linux:
machine1:hd=/export/root/machine1:tc=global.prof:ha=0000c0863d7a:ip=192.168.1.140:
machine2:hd=/export/root/machine2:tc=global.prof:ha=0800110244e1:ip=192.168.1.141:
machine3:hd=/export/root/machine3:tc=global.prof:ha=0800110244de:ip=192.168.1.142:
</code>
</pre>
<hr></blockquote>
<p>global.prof est un patron général pour les
entrées d'hôtes, où</p>
<ul>
<li>le champ sm contient le masque pour le sous-réseau</li>
<li>le champ ds contient l'adresse du serveur de nom de domaine
(DNS)</li>
<li>le champ gw contient l'adresse de la passerelle par
défaut</li>
<li>le champ ht contient le type de carte réseau</li>
<li>le champ bf contient le nom du fichier d'amorçage</li>
</ul>
<p>Après cela, chaque machine doit posséder sa propre
entrée sur une ligne:</p>
<ul>
<li>le premier champ contient le nom de l'hôte</li>
<li>le champ hd contient le répertoire du fichier
d'amorçage</li>
<li>on peut inclure le patron global avec le champ tc</li>
<li>le champ ha contient l'adresse matérielle de la carte
ethernet</li>
<li>le champ ip contient l'adresse IP qui a été
attribuée</li>
</ul>
<h2><a name="ss5.4">5.4 Comprendre tftp</a></h2>
<p>TFTP (<code>Trivial File Transfer Protocol</code>, ou protocole
de transfert de fichiers banal) est un protocole de transfert de
fichiers, comme ftp, mais il est beaucoup plus facile à
programmer dans des mémoires de type EPROM. On peut utiliser
TFTP de deux manières:</p>
<ul>
<li>tftp simple: cela signifie que le client peut accéder
à la totalité de votre système de fichiers.
C'est plus simple, mais cela constitue un gros trou de
sécurité (n'importe qui peut obtenir votre fichier de
mots de passe par tftp).</li>
<li>tftp sécurisé: le serveur tftp utilise un appel
système chroot.2 pour modifier son propre répertoire
racine. Tout ce qui n'est pas dans cette racine sera absolument
inaccessible. Comme le répertoire chroot devient le nouveau
répertoire racine, le champ hd listé dans le fichier
bootptab doit prendre cette situation en compte. Par exemple:
lorsqu'on utilise tftp non sécurisé, le champ hd
contient le chemin complet menant au répertoire
d'amorçage: <code>/export/root/machine1</code>. Lorsqu'on
utilise tftp sécurisé avec /export comme
répertoire racine, alors /export devient / et le champ hd
doit être <code>/root/machine1</code>.</li>
</ul>
Comme pratiquement toute installation Unix comporte un serveur
tftp, vous n'aurez probablement pas besoin d'installer la votre.
<h2><a name="ss5.5">5.5 Configurer un Linux minimal sur le serveur
distant.</a></h2>
<p>Il vous faut pour cela, par exemple, les paquetages a, ap, n et
x de la distribution Slackware. Il est possible d'installer plus de
choses; ce pendant les paquetages ci-dessus suffiront à
l'installation d'un terminal X sans disque. Pour l'installation, il
vous faut un système sous Linux en état de marche.
Trouvez un peu d'espace disque sur la machine distante et
exportez-le en lecture et en écriture. Montez le
répertoire exporté quelque part (par exemple sur
/mnt) sur le système de fichiers du système sous
Linux. Démarrez Linux et modifiez l'option de racine dans la
configuration; remplacez / par /mnt. Puis configurez les paquetages
ci-dessus de manière habituelle. Si vous ne souhaitez faire
tourner qu'un seul Linux sans disque, il ne vous faut rien modifier
d'autre. D'un autre côté, si vous pensez utiliser plus
d'une machine sans disque, la configuration décrite
ci-dessus ne fonctionnera pas parce que certains fichiers et
répertoires doivent être privés pour chaque
machine. On peut contourner ce problème on
déplaçant le répertoire /usr (il ne contient
aucune donnée personnelle) et ensuite de créer un
sous-répertoire pour chaque machine sans disque. Par
exemple, si /export/linux/machine1 est monté sur /mnt alors
la structure des répertoires après la configuration
initiale ressemblera à:</p>
<blockquote>
<hr>
<pre>
<code>/export/linux/machine1/bin
/export/linux/machine1/sbin
/export/linux/machine1/lib
/export/linux/machine1/etc
/export/linux/machine1/var
/export/linux/machine1/usr
</code>
</pre>
<hr></blockquote>
<p>Après les modifications vous obtiendrez</p>
<blockquote>
<hr>
<pre>
<code>/export/linux/machine1/bin
/export/linux/machine1/sbin
/export/linux/machine1/lib
/export/linux/machine1/etc
/export/linux/machine1/var
/export/linux/usr
</code>
</pre>
<hr></blockquote>
<p>Maintenant créez les sous-répertoires pour les
autres machines. Supposons pour l'instant que vos machines sans
disque s'appellent machine1, machine2, machine3, etc.; vous pouvez
alors utiliser le script bash qui suit pour configurer les autres
répertoires:</p>
<blockquote>
<hr>
<pre>
<code>
cd /export/linux
for x in machine2 machine3; do
mkdir $x; cd $x
(cd ../machine1; tar cf - *) | tar xvf -
done
</code>
</pre>
<hr></blockquote>
<p>Puis exportez les répertoires qui suivent:</p>
<ul>
<li>/export/linux/usr en lecture seule pour tout le monde.</li>
<li>/export/linux/machine1 uniquement sur machine1, en
lecture/écriture et avec les droits de root.</li>
<li>/export/linux/machine2 idem, sur machine2.</li>
<li>/export/linux/machine3 idem, sur machine3.</li>
</ul>
comme suit
<blockquote>le format de cet exemple est conforme à la
syntaxe des exportations de fichiers pour SunOS 4.1.3</blockquote>
:
<blockquote>
<hr>
<pre>
<code>
# Ce fichier est /etc/export
# pour des terminaux sous le système Linux distants
# Écrit par Buci
# N'écrivez cette ligne qu'une fois
/export/root/usr -access=linuxnet
# N'écrivez ces lignes qu'une fois pour chaque hôte
/export/root/machine1 rw=machine1,root=machine1
/export/root/machine2 rw=machine2,root=machine2
/export/root/machine3 rw=machine3,root=machine3
</code>
</pre>
<hr></blockquote>
N'oubliez pas de lancer exportfs -a.
<h2><a name="ss5.6">5.6 Configurer le serveur tftp</a></h2>
<p>C'est maintenant le moment de configurer le serveur tftp. Si
vous n'avez pas besoin de tftp sécurisé alors tout
est très simple puisque vos clients peuvent être
amorcés depuis le répertoire /export.</p>
<p>Si vous utilisez un tftp sécurisé vous pouvez soit
mettre en place une structure de répertoire /export/linux
complète sous /tftpboot (en n'utilisant qu'un seul
véritable noyau et des liens symboliques pour les autres
machines), ou laisser le répertoire /export jouer le
rôle du répertoire d'amorçage pour le tftpd
sécurisé. Ou encore, si vous disposez d'un
répertoire tftpboot séparé, de façon
similaire, vous n'aurez besoin que d'un seul noyau dans la
structure de répertoires d'origine, et de liens pour les
autres. Vous pouvez obtenir ce résultat en tapant ce qui
suit:</p>
<blockquote>
<hr>
<pre>
<code> mkdir -p /tftpboot/export/linux/machine1
cd /tftpboot/export/linux/machine1
cp /export/linux/machine1/<nom du noyau>.
</code>
</pre>
<hr></blockquote>
<p>Puis tapez ce qui suit:</p>
<blockquote>
<hr>
<pre>
<code> mkdir -p /tftpboot/export/linux/machine2
cd ../machine2
ln -s ../machine2/<nom du noyau>
</code>
</pre>
<hr></blockquote>
<h2><a name="ss5.7">5.7 Derniers réglages</a></h2>
<p>Enfin, il vous faut insérer</p>
<blockquote>
<hr>
<pre>
<code> /sbin/mount nfs_server:/export/linux/usr /usr
</code>
</pre>
<hr></blockquote>
<p>à la première ligne de</p>
<blockquote>
<hr>
<pre>
<code> /export/linux/<machinex>/etc/rc.d/rc.S
</code>
</pre>
<hr></blockquote>
où <machinex> signifie machine1, machine2, etc.
<h2><a name="s6">6. Mémoire et espace disque requis;
vitesse</a></h2>
<p>. Je n'ai testé ceci que pour la distribution Slackware
2.3; pour d'autres distributions ou versions les nombres qui
suivent peuvent varier:</p>
<ul>
<li>Espace disque: 28Mo + 6.5Mo/machine</li>
<li>RAM: J'utilise X avec 8Mo. Comme il ne faut que 8Mo de
système de pagination sur mémoire de masse, on peut
les mettre en place, je pense -- de façon
séparée pour chacune des machines -- dans /tmp.
N'oubliez pas de lancer mkswap.</li>
<li>Vitesse: Je n'ai pas eu de problèmes sur un 486 DX2/66
avec 8 Mégaoctets.</li>
</ul>
<h2><a name="s7">7. Erreurs possibles</a></h2>
<ul>
<li>J'ai découvert une erreur étrange: dans le
sous-répertoire /dev, SunOS a corrompu les entrées de
périphériques de telle sorte que j'ai dû
relancer MAKEDEV en montant le sous-répertoire sur un
système sous Linux avec disque. (La raison de cela provient
des différences entre le NFS de linux et le NFS de SunOS:
tous deux utilisent 32bits pour les numéros de
périphériques Mineur et Majeur, mais linux utilise
des champs de 16bits pour ces deux numéros, alors que SunOS
utilise un champ de 14bits pour le numéro de
périphérique Majeur, et un champ de 18bits pour le
numéro de périphérique Mineur.)</li>
<li>Quand on amorce un système sous Linux sans disque, la
table de routage au serveur tftp ne contient qu'un seul routage, et
vous devez configurer des tables de routage correctes. Vous avez
pour cela deux possibilités:
<ul>
<li>configurer le rc.S de chacune des machines à la
main</li>
<li>utiliser un paquetage de client bootp et rédiger un
script de configuration généralisé</li>
</ul>
</li>
</ul>
<h2><a name="s8">8. Erreurs et développements possibles de
ce document</a></h2>
<ul>
<li>Citer correctement les documents liés à tout
ceci.</li>
<li>SunOS est fondé sur BSD. Il faut inclure une
configuration de serveur fondée sur SVR4
(c'est-à-dire sur Solaris).</li>
<li>Même si Linux ressemble beaucoup à SunOS en tant
que serveur bootp/tftp, il peut être utile de fournir un
exemple de serveur fondé sur Linux.</li>
<li>Mettre à jour ce document pour le paquetage etherboot en
cours.</li>
<li>Montrer les différences entre le noyau version 1.2.13
corrigé pour la racine NFS et le dernier noyau 1.3.x, qui
contient la correction de racine par NFS.</li>
<li>Besoin d'essayer d'autres cartes ethernet que la wd8013</li>
<li>Inclure des renseignements de configuration pour bootpc, un
client bootp pour Linux qui sert à configurer des tables de
routage correctes.</li>
<li>Fautes de frappe et autres: notifiez-les, s'il vous
plaît, à <code>buci@math.klte.hu</code> ou à
<code>Sebastien.Blondeel@lifl.fr</code> pour la traduction
française. Merci.</li>
</ul>
</body>
</html>
|