This file is indexed.

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

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
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux (vers 25 March 2009), see www.w3.org">
<meta name="GENERATOR" content="LinuxDoc-Tools 0.9.71">
<title>NFS-Root client et serveur HowTo</title>
</head>
<body>
<h1>NFS-Root client et serveur HowTo</h1>
<h2>Hans de Goede &lt;hans@highrise.nl&gt;</h2>
v1.0 30 Mars 1999
<hr>
<em>Ce document d&eacute;crit l'installation et la configuration
d'un serveur pour que ses clients puissent d&eacute;marrer et
fonctionner sans disque (par montage NFS de root).</em>
<hr>
<h2><a name="s1">1. Introduction</a></h2>
<p>Ce Howto est &eacute;galement disponible &agrave; l'adresse -
<a href="http://x.mame.net/hans">http://x.mame.net/hans</a>. Il
d&eacute;crit un exemple de configuration o&ugrave; root est
mont&eacute; en NFS, mais il diff&egrave;re des autres NFS-root
HowTo sur deux points :</p>
<ol>
<li>Il propose &agrave; la fois l'aspect serveur et l'aspect
client, offrant une solution compl&egrave;te ; il ne d&eacute;crit
pas les principes de base du montage de root via NFS mais
plut&ocirc;t un exemple de configuration qui fonctionne.</li>
<li>La configuration d&eacute;crite est particuli&egrave;re dans la
mesure o&ugrave; c'est l'arborescence root du serveur qui est
partag&eacute;e avec les stations (workstations, ws), tandis
qu'habituellement, on a plut&ocirc;t un mini-root par station. Ceci
a quelques avantages :
<ul>
<li>occupe un faible espace disque</li>
<li>tous les changements sur le serveur sont automatiquement
disponibles c&ocirc;t&eacute; client (la configuration n'est faite
qu'une fois)</li>
<li>facilite l'ajout de nouveaux clients</li>
<li>un seul syst&egrave;me &agrave; maintenir.</li>
</ul>
</li>
</ol>
<p>Ce document est bas&eacute; sur un syst&egrave;me RedHat 5.2. On
suppose que le lecteur de ce HowTo a suffisamment
d'exp&eacute;rience en administration syst&egrave;me linux ;
l'adaptation de cette solution &agrave; une autre distribution ne
devrait donc pas poser de probl&egrave;me.</p>
<h2><a name="ss1.1">1.1 Copyright</a></h2>
<p>Ce HOWTO est &copy; Hans de Goede, 1999.</p>
<p>Sauf indication contraire, les droits d'auteur des HOWTO Linux
sont d&eacute;tenus par leurs auteurs respectifs. Les HOWTO Linux
peuvent &ecirc;tre reproduits et distribu&eacute;s, en
totalit&eacute; ou en partie, sur tout m&eacute;dia physique ou
&eacute;lectronique dans la mesure o&ugrave; ce copyright est
pr&eacute;serv&eacute; dans chaque copie. La distribution
commerciale en est autoris&eacute;e et encourag&eacute;e. L'auteur
appr&eacute;cierait toutefois qu'on lui notifie individuellement ce
genre de distribution.</p>
<p>Le pr&eacute;sent copyright doit couvrir toute traduction,
compilation et autre travail d&eacute;riv&eacute; des HOWTO Linux.
C'est-&agrave;-dire qu'il est interdit d'imposer des restrictions
de diffusion allant au del&agrave; du pr&eacute;sent copyright
&agrave; des ouvrages inspir&eacute;s, ou incorporant des passages,
de HOWTO Linux. Sous certaines conditions, des exceptions &agrave;
ces r&egrave;gles seront tol&eacute;r&eacute;es : contactez le
coordinateur des HOWTO &agrave; l'adresse donn&eacute;e
ci-dessous.</p>
<p>Pour r&eacute;sumer, nous souhaitons une diffusion aussi large
que possible de ces informations. N&eacute;anmoins, nous entendons
garder la propri&eacute;t&eacute; intellectuelle (copyright) des
HOWTO, et appr&eacute;cierions d'&ecirc;tre inform&eacute;s de leur
redistribution.</p>
<p>Pour toute question plus g&eacute;n&eacute;rale, merci de
contacter le coordinateur des HOWTO, Tim Bynum, &agrave; l'adresse
&eacute;lectronique <code><a href=
"mailto:tjbynum@wallybox.cei.net">tjbynum@wallybox.cei.net</a></code>.</p>
<h2><a name="ss1.2">1.2 Historique</a></h2>
<ul>
<li>v0.1, 20 Janvier 1999 : premier jet au HHS, l&agrave; o&ugrave;
la configuration a &eacute;t&eacute; d&eacute;velopp&eacute;e.</li>
<li>v1.0, 30 Mars 1999 : premi&egrave;re version diffus&eacute;e,
&eacute;crite partiellement durant ma p&eacute;riode de stage chez
ISM.</li>
</ul>
<h2><a name="s2">2. Principes de base</a></h2>
<p>Dans cette configuration les clients utilisent le syst&egrave;me
de fichiers racine du serveur. Ils y acc&egrave;dent bien s&ucirc;r
en lecture seule.</p>
<h2><a name="ss2.1">2.1 Les choses ne peuvent pas &ecirc;tre aussi
simples...</a></h2>
<p>Quelques probl&egrave;mes apparaissent rapidement.</p>
<h3>Chaque station a besoin de sa propre copie d'un certain nombre
de r&eacute;pertoires</h3>
<p>Une configuration linux doit avoir les acc&egrave;s en
&eacute;criture sur les r&eacute;pertoires suivants :</p>
<ol>
<li>/dev</li>
<li>/var</li>
<li>/tmp</li>
</ol>
<p>Il y a trois solutions, l'une d'elles ne fonctionnant que pour
/dev :</p>
<ol>
<li>utiliser (monter) un ramdisk et remplir celui-ci par extraction
d'une archive ou copie depuis un r&eacute;pertoire mod&egrave;le.
<ul>
<li>avantages :
<ol>
<li>nettoy&eacute; &agrave; chaque reboot (suppression des fichiers
tmp et log). Pas de maintenance.</li>
<li>ne prend pas de place sur le serveur et ne g&eacute;n&egrave;re
pas de trafic r&eacute;seau. Il est donc plus rapide et utilise
moins de ressources c&ocirc;t&eacute; serveur.</li>
</ol>
</li>
<li>inconv&eacute;nients :
<ol>
<li>occupe de la m&eacute;moire</li>
<li>les fichiers de log ne sont pas conserv&eacute;s. Il faut
configurer syslog pour rediriger les logs sur le serveur si on
tient vraiment &agrave; r&eacute;cup&eacute;rer les messages des
clients.</li>
</ol>
</li>
</ul>
</li>
<li>cr&eacute;er un r&eacute;pertoire pour chaque station sur le
serveur et le monter par NFS en lecture-&eacute;criture.
<ul>
<li>avantages &amp; inconv&eacute;nients :
<ol>
<li>les arguments ci-dessus sont &agrave; prendre &agrave; l'envers
dans le cas des r&eacute;pertoires situ&eacute;s sur le
serveur.</li>
</ol>
</li>
</ul>
</li>
<li>&agrave; partir du noyau 2.2, on peut utiliser le type devfs
pour /dev (un syst&egrave;me de fichiers virtuel &agrave; la
mani&egrave;re de /proc).
<ul>
<li>avantages:
<ol>
<li>devfs prend tr&egrave;s peu de m&eacute;moire compar&eacute;
&agrave; un ramdisk, et pas du tout d'espace disque sur le serveur.
En plus il est tr&egrave;s rapide. Un /dev normal occupe au moins
1,5 Mo dans la mesure o&ugrave; un fichier (un <em>device</em>)
fait au minimum 1 ko, et il y a environ 1200 fichiers. On peut bien
entendu utiliser un mod&egrave;le de /dev avec simplement les
entr&eacute;es n&eacute;cessaires pour &eacute;conomiser un peu de
place : 1,5 Mo, &ccedil;a fait beaucoup pour un ramdisk et
&ccedil;a ne fait pas tr&egrave;s propre sur un serveur.</li>
<li>devfs cr&eacute;e automatiquement des entr&eacute;es pour les
devices d&eacute;tect&eacute;s et ajout&eacute;s, donc pas besoin
de maintenance.</li>
</ol>
</li>
<li>inconv&eacute;nients :
<ol>
<li>tout changement sur /dev tel que cr&eacute;ation d'un lien pour
la souris ou le lecteur de cdrom est perdu. Devfs fournit cependant
un script nomm&eacute; rc.devfs pour sauvegarder ces changements.
Le script pr&eacute;sent dans ce HowTo va alors automatiquement
restaurer les liens symboliques nouvellement positionn&eacute;s en
appelant rc.devfs. Si on fait des changements sur /dev, il faut
donc appeler rc.devfs soi-m&ecirc;me de cette fa&ccedil;on :</li>
</ol>
<blockquote>/etc/rc.d/rc.devfs save /etc/sysconfig</blockquote>
</li>
</ul>
</li>
</ol>
<p>Comme on peut le voir, il y a plusieurs moyens de
r&eacute;soudre ce probl&egrave;me d'acc&egrave;s en
lecture-&eacute;criture. Voici les options choisies pour le reste
de ce Howto :</p>
<ul>
<li>pour /dev nous utiliserons devfs</li>
<li>pour /var et /tmp, nous utiliserons un ramdisk de 1 Mo.
Celui-ci sera partag&eacute; pour utiliser la m&eacute;moire de
mani&egrave;re efficace. Pour r&eacute;aliser ce partage, /tmp sera
en fait un lien symbolique sur /var/tmp.</li>
<li>pour remplir ce ramdisk, une archive conviendra tout aussi bien
qu'un r&eacute;pertoire mod&egrave;le. Mais comme les modifications
sont plus ais&eacute;es avec le r&eacute;pertoire mod&egrave;le,
c'est cette derni&egrave;re solution qui sera retenue.</li>
</ul>
<h3>Un acc&egrave;s en &eacute;criture sur /home semble
n&eacute;cessaire...</h3>
<p>Mais ce n'est pas vraiment un probl&egrave;me puisque dans toute
configuration unix de type client/serveur, /home est mont&eacute;
en lecture-&eacute;criture depuis le serveur, donc &ccedil;a nous
conviendra ;)</p>
<h3>Comment une station r&eacute;cup&egrave;re son adresse IP de
mani&egrave;re &agrave; pouvoir communiquer avec le serveur ?</h3>
<p>Heureusement pour nous ce probleme a d&eacute;j&agrave;
&eacute;t&eacute; r&eacute;solu et le noyau a deux
possibilit&eacute;s pour la configuration automatique de l'adresse
IP :</p>
<ol>
<li>RARP</li>
<li>Bootp</li>
</ol>
<p>RARP est le plus facile &agrave; configurer, bootp est le plus
flexible. Mais la plupart des bootroms supportent uniquement bootp,
donc nous utiliserons bootp.</p>
<h3>Et la configuration sp&eacute;cifique &agrave; chaque station
?</h3>
<p>Sur RedHat, la plupart des fichiers de configuration
syst&egrave;me sont d&eacute;j&agrave; situ&eacute;s sous
/etc/sysconfig. Nous d&eacute;placerons donc simplement ceux qui ne
le sont pas encore et ajouterons des liens symboliques. Ensuite
nous monterons un r&eacute;pertoire /etc/sysconfig par station.
C'est la seule partie qui est propre &agrave; la distribution
utilis&eacute;e ici. Avec une autre distribution, il suffira de
cr&eacute;er un r&eacute;pertoire sysconfig, d&eacute;placer tous
les fichiers de configuration qui ne peuvent &ecirc;tre
partag&eacute;s, et ajouter les liens n&eacute;cessaires. De
m&ecirc;me, /etc/rc.d/rc3.d (ou l'&eacute;quivalent dans les autres
distribs) peut pr&eacute;senter des diff&eacute;rences entre le
serveur et les stations. Si on consid&egrave;re que toutes les
stations lancent les m&ecirc;mes services, on cr&eacute;era
simplement un rc3.d pour les stations et un pour le serveur :</p>
<ol>
<li>cr&eacute;er un /etc/rc.d/rc3.ws et un
/etc/rc.d/rc3.server</li>
<li>faire un lien de /etc/rc.d/rc3.d vers /etc/sysconfig/rc3.d</li>
<li>faire un lien de /etc/sysconfig/rc3.d vers
/etc/rc.d/rc3.xxx</li>
<li>remplacer S99local dans rc3.ws par un lien vers
/etc/sysconfig/rc.local pour que chaque station ait son propre
rc.local</li>
</ol>
<h3>Divers probl&egrave;mes</h3>
<ol>
<li>/etc/rc.d/rc.sysinit a besoin de /var, donc /var doit
&ecirc;tre mont&eacute; ou cr&eacute;&eacute; avant que rc.sysinit
ne soit ex&eacute;cut&eacute;. Il serait &eacute;galement
int&eacute;ressant que /etc/sysconfig (propre &agrave; chaque
station) soit mont&eacute; avant le lancement des scripts
d'initialisation.
<ul>
<li>pour cela nous appellerons un script d&egrave;s le d&eacute;but
de /etc/rc.d/rc.sysinit, aussi bien sur le serveur que sur les
stations ; ce script devra donc d&eacute;tecter sur quelle machine
il tourne pour ne rien faire dans le cas du serveur.</li>
</ul>
</li>
<li>/etc/mtab doit &ecirc;tre accessible en &eacute;criture :
<ul>
<li>il suffit de cr&eacute;er un lien vers /proc/mounts et un
fichier vide mounts dans /proc pour que fsck et mount ne se
plaignent pas pendant l'initialisation (alors que /proc n'est pas
encore mont&eacute;). Il est &agrave; noter que smb(u)mount ne
respecte pas le lien mtab et va l'&eacute;craser. Donc si on
utilise smb(u)mount, il faut &eacute;crire un wrapper qui va
restorer le lien.</li>
</ul>
</li>
</ol>
<h2><a name="s3">3. Pr&eacute;paration du serveur</a></h2>
<h2><a name="ss3.1">3.1 Compiler un noyau</a></h2>
<p>Il faut pr&eacute;voir le n&eacute;cessaire pour supporter root
sur nfs. Voici les &eacute;tapes :</p>
<ol>
<li>Comme nous utilisons une RedHat 5.2 avec le noyau 2.2, il faut
s'assurer que notre distribution est pr&ecirc;te pour ce noyau.
RedHat fournit un excellent HowTo &agrave; ce sujet.</li>
<li>J'utilise le m&ecirc;me noyau pour le serveur et les stations
pour &eacute;viter les conflits vu qu'ils partagent le m&ecirc;me
r&eacute;pertoire /lib/modules. Si ce n'est pas possible dans votre
situation, produisez diff&eacute;rentes versions en &eacute;ditant
le num&eacute;ro de version au d&eacute;but du Makefile. Ces
num&eacute;ros diff&eacute;rents devraient &eacute;viter les
confilts.</li>
<li>En plus des options habituelles, le noyau devrait supporter :
<ul>
<li>ext2 compil&eacute; dans le noyau (pour le serveur, ou bien
pour les deux)</li>
<li>NFS et root-over-NFS compil&eacute; (pour le client ou pour les
deux) ; pour avoir l'option root-over-NFS, il faut activer
ip-autoconfig dans les options r&eacute;seau. Nous utiliserons
bootp comme m&eacute;thode de configuration.</li>
<li>networkcard compil&eacute; (pour le client ou les deux)</li>
<li>devfs compil&eacute; (requis pour le client, &eacute;galement
int&eacute;ressant pour le serveur)</li>
<li>tout ce que vous utilisez normalement, les modules pour tous
les p&eacute;riph&eacute;riques pr&eacute;sents sur le serveur et
les stations.</li>
</ul>
</li>
<li>Il faut &eacute;diter ensuite les sources du noyau pour changer
le montage root-over-NFS par d&eacute;faut :
/tftpboot/&lt;ip&gt;/root au lieu de /tftpboot/&lt;ip&gt;, de
fa&ccedil;on &agrave; avoir une arborescence propre sous /tftpboot
avec un r&eacute;pertoire par station contenant son
r&eacute;pertoire racine (un lien vers la racine du serveur en
fait) et ses r&eacute;pertoires sp&eacute;cifiques.
<ul>
<li>En 2.0, c'est une ligne de DEFINE dans "include/linux/nfs_fs.h"
appel&eacute;e "NFS_ROOT"</li>
<li>En 2.2, c'est un DEFINE dans "fs/nfs/nfsroot.c"</li>
</ul>
</li>
<li>Il reste &agrave; compiler le noyau comme d'habitude (cf
Kernel-HowTo).</li>
<li>Si vous n'avez pas encore de noeud /dev/nfsroot,
cr&eacute;ez-le :
<blockquote>mknod /dev/nfsroot b 0 255</blockquote>
</li>
<li>Apr&egrave;s avoir compil&eacute; le noyau, changez la racine
en tapant :
<blockquote>rdev &lt;path-to-zImage&gt;/zImage
/dev/nfsroot</blockquote>
</li>
<li>Avant de booter avec devfs, vous devez modifier conf.modules :
ajoutez le contenu du fichier conf.modules de la documentation de
devfs au conf.modules du syst&egrave;me.</li>
<li>Ce nouveau noyau est compil&eacute; avec la configuration
automatique de l'adresse IP, mais cela va &eacute;chouer lors du
boot du serveur puisque c'est lui-m&ecirc;me qui donne les adresses
IP. Pour &eacute;viter une trop longue attente, ajouter :
append="ip=off" &agrave; la section linux de /etc/lilo.conf.</li>
<li>relancez lilo et bootez sur le nouveau noyau.</li>
<li>avec devfs, sur le serveur, vous allez perdre tous les liens
qui existaient. Sur RedHat, c'est le plus souvent /dev/mouse et
/dev/cdrom. Recr&eacute;ez-les. Remettez &eacute;galement vos
propri&eacute;t&eacute;s personnalis&eacute;es si vous avez
l'habitude d'avoir des particularit&eacute;s sur certaines
entr&eacute;es de /dev. Ensuite enregistrez ce param&eacute;trage
de /dev (sous /etc/sysconfig puisque c'est d&eacute;pendant du type
de machine) ainsi :
<ul>
<li>Copiez le fichier rc.devfs de la documentation devfs des
sources du noyau vers /etc/rc.d/rc.devfs et rendez-le
ex&eacute;cutable</li>
<li>Sauvegardez les param&eacute;trages :
<blockquote>/etc/rc.d/rc.devfs save /etc/sysconfig</blockquote>
</li>
</ul>
</li>
</ol>
<h2><a name="ss3.2">3.2 Cr&eacute;ation et remplissage de
/tftpboot, cr&eacute;ation des liens vers /tmp etc.</a></h2>
<h3>La partie automagique</h3>
<p>Tout cela est pris en charge par le script ci-dessous. Si on
veut le faire manuellement, il suffit de suivre le script pas a
pas.</p>
<p>Ce script effectue des actions un peu os&eacute;es telles que
supprimer /tmp, arr&ecirc;ter temporairement syslog,
d&eacute;monter /proc. Donc assurez-vous d'abord que personne
n'utilise la machine pendant ce temps, et que X ne tourne pas. Il
n'est pas n&eacute;cessaire de changer de niveau
d'ex&eacute;cution, si vous &ecirc;tes s&ucirc;r d'&ecirc;tre le
seul connect&eacute; et sur une console en mode texte.</p>
<p>D&eacute;ni : ce script a &eacute;t&eacute; test&eacute; mais
s'il provoque un plantage du serveur, vous &ecirc;tes seul
responsable. Je ne prends aucune responsabilit&eacute; quoi qu'il
arrive. Je r&eacute;p&egrave;te que ce HowTo est fait pour des
administrateurs exp&eacute;riment&eacute;s. De plus ce script est
fait pour &ecirc;tre lanc&eacute; une fois et une seule. Le lancer
une seconde fois endommagera /etc/fstab, /etc/X11/XF86Config,
/etc/X11/X et /etc/conf.modules.</p>
<p>Ceci dit, copiez-collez ce script et rendez le
ex&eacute;cutable, puis ex&eacute;cutez-le.</p>
<hr>
<pre>
#!/bin/sh

SERVER_NAME=`hostname -s`

###
echo creating /etc/rc.d/rc.ws
#this basicly just echos the entire script ;)
echo "#root on nfs stuff

SERVER=$SERVER_NAME

# on a besoin de proc pour mtab, route, etc.
mount -t proc /proc /proc

IP=\`ifconfig eth0|grep inet|cut --field 2 -d ':'|cut --field 1 -d ' '\`

# si le premier montage echoue, c'est qu'on est probablement
# sur le serveur, ou bien que quelque chose ne va pas.
# donc on ne fait la suite que si le premier montage est reussi
mount \$SERVER:/tftpboot/\$IP/sysconfig /etc/sysconfig -o nolock &amp;&amp;
{
   # autres montages
   mount \$SERVER:/home /home -o nolock
   mount \$SERVER:/ /\$SERVER -o ro,nolock

   # creation de /var
   echo Creating /var ...
   mke2fs -q -i 1024 /dev/ram1 1024
   mount /dev/ram1 /var -o defaults,rw
   cp -a /tftpboot/var /

   # configuration reseau
   . /etc/sysconfig/network
   HOSTNAME=\`cat /etc/hosts|grep \$IP|cut --field 2\`
   route add default gw \$GATEWAY
   ifup lo
}

# restauration des p&eacute;riph&eacute;riques install&eacute;s
/etc/rc.d/rc.devfs restore /etc/sysconfig

umount /proc" &gt; /etc/rc.d/rc.ws

###
echo splitting runlevel 3 for the client and server
mv /etc/rc.d/rc3.d /etc/rc.d/rc3.server
cp -a /etc/rc.d/rc3.server /etc/rc.d/rc3.ws
rm /etc/rc.d/rc3.ws/*network
rm /etc/rc.d/rc3.ws/*nfs
rm /etc/rc.d/rc3.ws/*nfsfs
rm /etc/rc.d/rc3.ws/S99local
ln -s /etc/sysconfig/rc.local /etc/rc.d/rc3.ws/S99local
ln -s /etc/rc.d/rc3.server /etc/sysconfig/rc3.d
ln -s /etc/sysconfig/rc3.d /etc/rc.d/rc3.d

###
echo making tmp a link to /var/tmp
rm -fR /tmp
ln -s var/tmp /tmp

###
echo moving various files around and create symlinks for them
echo mtab
/etc/rc.d/init.d/syslog stop
umount /proc
touch /proc/mounts
mount /proc
/etc/rc.d/init.d/syslog start
rm /etc/mtab
ln -s /proc/mounts /etc/mtab
echo fstab
mv /etc/fstab /etc/sysconfig
ln -s sysconfig/fstab /etc/fstab
echo X-config files
mkdir /etc/sysconfig/X11
mv /etc/X11/X /etc/sysconfig/X11
ln -s ../sysconfig/X11/X /etc/X11/X
mv /etc/X11/XF86Config /etc/sysconfig/X11
ln -s ../sysconfig/X11/XF86Config /etc/X11/XF86Config
echo conf.modules
mv /etc/conf.modules /etc/sysconfig
ln -s sysconfig/conf.modules /etc/conf.modules
echo isapnp.conf
mv /etc/isapnp.conf /etc/sysconfig
ln -s sysconfig/isapnp.conf /etc/isapnp.conf

###
echo creating a template dir for the ws directories
echo /tftpboot/template
mkdir /home/tftpboot
ln -s home/tftpboot /tftpboot
mkdir /tftpboot/template
mkdir /$SERVER_NAME
echo root
ln -s / /tftpboot/template/root
echo sysconfig
cp -a /etc/sysconfig /tftpboot/template/sysconfig
rm -fR /tftpboot/template/sysconfig/network-scripts
ln -s /$SERVER_NAME/etc/sysconfig/network-scripts \
 /tftpboot/template/sysconfig/network-scripts
echo NETWORKING=yes &gt; /tftpboot/template/sysconfig/network
echo `grep "GATEWAY=" /etc/sysconfig/network` &gt;&gt; /tftpboot/template/sysconfig/network
echo "/dev/nfsroot / nfs defaults 1 1" &gt; /tftpboot/template/sysconfig/fstab
echo "none /proc proc defaults 0 0" &gt;&gt; /tftpboot/template/sysconfig/fstab
echo "#!/bin/sh" &gt; /tftpboot/template/sysconfig/rc.local
chmod 755 /tftpboot/template/sysconfig/rc.local
rm /tftpboot/template/sysconfig/rc3.d
ln -s /etc/rc.d/rc3.ws /tftpboot/template/sysconfig/rc3.d
rm /tftpboot/template/sysconfig/isapnp.conf
echo var
cp -a /var /tftpboot/var
rm -fR /tftpboot/var/lib
ln -s /$SERVER_NAME/var/lib /tftpboot/var/lib
rm -fR /tftpboot/var/catman
ln -s /$SERVER_NAME/var/catman /tftpboot/var/catman
rm -fR /tftpboot/var/log/httpd
rm -f /tftpboot/var/log/samba/*
for i in `find /tftpboot/var/log -type f`; do cat /dev/null &gt; $i; done
rm `find /tftpboot/var/lock -type f`
rm `find /tftpboot/var/run -type f`
echo /sbin/fsck.nfs
echo "#!/bin/sh
exit 0" &gt; /sbin/fsck.nfs
chmod 755 /sbin/fsck.nfs

echo all done
 
</pre>
<hr>
<h3>Ajustements manuels</h3>
<ol>
<li>Le script de configuration des stations doit &ecirc;tre
ex&eacute;cut&eacute; au tout d&eacute;but de rc.sysinit, donc il
faut ajouter les lignes suivantes apr&egrave;s avoir d&eacute;fini
le PATH :
<hr>
<pre>
# pour les stations montant root par NFS
/etc/rc.d/rc.ws
  
</pre>
<hr></li>
<li>R&eacute;duisez /etc/rc.d/rc3.ws &agrave; un minimum. Il peut
&ecirc;tre utile de cr&eacute;er un rc.local.ws, &agrave; vous de
voir. R&eacute;seau et nfs sont d&eacute;ja configur&eacute;s.
Voici d'ailleurs la liste de ce qui a d&eacute;j&agrave;
&eacute;t&eacute; enlev&eacute;/mis &agrave; jour par le script :
<ul>
<li>r&eacute;seau</li>
<li>syst&egrave;me de fichiers NFS</li>
<li>NFS</li>
<li>rc.local</li>
</ul>
</li>
</ol>
<h2><a name="ss3.3">3.3 Export des syst&egrave;mes de fichiers
appropri&eacute;s et configuration de bootp</a></h2>
<h3>Export des syst&egrave;mes de fichiers</h3>
<p>Par exemple ici &agrave; l'Universit&eacute;, j'ajouterai ceci
&agrave; /etc/exports :</p>
<hr>
<pre>
/ *.st.hhs.nl(ro,no_root_squash)
/home *.st.hhs.nl(rw,no_root_squash)
 
</pre>
<hr>
<p>Remplacez les noms de domaine par les v&ocirc;tres et relancez
NFS :</p>
<blockquote>/etc/rc.d/init.d/nfs restart</blockquote>
<p>Pour les utilisateurs de knfsd : il n'est pas possible d'avoir
plusieurs exports d'une partition avec des permissions
diff&eacute;rentes. De m&ecirc;me, knfsd ne permet pas de changer
de partition (par exemple si un client monte /, et /usr est sur une
autre partition, le client n'aura pas acc&egrave;s &agrave; /usr).
Ainsi, si vous utilisez knfsd, il faudra qu'au moins /home soit sur
une partition diff&eacute;rente ; le script de pr&eacute;paration
du serveur a mis /tftpboot sous /home : il ne n&eacute;cessite pas
une partition suppl&eacute;mentaire. Si vous voulez acc&eacute;der
&agrave; d'autres partitions depuis vos clients, exportez les
s&eacute;par&eacute;ment et ajoutez les lignes de montage
correspondantes dans /etc/rc.d/rc.ws.</p>
<h3>Configurer bootp</h3>
<ol>
<li>Si bootp n'est pas encore install&eacute;, c'est le moment de
le faire. Il est inclus dans la RedHat.</li>
<li>Editez /etc/inetd.conf et supprimez le commentaire sur la ligne
commen&ccedil;ant par bootp ; si vous utilisez une bootprom,
enlevez &eacute;galement le commentaire pour tftp.</li>
<li>Red&eacute;marrez inetd :
<blockquote>/etc/rc.d/init.d/inetd restart</blockquote>
</li>
</ol>
<h2><a name="s4">4. Ajouter des stations</a></h2>
<h2><a name="ss4.1">4.1 Cr&eacute;er une disquette de
d&eacute;marrage (bootdisk) ou une bootprom</a></h2>
<h3>Cr&eacute;er un bootdisk</h3>
<p>M&ecirc;me si vous avez l'intention d'utiliser une bootprom, il
est plus sage de tester d'abord avec un bootdisk. Pour le
cr&eacute;er :</p>
<blockquote>dd if=/&lt;path-to-zImage&gt;/zImage
of=/dev/fd0</blockquote>
<h3>Cr&eacute;er une bootprom</h3>
<p>Il y a plusieurs paquets libres disponibles :</p>
<ol>
<li>netboot, c'est le plus complet. Il utilise les pilotes (packet
drivers) DOS standards donc presque toutes les cartes sont
support&eacute;es. Un truc tr&egrave;s utile qui &eacute;tait
pass&eacute; sur la mailing list : compresser les packetdrivers, la
plupart des pilotes commerciaux &eacute;tant trop gros pour tenir
dans une bootprom. La documentation de netboot est assez
compl&egrave;te : on ne la reprendra pas ici. Avec elle,
cr&eacute;er une bootprom et d&eacute;marrer une station devrait
aller de soi. La page web de netboot : <a href=
"http://www.han.de/~gero/netboot/">http://www.han.de/~gero/netboot/</a></li>
<li>etherboot, l'autre package libre Il propose quelques
am&eacute;liorations comme le dhcp. Mais il utilise son propre
format de drivers donc supporte moins de cartes. Je ne l'ai pas
utilis&eacute; donc ne peux en dire plus. La page web : <a href=
"http://www.slug.org.au/etherboot/">http://www.slug.org.au/etherboot/</a></li>
</ol>
<p>A propos des roms : la plupart des cartes peuvent recevoir des
eproms de 28 pins. Celle-ci ont une taille maximale de 64 ko. Pour
la plupart des cartes, on aura besoin de 32 ko avec netboot.
Quelques drivers tiendront dans une rom de 16 ko mais la
diff&eacute;rence de prix est minime. Ces eproms sont standards (on
y &eacute;crit avec un <em>eprom burner</em> ordinaire).</p>
<h2><a name="ss4.2">4.2 Cr&eacute;er un r&eacute;pertoire
station</a></h2>
<p>Il suffit de recopier le r&eacute;pertoire qui sert de
mod&egrave;le (template) en tapant :</p>
<blockquote>cd /tftpboot ; cp -a template &lt;ip&gt;</blockquote>
<p>On peut aussi, bien s&ucirc;r, recopier le r&eacute;pertoire
d'une station ayant la m&ecirc;me souris, carte graphique et
moniteur. Dans ce cas la configuration r&eacute;alis&eacute;e
&agrave; l'&eacute;tape 4.5 est inutile.</p>
<h2><a name="ss4.3">4.3 Ajouter les entr&eacute;es dans
/etc/bootptab et /etc/hosts</a></h2>
<p>Editer /etc/bootptab et ajouter une entr&eacute;e pour une
station de test, par exemple :</p>
<hr>
<pre>
nfsroot1:hd=/tftpboot:vm=auto:ip=10.0.0.237:\ 
:ht=ethernet:ha=00201889EE78:\
:bf=bootImage:rp=/tftpboot/10.0.0.237/root
 
</pre>
<hr>
<p>Remplacer nfsroot1 par le nom d'h&ocirc;te de la station.
Remplacer 10.0.0.237 par son adresse IP et 00201889EE78 par son
adresse MAC. Si vous ne connaissez pas cette derni&egrave;re,
d&eacute;marrez avec la disquette de boot que vous venez de
cr&eacute;er et vous la verrez appara&icirc;tre dans les messages
affich&eacute;s au boot. Bootpd est certainement d&eacute;j&agrave;
lanc&eacute;, mais pour en &ecirc;tre s&ucirc;r, essayons de le
red&eacute;marrer :</p>
<blockquote>killall -HUP bootpd</blockquote>
<p>Si cela &eacute;choue, c'est qu'il ne tournait pas. Dans ce cas
inetd le d&eacute;marrera au moment voulu.</p>
<h2><a name="ss4.4">4.4 D&eacute;marrer la station pour la
premi&egrave;re fois</a></h2>
<p>D&eacute;marrez simplement la station depuis le bootdisk. Vous
devriez avoir ainsi une station en mode texte, avec exactement la
m&ecirc;me configuration que le serveur except&eacute;s l'adresse
IP et les services lanc&eacute;s. M&ecirc;me si vous comptez
utiliser une bootprom, il est plus sage de tester d'abord avec un
bootdisk.</p>
<h2><a name="ss4.5">4.5 Configuration sp&eacute;cifique &agrave; la
station</a></h2>
<ol>
<li>Premi&egrave;rement, lancez mouseconfig pour installer la
souris. Pour appliquer les changements, faites un :
<blockquote>/etc/rc.d/init.d restart</blockquote>
</li>
<li>Lancez Xconfigurator ; quand Xconfigurator a
d&eacute;tect&eacute; la carte et que vous pouvez cliquer sur ok,
ne le faites pas ! Comme nous avons d&eacute;plac&eacute; le lien
du serveur X de /etc/X11/X vers /etc/sysconfig/X11/X, Xconfigurator
ne pourra pas cr&eacute;er le bon lien. Ceci &eacute;tant, pour
&ecirc;tre s&ucirc;r que Xconfigurator continue correctement,
basculez sur une autre console et cr&eacute;ez le lien sous
/etc/sysconfig/X11 vers le serveur X conseill&eacute;. Maintenant,
quittez Xconfigurator et testez le serveur X.</li>
<li>Configuration de tout ce qui diff&egrave;re du serveur ou du
template :
<ul>
<li>son : il sera peut-&ecirc;tre n&eacute;cessaire de modifier
isapnp.conf et conf.modules, les deux &eacute;tant
d&eacute;j&agrave; des liens vers /etc/sysconfig (modification
faite par le script de pr&eacute;pration du serveur).</li>
<li>cdrom : lien sous /dev, entr&eacute;e dans /etc/fstab,
etc.</li>
<li>rc.local : faites tous les changements n&eacute;cessaires</li>
</ul>
</li>
<li>Sauvegarde des liens et autres changements effectu&eacute;s
sous /dev :
<blockquote>/etc/rc.d/rc.devfs save /etc/sysconfig</blockquote>
</li>
<li>Voil&agrave;, c'est termin&eacute;.</li>
</ol>
<h2><a name="s5">5. Bonus : d&eacute;marrer depuis un
cdrom</a></h2>
<p>La plupart des op&eacute;rations ci-dessus sont valables pour
d&eacute;marrer depuis un cdrom. Comme je voulais &eacute;galement
documenter cette fa&ccedil;on de booter, je le pr&eacute;cise ici
pour &eacute;viter de taper trop de choses une seconde fois.</p>
<p>Pourquoi d&eacute;marrer depuis un cdrom ? C'est surtout
int&eacute;ressant partout o&ugrave; l'on veut faire tourner une
application sp&eacute;cifique comme un kiosque, une base de
donn&eacute;es de biblioth&egrave;que ou un cyber-caf&eacute;, et
qu'on n'a pas de r&eacute;seau ou de serveur pour utiliser root par
NFS.</p>
<h2><a name="ss5.1">5.1 Principe de base</a></h2>
<p>C'est simple : d&eacute;marrer avec un cdrom en tant que racine.
Pour que ce soit possible, nous utiliserons l'extension rockridge
pour graver un syst&egrave;me de fichiers unix et l'extension
eltorito pour rendre le cd amor&ccedil;able.</p>
<h3>Les choses ne peuvent &ecirc;tre si simples...</h3>
<p>Bien s&ucirc;r cette configuration soul&egrave;ve quelques
probl&egrave;mes. Ils sont &agrave; peu pr&egrave;s les m&ecirc;mes
que pr&eacute;c&eacute;demment :</p>
<ol>
<li>Nous avons besoin d'acc&egrave;s en &eacute;criture sur : /dev,
/var et /tmp.
<ul>
<li>Nous utiliserons les m&ecirc;mes solutions :
<ul>
<li>pour /dev nous utiliserons Devfs</li>
<li>pour /var et /tmp nous utiliserons un ramdisk partag&eacute; de
1 Mo. /tmp est remplac&eacute; par un lien vers /var/tmp.</li>
<li>le remplissage du ramdisk peut &ecirc;tre fait aussi bien
&agrave; partir d'une archive que d'un r&eacute;pertoire template.
Nous retiendrons l&agrave; encore le r&eacute;pertoire template
pour la simplicit&eacute; des modifications.</li>
</ul>
</li>
</ul>
</li>
<li>Certaines applications ont besoin d'un acc&egrave;s &agrave;
/home en &eacute;criture.
<ul>
<li>Dans ce cas, on mettra le r&eacute;pertoire de l'utilisateur de
ces applications sous /var, et on finira de remplir /var &agrave;
chaque boot.</li>
</ul>
</li>
<li>/etc/mtab doit &ecirc;tre accessible en &eacute;criture :
<ul>
<li>Cr&eacute;er un lien vers /proc/mounts et cr&eacute;er un
fichier vide sous /proc, comme d&eacute;crit
pr&eacute;c&eacute;demment.</li>
</ul>
</li>
</ol>
<h2><a name="ss5.2">5.2 Cr&eacute;er une configuration de
test</a></h2>
<ol>
<li>Pour commencer, prenez une des machines que vous allez utiliser
et mettez dedans un gros disque et un graveur de cd.</li>
<li>Installez la distribution de votre choix et laissez une
partition de 650 Mo pour le test. Cette installation servira
&agrave; cr&eacute;er l'image iso et &agrave; graver le cd, aussi
il faut installer les outils necessaires. Elle servira
&eacute;galement &agrave; recommencer en cas de
probl&egrave;me.</li>
<li>Sur la partition de 650 Mo, installez la distribution de votre
choix avec la configuration que vous voudrez avoir sur le cd. Ce
sera la configuration de test.</li>
<li>D&eacute;marrez sur la configuration de test.</li>
<li>Compilez le noyau comme d&eacute;crit dans la section 3.1, en
suivant toutes les &eacute;tapes. Les modifications pour devfs
doivent &ecirc;tre faites ici aussi. A l'&eacute;tape 3, ajoutez ce
qui suit :
<ul>
<li>isofs compil&eacute; dans le noyau</li>
<li>devfs compil&eacute;</li>
<li>support du cdrom compil&eacute;</li>
<li>tout ce dont vous avez besoin, compil&eacute; ou en module</li>
</ul>
</li>
<li>Configuration de la partition de test :
<ul>
<li>cr&eacute;er l'utilisateur qui lancera les applications</li>
<li>mettre son r&eacute;pertoire sous /var</li>
<li>installer l'application (si n&eacute;cessaire)</li>
<li>configurer l'application si n&eacute;cessaire</li>
<li>configurer l'utilisateur de telle fa&ccedil;on que
l'application d&eacute;marre automatiquement apr&egrave;s le
login</li>
<li>configurer linux pour d&eacute;marrer une session en tant que
cet utilisateur</li>
<li>configurer tout ce qui doit encore &ecirc;tre
configur&eacute;</li>
</ul>
</li>
<li>V&eacute;rifiez que la configuration d&eacute;marre
correctement sous l'application et que tout fonctionne bien.</li>
<li>Red&eacute;marrez sur l'installation principale et montez la
partition de 650 Mo sur /test.</li>
<li>Mettez ce qui suit dans un fichier /test/etc/rc.d/rc.iso (il
sera ex&eacute;cut&eacute; au d&eacute;but de rc.sysinit pour
cr&eacute;er /var) :
<hr>
<pre>
#/var
echo Creating /var ...
mke2fs -q -i 1024 /dev/ram1 1024
mount /dev/ram1 /var -o defaults,rw
cp -a /lib/var /

#restore devfs settings, needs proc
mount -t proc /proc /proc
/etc/rc.d/rc.devfs restore /etc/sysconfig
umount /proc
  
</pre>
<hr></li>
<li>Editez /test/etc/rc.sysinit en commentant les lignes o&ugrave;
/ est remont&eacute; en lecture-&eacute;criture et ajoutez les 2
lignes suivantes apr&egrave;s l'initialisation de la variable PATH
:
<hr>
<pre>
#to boot from cdrom
. /etc/rc.d/rc.iso
  
</pre>
<hr></li>
<li>Copiez ce qui suit dans un script et ex&eacute;cutez-le : cela
va cr&eacute;er un r&eacute;pertoire mod&egrave;le pour /var et des
liens pour /tmp et /etc/mtab.
<hr>
<pre>
#!/bin/sh
echo tmp
rm -fR /test/tmp
ln -s var/tmp /test/tmp

###
echo mtab
touch /test/proc/mounts
rm /test/etc/mtab
ln -s /proc/mounts /test/etc/mtab

###
echo var
mv /test/var/lib /test/lib/var-lib
mv /test/var /test/lib
mkdir /test/var
ln -s /lib/var-lib /test/lib/var/lib
rm -fR /test/lib/var/catman
rm -fR /test/lib/var/log/httpd
rm -f /test/lib/var/log/samba/*
for i in `find /test/lib/var/log -type f`; do cat /dev/null &gt; $i; done
rm `find /test/lib/var/lock -type f`
rm `find /test/lib/var/run -type f`

  
</pre>
<hr></li>
<li>Enlevez la cr&eacute;ation de /etc/issue* de /test/etc/rc.local
(&ccedil;a planterait &agrave; coup s&ucirc;r).</li>
<li>Maintenant, d&eacute;marrez sur la partition de test : elle
sera en lecture seule comme un cdrom. Si quelque chose ne
fonctionne pas, red&eacute;marrez sur la partition de travail et
r&eacute;parez puis r&eacute;essayez. On peut aussi remonter / en
lecture-&eacute;criture, r&eacute;parer puis red&eacute;marrer
directement sur la partition de test. Pour remonter / :
<blockquote>mount -o remount,rw /</blockquote>
</li>
</ol>
<h2><a name="ss5.3">5.3 Cr&eacute;er le cd</a></h2>
<h3>Cr&eacute;er une image de d&eacute;marrage (image de boot)</h3>
<p>D'abord, d&eacute;marrer sur la partition de travail. Pour
cr&eacute;er un cd amor&ccedil;able, nous aurons besoin d'une image
d'une disquette de d&eacute;marrage. Mais copier par dd une
<em>zimage</em> ne suffit pas parce que, au tout d&eacute;but du
chargement de celle-ci, un pseudo lecteur de disquette est
cr&eacute;&eacute; et le chargeur du syst&egrave;me ne s'y retrouve
plus dans le cas d'un cd amor&ccedil;able. Donc nous utiliserons
plut&ocirc;t syslinux.</p>
<ol>
<li>r&eacute;cup&eacute;rer boot.img sur un cdrom redhat</li>
<li>monter boot.img quelque part par loopback en tapant :
<blockquote>mount boot.img somewhere -o loop -t vfat</blockquote>
</li>
<li>enlever tout ce qui est dans boot.img sauf :
<ul>
<li>ldlinux.sys</li>
<li>syslinux.cfg</li>
</ul>
</li>
<li>copier le noyau de la partition de test vers boot.img</li>
<li>editer syslinux.cfg pour ajouter ce qui suit, en
rempla&ccedil;ant zImage par le nom d'image appropri&eacute; :
<hr>
<pre>
default linux 

label linux
kernel zImage
append root=/dev/&lt;insert your cdrom device here&gt;
  
</pre>
<hr></li>
<li>d&eacute;monter boot.img :
<blockquote>umount somewhere</blockquote>
</li>
<li>Si /etc/mtab est un lien vers /proc/mounts, le d&eacute;montage
ne va pas automatiquement lib&eacute;rer /dev/loop0 donc il faut le
lib&eacute;rer en tapant :
<blockquote>losetup -d /dev/loop0</blockquote>
</li>
</ol>
<h3>Cr&eacute;er l'image iso</h3>
<p>Maintenant que nous avons l'image de boot et une installation
qui peut d&eacute;marrer sur un montage en lecture seule, il est
temps de cr&eacute;er une image iso du cd :</p>
<ol>
<li>copier boot.img sur /test</li>
<li>aller dans le r&eacute;pertoire ou vous voulez stocker l'image
(en prenant garde qu'il y ait assez de place sur la partition)</li>
<li>g&eacute;n&eacute;rer l'image :
<blockquote>mkisofs -R -b boot.img -c boot.catalog -o boot.iso
/test</blockquote>
</li>
</ol>
<h3>V&eacute;rifier l'image iso</h3>
<ol>
<li>monter l'image en loopback en tapant :
<blockquote>mount boot.iso somewhere -o loop -t
iso9660</blockquote>
</li>
<li>v&eacute;rifier que le contenu est correct</li>
<li>d&eacute;monter boot.iso :
<blockquote>umount somewhere</blockquote>
</li>
<li>si /etc/mtab est un lien sur /proc/mounts, lib&eacute;rer
/dev/loop0 :
<blockquote>losetup -d /dev/loop0</blockquote>
</li>
</ol>
<h3>Graver le cd</h3>
<p>Si cdrecord est install&eacute; et configur&eacute; :</p>
<blockquote>cdrecord -v speed=&lt;desired writing speed&gt;
dev=&lt;path to your writers generic scsi device&gt;
boot.iso</blockquote>
<h2><a name="ss5.4">5.4 D&eacute;marrer sur le cd et le
tester</a></h2>
<p>H&eacute; bien le titre de ce paragraphe a tout dit ! ;)</p>
<h2><a name="s6">6. Remerciements</a></h2>
<ul>
<li>La HHS (Haagse Hoge School), l'&eacute;tablissement o&ugrave;
j'ai d&eacute;velopp&eacute; et test&eacute; cette configuration :
elle &eacute;tait utilis&eacute;e dans plusieurs labos. C'est
&eacute;galement l&agrave; que j'ai &eacute;cris la premi&egrave;re
version de ce HowTo.</li>
<li>ISM : une soci&eacute;t&eacute; n&eacute;erlandaise o&ugrave;
j'ai r&eacute;alis&eacute; mon projet de fin d'&eacute;tudes. Une
partie de ce projet concernait des machines sans disque, j'ai donc
d&ucirc; pousser un peu plus loin le d&eacute;veloppement de cette
configuration et j'ai eu le temps de mettre &agrave; jour ce
HowTo.</li>
<li>A tout ceux qui me donneront des conseils utiles une fois que
cette version sera sortie ;)</li>
</ul>
<h2><a name="s7">7. Commentaires</a></h2>
<p>Commentaires, suggestions et autres sont les bienvenus et
peuvent &ecirc;tre adress&eacute;s &agrave; Hans de Goede :
j.w.r.degoede@et.tudelft.nl</p>
</body>
</html>