This file is indexed.

/usr/share/doc/HOWTO/fr-html/Diskless.html is in doc-linux-fr-html 2013.01-3ubuntu1.

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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for HTML5 for Linux version 5.2.0">
<meta name="GENERATOR" content="LinuxDoc-Tools 0.9.72">
<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
&lt;bkis@cartan.math.klte.hu&gt; pour avoir traduit ce document en
anglais. Sébastien Blondeel, &lt;Sebastien.Blondeel@lifl.fr&gt; 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 &lt;numéro d'identification du processus de inetd&gt;.
</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/&lt;nom du noyau&gt;.
</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/&lt;nom du noyau&gt;
</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/&lt;machinex&gt;/etc/rc.d/rc.S
</code></pre>
<hr></blockquote>&lt;machinex&gt; 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>