Add a new translated section (Diskless).

This commit is contained in:
Marc Fonvieille 2004-07-20 15:35:56 +00:00
parent 1ca7da2715
commit 2b78389563
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=21596

View file

@ -2212,8 +2212,949 @@ Exports list on foobar:
</sect1>
<sect1 id="network-diskless">
<title>Diskless Operation ** Traduction en Cours **</title>
<para></para>
<sect1info>
<authorgroup>
<author>
<firstname>Jean-Fran&ccedil;ois</firstname>
<surname>Dock&egrave;s</surname>
<contrib>Mis &agrave; jour par </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>Alex</firstname>
<surname>Dupre</surname>
<contrib>R&eacute;organis&eacute; et augment&eacute;
par </contrib>
</author>
</authorgroup>
</sect1info>
<title>Syst&egrave;me sans disque dur</title>
<indexterm><primary>station de travail sans disque
dur</primary></indexterm>
<indexterm><primary>syst&egrave;me sans disque
dur</primary></indexterm>
<para>Une machine &os; peut d&eacute;marrer via le r&eacute;seau
et fonctionner sans disque dur local, en utilisant des
syst&egrave;mes de fichiers mont&eacute;s &agrave; partir d'un
serveur <acronym>NFS</acronym>. Aucune modification du
syst&egrave;me n'est n&eacute;cessaire en dehors des fichiers de
configuration standards. Un tel syst&egrave;me est facile
&agrave; mettre en oeuvre comme tous les &eacute;l&eacute;ments
sont directement disponibles:</para>
<itemizedlist>
<listitem>
<para>Il y a au moins deux m&eacute;todes possibles pour
charger un noyau via le r&eacute;seau:</para>
<itemizedlist>
<listitem>
<para><acronym>PXE</acronym>: l'environnement
d'ex&eacute;cution pr&eacute;alable au d&eacute;marrage
d'&intel; (Preboot eXecution Environment) est une sorte de
ROM intelligente pr&eacute;sente sur certaines cartes
r&eacute;seau ou cartes m&egrave;re. Consultez la page de
manuel &man.pxeboot.8; pour plus de d&eacute;tails.</para>
</listitem>
<listitem>
<para>Le logiciel port&eacute;
<application>Etherboot</application> (<filename
role="package">net/etherboot</filename>) produit un code
stockable dans une ROM pour d&eacute;marrer des noyaux via
le r&eacute;seau. Le code peut &ecirc;tre soit
implant&eacute; dans une PROM de d&eacute;marrage sur une
carte r&eacute;seau, soit charg&eacute; &agrave; partir
d'une disquette (ou d'un disque dur local), ou &agrave;
partir d'un syst&egrave;me &ms-dos; en fonctionnement. De
nombreuses cartes r&eacute;seau sont
support&eacute;es.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>Une proc&eacute;dure d'exemple
(<filename>/usr/share/examples/diskless/clone_root</filename>)
facilite la cr&eacute;ation et la maintenance du
syst&egrave;me de fichiers racine de la station de travail sur
le serveur. La proc&eacute;dure demandera s&ucirc;rement
quelques modifications mais vous permettra de d&eacute;marrer
rapidement.</para>
</listitem>
<listitem>
<para>Des fichiers de d&eacute;marrage du syst&egrave;me
existent dans le r&eacute;pertoire <filename
role="directory">/etc</filename> pour d&eacute;tecter et
supporter le d&eacute;marrage d'un syst&egrave;me sans disque
dur.</para>
</listitem>
<listitem>
<para>La pagination, si n&eacute;cessaire, peut &ecirc;tre
faite par l'interm&eacute;diaire d'un fichier
<acronym>NFS</acronym> ou sur un disque local.</para>
</listitem>
</itemizedlist>
<para>Il existe plusieurs fa&ccedil;ons de configurer des stations
de travail sans disque dur. Plusieurs &eacute;l&eacute;ments
entrent en oeuvre, et la plupart peuvent &ecirc;tre
ajust&eacute;s en fonction des besoins locaux. Ce qui suit
d&eacute;crit des variations sur la configuration d'un
syst&egrave;me complet, mettant en avant le simplicit&eacute; et
la compatibilit&eacute; avec les proc&eacute;dures standards de
d&eacute;marrage de &os;. Le syst&egrave;me d&eacute;crit
pr&eacute;sente les caract&eacute;ristiques suivantes:</para>
<itemizedlist>
<listitem>
<para>Les stations de travail sans disque dur utilisent des
syst&egrave;mes de fichiers <filename>/</filename> et
<filename>/usr</filename> partag&eacute;s et en lecture
seule.</para>
<para>Le syst&egrave;me de fichiers racine est une copie d'une
racine &os; standard (g&eacute;n&eacute;ralement celle du
serveur), avec certains fichiers de configuration
remplac&eacute;s par des versions sp&eacute;cifiques
&agrave; un fonctionnement sans disque dur, et parfois
&agrave; la station de travail auxquels ils
appartiennent.</para>
<para>Les parties de la racine qui doivent &ecirc;tre
inscriptibles sont remplac&eacute;es par des syst&egrave;mes
de fichiers &man.mfs.8; (&os;&nbsp;4.X) ou &man.md.4;
(&os;&nbsp;5.X). Toute modification sera perdue au
red&eacute;marrage du syst&egrave;me.</para>
</listitem>
<listitem>
<para>Le noyau est transf&eacute;r&eacute; et charg&eacute;
soit &agrave; l'aide d'<application>Etherboot</application>
soit de <acronym>PXE</acronym> comme certaines situations
peuvent exiger l'utilisation de l'une ou l'autre
m&eacute;thode.</para>
</listitem>
</itemizedlist>
<caution>
<para>Ainsi d&eacute;crit, le syst&egrave;me n'est pas
s&eacute;curis&eacute;. Il devrait se trouver dans une partie
prot&eacute;g&eacute;e du r&eacute;seau, et les autres machines
ne devraient pas lui faire confiance aveugl&eacute;ment.</para>
</caution>
<para>Toutes les instructions de cette section ont
&eacute;t&eacute; test&eacute;es sous &os;&nbsp;4.9-RELEASE et
5.2.1-RELEASE. Le texte est destin&eacute; &agrave; l'origine
pour une utilisation sous 4.X. Des notes on &eacute;t&eacute;
ins&eacute;r&eacute;es aux endroits n&eacute;cessaires pour
indiquer les modifications concernant la branche 5.X.</para>
<sect2>
<title>Information de fond</title>
<para>Mettre en place des stations de travail sans disque dur
est &agrave; la fois relativement simple et enclin aux
erreurs. Ces derni&egrave;res sont parfois difficiles
&agrave; diagnostiquer pour de nombreuses raisons. Par
exemple:</para>
<itemizedlist>
<listitem>
<para>Des options de compilation peuvent donner lieu
&agrave; des comportements diff&eacute;rents &agrave;
l'ex&eacute;cution.</para>
</listitem>
<listitem>
<para>Les messages d'erreurs sont souvent cach&eacute;s ou
totalement absents.</para>
</listitem>
</itemizedlist>
<para>Dans ce contexte, avoir quelques connaissances des
m&eacute;canismes sousjacents impliqu&eacute;s est tr&egrave;s
utile pour r&eacute;soudre les probl&egrave;mes qui peuvent
surgir.</para>
<para>Plusieurs op&eacute;rations doivent &ecirc;tre
effectut&eacute;es pour un amor&ccedil;age
r&eacute;ussi:</para>
<itemizedlist>
<listitem>
<para>La machine doit obtenir des param&egrave;tres de base
comme son adresse IP, le nom du fichier ex&eacute;cutable,
le nom du serveur, l'emplacement de la racine. Ceci est
fait en utilisant le protocole <acronym>DHCP</acronym> ou le
protocole BOOTP. <acronym>DHCP</acronym> est une extension
compatible de BOOTP, et utilise les m&ecirc;mes
num&eacute;ros de ports et son format de paquets
basic.</para>
<para>Il est possible de configurer un syst&egrave;me pour
n'utiliser que BOOTP. Le programme serveur &man.bootpd.8;
fait partie du syst&egrave;me de base de &os;.</para>
<para>Cependant, <acronym>DHCP</acronym> pr&eacute;sente
plusieurs avantage sur BOOTP (des fichiers de
configuration plus lisibles, la possibilit&eacute;
d'utiliser <acronym>PXE</acronym>, plus de nombreux autres
avantages n'ayant pas de relation directe avec les
syst&egrave;mes sans disque dur), et nous d&eacute;crirons
principalement une configuration <acronym>DHCP</acronym>,
avec des exemples &eacute;quivalent utilisant
&man.bootpd.8; quand cela est possible. L'exemple de
configuration utilisera le logiciel <application>ISC
DHCP</application> (la version 3.0.1.r12 &eacute;tait
install&eacute;e sur le serveur de test).</para>
</listitem>
<listitem>
<para>La machine a besoin de transf&eacute;rer un ou
plusieurs programmes en m&eacute;moire locale.
<acronym>TFTP</acronym> ou <acronym>NFS</acronym> sont
utilis&eacute;s. Le choix entre <acronym>TFTP</acronym> et
<acronym>NFS</acronym> est &agrave; de nombreux endroits une
option s&eacute;lectionn&eacute;e lors de la compilation.
Une source d'erreur courante est d'indiquer des noms de
fichiers pour le mauvais protocole: <acronym>TFTP</acronym>
transf&egrave;re g&eacute;n&eacute;ralement tous les
fichiers &agrave; partir d'un seul r&eacute;pertoire sur le
serveur, et attendra des noms de fichiers relatifs &agrave;
ce r&eacute;pertoire. <acronym>NFS</acronym> a besoin de
chemins d'acc&egrave;s absolus.</para>
</listitem>
<listitem>
<para>Les &eacute;ventuels programmes d'amorce
interm&eacute;diaires et le noyau doivent &ecirc;tre
initialis&eacute;s et ex&eacute;cut&eacute;s. Il existe
plusieurs variations &agrave; ce niveau:</para>
<itemizedlist>
<listitem>
<para><acronym>PXE</acronym> chargera &man.pxeboot.8;,
qui est une version modifi&eacute;e du chargeur. Le
chargeur (&man.loader.8;) r&eacute;cup&eacute;rera la
plupart des param&egrave;tres n&eacute;cessaires au
d&eacute;marrage du syst&egrave;me, et les transmettra
au noyau avant de lui abandonner le contr&ocirc;le du
syst&egrave;me. Dans ce cas il est possible d'utiliser
un noyau <filename>GENERIC</filename>.</para>
</listitem>
<listitem>
<para><application>Etherboot</application>, chargera
directement le noyau avec moins de pr&eacute;paration.
Vous devrez compiler un noyau avec des options
particuli&egrave;res.</para>
</listitem>
</itemizedlist>
<para><acronym>PXE</acronym> et
<application>Etherboot</application> fonctionnent aussi
bien l'un que l'autre avec des syst&egrave;mes 4.X. Comme
le noyau des syst&egrave;mes 5.X laisse au chargeur
(&man.loader.8;) un peu plus de travail &agrave;
effectuer, <acronym>PXE</acronym> est
pr&eacute;f&eacute;r&eacute; pour les syst&egrave;mes
5.X.</para>
<para>Si votre <acronym>BIOS</acronym> et vos cartes
r&eacute;seau supportent <acronym>PXE</acronym>, vous
devriez probablement l'utiliser. Cependant, il est
toujours possible de d&eacute;marrer un syst&egrave;me 5.X
&agrave; l'aide
d'<application>Etherboot</application>.</para>
</listitem>
<listitem>
<para>Et enfin, la machine a besoin d'acc&eacute;der
&agrave; ses syst&egrave;mes de fichiers.
<acronym>NFS</acronym> est utilis&eacute; dans tous les
cas.</para>
</listitem>
</itemizedlist>
<para>Consultez &eacute;galement la page de manuel
&man.diskless.8;.</para>
</sect2>
<sect2>
<title>Configuration</title>
<sect3>
<title>Configuration utilisant <application>ISC
DHCP</application></title>
<indexterm>
<primary>DHCP</primary>
<secondary>syst&egrave;me sans disque dur</secondary>
</indexterm>
<para>Le serveur <application>ISC DHCP</application>
peut r&eacute;pondre aux requ&ecirc;tes BOOTP et
<acronym>DHCP</acronym>.</para>
<para>Avec la version 4.9, <application>ISC DHCP
3.0</application> ne fait pas partie du syst&egrave;me de
base. Vous devrez installer le logiciel port&eacute;
<filename role="package">net/isc-dhcp3-server</filename> ou
la version pr&eacute;-compil&eacute;e correspondante.
Veuillez vous r&eacute;f&eacute;rer au <xref
linkend="ports"> pour des informations sur les logiciels
port&eacute;s et les logiciels
pr&eacute;-compil&eacute;s.</para>
<para>Une fois <application>ISC DHCP</application>
install&eacute;, il n&eacute;cessite un fichier de
configuration pour fonctionner (normalement appel&eacute;
<filename>/usr/local/etc/dhcpd.conf</filename>). Voici un
exemple comment&eacute;, o&ugrave; la machine
<hostid>margaux</hostid> utilise
<application>Etherboot</application> et o&ugrave; la machine
<hostid>corbieres</hostid> emploie
<acronym>PXE</acronym>:</para>
<programlisting>
default-lease-time 600;
max-lease-time 7200;
authoritative;
option domain-name "example.com";
option domain-name-servers 192.168.4.1;
option routers 192.168.4.1;
subnet 192.168.4.0 netmask 255.255.255.0 {
use-host-decl-names on; <co id="co-dhcp-host-name">
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.4.255;
host margaux {
hardware ethernet 01:23:45:67:89:ab;
fixed-address margaux.example.com;
next-server 192.168.4.4; <co id="co-dhcp-next-server">
filename "/data/misc/kernel.diskless"; <co id="co-dhcp-filename">
option root-path "192.168.4.4:/data/misc/diskless"; <co id="co-dhcp-root-path">
}
host corbieres {
hardware ethernet 00:02:b3:27:62:df;
fixed-address corbieres.example.com;
next-server 192.168.4.4;
filename "pxeboot";
option root-path "192.168.4.4:/data/misc/diskless";
}
}
</programlisting>
<calloutlist>
<callout arearefs="co-dhcp-host-name"><para>Cette option dit
&agrave; <application>dhcpd</application> d'envoyer le
param&egrave;tre des d&eacute;clarations
<literal>host</literal> comme nom de machine pour la
machine sans disque dur. Une autre m&eacute;thode
aurait &eacute;t&eacute; d'ajouter <literal>option
host-name <replaceable>margaux</replaceable></literal>
&agrave; l'int&eacute;rieur des d&eacute;clarations
<literal>host</literal>.</para>
</callout>
<callout arearefs="co-dhcp-next-server"><para>La directive
<literal>next-server</literal> d&eacute;signe le serveur
<acronym>TFTP</acronym> ou <acronym>NFS</acronym>
&agrave; utiliser pour t&eacute;l&eacute;charger le
chargeur ou le noyau (le comportement par d&eacute;faut
&eacute;tant d'utiliser la m&ecirc;me machine que le
serveur <acronym>DHCP</acronym>).</para>
</callout>
<callout arearefs="co-dhcp-filename"><para>La directive
<literal>filename</literal> pr&eacute;cise le fichier
que chargera <application>Etherboot</application> ou
<acronym>PXE</acronym> &agrave; la prochaine
&eacute;tape. Il doit &ecirc;tre d&eacute;fini en
fonction de la m&eacute;thode de transfert
utilis&eacute;e. <application>Etherboot</application>
peut &ecirc;tre compil&eacute; pour utiliser
<acronym>NFS</acronym> ou <acronym>TFTP</acronym>. Le
logiciel port&eacute; pour &os; utilisera
<acronym>NFS</acronym> par d&eacute;faut.
<acronym>PXE</acronym> emploie <acronym>TFTP</acronym>,
c'est pourquoi un chemin d'acc&egrave;s relatif est
utilis&eacute; ici (cela peut d&eacute;pendre de la
configuration du serveur <acronym>TFTP</acronym>, mais
devrait &ecirc;tre plut&ocirc;t classique). De plus,
<acronym>PXE</acronym> charge
<filename>pxeboot</filename>, et non pas le noyau. Il
existe d'autres possibilit&eacute;s
int&eacute;ressantes, comme le chargement de
<filename>pxeboot</filename> &agrave; partir du
r&eacute;pertoire <filename
role="directory">/boot</filename> d'un CD-ROM &os;
(comme &man.pxeboot.8; peut charger un noyau
<filename>GENERIC</filename> cela rend possible
l'utilisation de <acronym>PXE</acronym> pour
d&eacute;marrer &agrave; partir d'un lecteur de CD-ROM
distant).</para>
</callout>
<callout arearefs="co-dhcp-root-path"><para>L'option
<literal>root-path</literal> d&eacute;finie le chemin
d'acc&egrave;s au syst&egrave;me de fichiers racine,
suivant la notation classique de <acronym>NFS</acronym>.
En utilisant <acronym>PXE</acronym>, il est possible de
ne pas pr&eacute;ciser l'adresse IP de la machine
d&egrave;s lors que vous n'activez pas l'option BOOTP du
noyau. Le serveur <acronym>NFS</acronym> sera alors le
m&ecirc;me que le serveur
<acronym>TFTP</acronym>.</para>
</callout>
</calloutlist>
</sect3>
<sect3>
<title>Configuration utilisant BOOTP</title>
<indexterm>
<primary>BOOTP</primary>
<secondary>syst&egrave;me sans disque dur</secondary>
</indexterm>
<para>Ce qui suit pr&eacute;sente une configuration
<application>bootpd</application> &eacute;quivalente
(r&eacute;duite &agrave; un seul client). Elle se
trouverait sous <filename>/etc/bootptab</filename>.</para>
<para>Veuillez noter qu'<application>Etherboot</application>
doit &ecirc;tre compil&eacute; avec l'option
<literal>NO_DHCP_SUPPORT</literal> (qui n'est pas
activ&eacute;e par d&eacute;faut) afin d'utiliser BOOTP et
que <acronym>PXE</acronym>
<emphasis>n&eacute;cessite</emphasis>
<acronym>DHCP</acronym>. The seul avantage &eacute;vident
de <application>bootpd</application> est qu'il est
disponible dans le syst&egrave;me de base.</para>
<programlisting>
.def100:\
:hn:ht=1:sa=192.168.4.4:vm=rfc1048:\
:sm=255.255.255.0:\
:ds=192.168.4.1:\
:gw=192.168.4.1:\
:hd="/tftpboot":\
:bf="/kernel.diskless":\
:rp="192.168.4.4:/data/misc/diskless":
margaux:ha=0123456789ab:tc=.def100
</programlisting>
</sect3>
<sect3>
<title>Pr&eacute;paration d'un programme de d&eacute;marrage
avec <application>Etherboot</application></title>
<indexterm>
<primary>Etherboot</primary>
</indexterm>
<para>Le <ulink url="http://etherboot.sourceforge.net">site
Web d'Etherboot</ulink> propose une <ulink
url="http://etherboot.sourceforge.net/doc/html/userman/t1.html">
documentation importante</ulink> principalement
destin&eacute;e aux syst&egrave;mes Linux, mais contenant
n&eacute;amoins des informations utiles. Ce qui suit
pr&eacute;sente comment vous utiliseriez
<application>Etherboot</application> sur un syst&egrave;me
&os;.</para>
<para>Vous devez tout d'abord installer le logiciel
port&eacute; <filename
role="package">net/etherboot</filename> ou sa version
pr&eacute;-compil&eacute;e.</para>
<para>Vous pouvez modifier la configuration
d'<application>Etherboot</application> (i.e. pour utiliser
<acronym>TFTP</acronym> au lieu de <acronym>NFS</acronym>)
en &eacute;ditant le fichier <filename>Config</filename>
dans le r&eacute;pertoire des sources
d'<application>Etherboot</application>.</para>
<para>Pour notre configuration nous utiliserons une disquette
de d&eacute;marrage. Pour d'autres m&eacute;thodes (PROM,
ou un programme &ms-dos;), consultez la documentation
d'<application>Etherboot</application>.</para>
<para>Pour cr&eacute;er une disquette de d&eacute;marrage,
ins&eacute;rez une disquette dans le lecteur de la machine
o&ugrave; vous avez install&eacute;
<application>Etherboot</application>, puis rendez-vous dans
le r&eacute;pertoire <filename
role="directory">src</filename> de l'arborescence
<application>Etherboot</application> et tapez:</para>
<screen>
&prompt.root; <userinput>gmake bin32/<replaceable>devicetype</replaceable>.fd0</userinput></screen>
<para><replaceable>devicetype</replaceable> d&eacute;pend du
type de carte Ethernet se trouvant dans la station de
travail sans disque dur. R&eacute;f&eacute;rez-vous au
fichier <filename>NIC</filename> dans le m&ecirc;me
r&eacute;pertoire pour d&eacute;terminer la valeur
<replaceable>devicetype</replaceable> correcte.</para>
</sect3>
<sect3>
<title>D&eacute;marrer avec <acronym>PXE</acronym></title>
<para>Par d&eacute;faut le chargeur &man.pxeboot.8; charge le
noyau via <acronym>NFS</acronym>. Il peut &ecirc;tre
compil&eacute; pour utiliser <acronym>TFTP</acronym>
&agrave; la place en sp&eacute;cifiant l'option
<literal>LOADER_TFTP_SUPPORT</literal> dans le fichier
<filename>/etc/make.conf</filename>. Lisez les commentaires
dans le fichier <filename>/etc/defaults/make.conf</filename>
(ou <filename>/usr/share/examples/etc/make.conf</filename>
pour les syst&egrave;mes 5.X) pour plus de
d&eacute;tails.</para>
<para>Il existe deux autres options de
<filename>make.conf</filename> non-document&eacute;es qui
peuvent &ecirc;tre utiles pour la configuration d'une
machine faisant fonction de console s&eacute;rie sans disque
dur: <literal>BOOT_PXELDR_PROBE_KEYBOARD</literal>, et
<literal>BOOT_PXELDR_ALWAYS_SERIAL</literal> (cette
derni&egrave;re n'existe que sous &os;&nbsp;5.X).</para>
<para>Pour utiliser <acronym>PXE</acronym> quand la machine
d&eacute;marre, vous aurez normalement besoin de
s&eacute;lectionner l'option <literal>Boot from
network</literal> dans votre <acronym>BIOS</acronym>, ou
d'appuyer sur une touche de fonction lors de
l'initialisation du PC.</para>
</sect3>
<sect3>
<title>Configuration des serveurs <acronym>TFTP</acronym> et
<acronym>NFS</acronym></title>
<indexterm>
<primary>TFTP</primary>
<secondary>syst&egrave;me sans disque dur</secondary>
</indexterm>
<indexterm>
<primary>NFS</primary>
<secondary>syst&egrave;me sans disque dur</secondary>
</indexterm>
<para>Si vous utilisez <acronym>PXE</acronym> ou
<application>Etherboot</application> configur&eacute;s pour
employer <acronym>TFTP</acronym>, vous devez activer
<application>tftpd</application> sur le serveur de
fichier:</para>
<procedure>
<step>
<para>Cr&eacute;ez un r&eacute;pertoire &agrave; partir
duquel <application>tftpd</application> proposera les
fichiers, e.g. <filename
role="directory">/tftpboot</filename>.</para>
</step>
<step>
<para>Ajoutez la ligne suivante &agrave; votre fichier
<filename>/etc/inetd.conf</filename>:</para>
<programlisting>tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpboot</programlisting>
<note>
<para>Il appara&icirc;t que certaines versions de
<acronym>PXE</acronym> veulent la version
<acronym>TCP</acronym> de <acronym>TFTP</acronym>.
Dans ce cas, ajoutez une seconde ligne, en
rempla&ccedil;ant <literal>dgram udp</literal> par
<literal>stream tcp</literal>.</para>
</note>
</step>
<step>
<para>Demandez &agrave; <application>inetd</application>
de relire son fichier de configuration:</para>
<screen>&prompt.root; <userinput>kill -HUP `cat /var/run/inetd.pid`</userinput></screen>
</step>
</procedure>
<para>Le r&eacute;pertoire <filename
role="directory">tftpboot</filename> peut &ecirc;tre
plac&eacute; n'importe o&ugrave; sur le serveur.
Assurez-vous que son emplacement est d&eacute;fini dans les
fichiers <filename>inetd.conf</filename> et
<filename>dhcpd.conf</filename>.</para>
<para>Dans tous les cas, vous devez &eacute;galement activer
<acronym>NFS</acronym> et exporter le syst&egrave;me de
fichiers appropri&eacute; sur le serveur
<acronym>NFS</acronym>.</para>
<procedure>
<step>
<para>Ajoutez ce qui suit au fichier
<filename>/etc/rc.conf</filename>:</para>
<programlisting>nfs_server_enable="YES"</programlisting>
</step>
<step>
<para>Exportez le syst&egrave;me de fichiers contenant le
r&eacute;pertoire racine du syst&egrave;me sans disque dur
en ajoutant ce qui suit au fichier
<filename>/etc/exports</filename> (ajustez le point de
montage et remplacez <replaceable>margaux
corbieres</replaceable> avec les noms des stations de
travail sans disque dur):</para>
<programlisting><replaceable>/data/misc</replaceable> -alldirs -ro <replaceable>margaux corbieres</replaceable></programlisting>
</step>
<step>
<para>Demandez &agrave; <application>mountd</application>
de relire son fichier de configuration. Si vous avez eu
besoin d'activer <acronym>NFS</acronym> dans
<filename>/etc/rc.conf</filename> lors du premier point,
vous voudrez probablement plutot red&eacute;marrer la
machine.</para>
<screen>&prompt.root; <userinput>kill -HUP `cat /var/run/mountd.pid`</userinput></screen>
</step>
</procedure>
</sect3>
<sect3>
<title>Compilation d'un noyau pour syst&egrave;me sans disque
dur</title>
<indexterm>
<primary>syst&egrave;me sans disque dur</primary>
<secondary>configuration du noyau</secondary>
</indexterm>
<para>Si vous utilisez <application>Etherboot</application>,
vous devez cr&eacute;er un fichier de configuration du noyau
pour le client sans disque dur avec les options suivantes
(en plus des options habituelles):</para>
<programlisting>
options BOOTP # Use BOOTP to obtain IP address/hostname
options BOOTP_NFSROOT # NFS mount root filesystem using BOOTP info
</programlisting>
<para>Vous pouvez vouloir &eacute;galement employer les
options <literal>BOOTP_NFSV3</literal>,
<literal>BOOT_COMPAT</literal> et
<literal>BOOTP_WIRED_TO</literal> (r&eacute;ferez-vous au
fichier <filename>LINT</filename> sous 4.X ou
<filename>NOTES</filename> sous 5.X).</para>
<para>Les noms de ces options sont historiques et
l&eacute;g&egrave;rement trompeur comme elles activent
indiff&eacute;rement l'utilisation de
<acronym>DHCP</acronym> et BOOTP dans le noyau (il est
&eacute;galement possible de forcer une utilisation stricte
de BOOTP ou <acronym>DHCP</acronym>).</para>
<para>Compilez le noyau (voir <xref linkend="kernelconfig">),
et copiez-le &agrave; l'emplacement indiqu&eacute; dans
<filename>dhcpd.conf</filename>.</para>
<note>
<para>Quand on utilise <acronym>PXE</acronym>, la
compilation d'un noyau avec les options
pr&eacute;c&eacute;dentes n'est pas strictement
n&eacute;cessaire (bien que conseill&eacute;). Les activer
causera un plus grand nombre de requ&ecirc;tes
<acronym>DHCP</acronym> g&eacute;n&eacute;r&eacute;es lors
du d&eacute;marrage du noyau, avec un petit risque
d'inconsistence entre les nouvelles valeurs et celles
r&eacute;cup&eacute;r&eacute;es par &man.pxeboot.8; dans
certains cas particuliers. L'avantage de leur utilisation
est que le nom de la machine sera forc&eacute;ment
d&eacute;fini. Sinon vous devrez d&eacute;finir le nom de
la machine par une autre m&eacute;thode, par exemple dans un
fichier <filename>rc.conf</filename> particulier au
client.</para>
</note>
<note>
<para>Afin d'&ecirc;tre chargeable par
<application>Etherboot</application>, un noyau 5.X doit
&ecirc;tre compil&eacute; avec les &ldquo;device
hints&rdquo;. Vous d&eacute;finirez normalement l'option
suivante dans le fichier de configuration (voir le fichier
de commentaires sur la configuration:
<filename>NOTES</filename>):</para>
<programlisting>hints "GENERIC.hints"</programlisting>
</note>
</sect3>
<sect3>
<title>Pr&eacute;parer le syst&egrave;me de fichiers
racine</title>
<indexterm>
<primary>syst&egrave;me de fichiers racine</primary>
<secondary>syst&egrave;me sans disque dur</secondary>
</indexterm>
<para>Vous devez cr&eacute;er un syst&egrave;me de fichiers
racine pour les stations de travail sans disque dur,
&agrave; l'emplacement d&eacute;fini par
<literal>root-path</literal> dans le fichier
<filename>dhcpd.conf</filename>. Les sections suivantes
d&eacute;crivent deux mani&egrave;res de le faire.</para>
<sect4>
<title>Utilisation de la proc&eacute;dure
<filename>clone_root</filename></title>
<para>C'est la m&eacute;thode la plus rapide pour
cr&eacute;er un syst&egrave;me de fichiers racine, mais
elle est, pour le moment, uniquement support&eacute;e sous
&os;&nbsp;4.X.. Cette proc&eacute;dure est situ&eacute;e
&agrave; l'emplacement
<filename>/usr/share/examples/diskless/clone_root</filename>
et demande quelques modifications, pour au moins ajuster
l'emplacement du syst&egrave;me de fichiers &agrave;
cr&eacute;er (la variable <literal>DEST</literal>).</para>
<para>R&eacute;f&eacute;rez-vous aux commentaires
situ&eacute;s en d&eacute;but de la proc&eacute;dure pour
information. Ils expliquent comment le syst&egrave;me de
fichiers de base est construit, et comment les fichiers
peuvent &ecirc;tre remplac&eacute;s de fa&ccedil;on
s&eacute;lective par des versions sp&eacute;cifiques
&agrave; un fonctionnement sans disque dur, ou &agrave; un
sous-r&eacute;seau, ou encore &agrave; une station de
travail particuli&egrave;re. Ils donnent &eacute;galement
des exemples de fichiers <filename>/etc/fstab</filename>
et <filename>/etc/rc.conf</filename> pour un
fonctionnement sans disque dur.</para>
<para>Les fichiers <filename>README</filename> dans le
r&eacute;pertoire <filename
role="directory">/usr/share/examples/diskless</filename>
contiennent beaucoup d'information de fond, mais, avec les
autres exemples du r&eacute;pertoire <filename
role="directory">diskless</filename>, ils documentent une
m&eacute;thode de configuration qui est distincte de celle
utilis&eacute;e par <filename>clone_root</filename> et les
proc&eacute;dures de d&eacute;marrage du syst&egrave;me de
<filename role="directory">/etc</filename>, ce qui est un
peu &agrave; l'origine de confusions. Utilisez-les comme
r&eacute;f&eacute;rence uniquement, &agrave; moins que
vous pr&eacute;f&eacute;riez la m&eacute;thode qu'ils
d&eacute;crivent, dans quel cas vous devrez modifier les
proc&eacute;dures <filename>rc</filename>.</para>
</sect4>
<sect4>
<title>Utilisation de la proc&eacute;dure <command>make
world</command> standard</title>
<para>Cette m&eacute;thode s'applique aussi bien &agrave;
&os;&nbsp;4.X qu'&agrave; &os;&nbsp;5.X et installera un
syst&egrave;me complet (et non pas uniquement le
syst&egrave;me de fichiers racine) dans le
r&eacute;pertoire d&eacute;fini par
<envar>DESTDIR</envar>. Tout ce dont vous avez besoin de
faire est d'ex&eacute;cuter la proc&eacute;dure
suivante:</para>
<programlisting>#!/bin/sh
export DESTDIR=/data/misc/diskless
mkdir -p ${DESTDIR}
cd /usr/src; make world && make kernel
cd /usr/src/etc; make distribution</programlisting>
<para>Une fois cela termin&eacute;, vous devrez personaliser
vos fichiers <filename>/etc/rc.conf</filename> et
<filename>/etc/fstab</filename> situ&eacute;s dans
<envar>DESTDIR</envar> en fonction de vos besoins.</para>
</sect4>
</sect3>
<sect3>
<title>Configuration de l'espace de pagination</title>
<para>Si n&eacute;cessaire, un fichier de pagination
situ&eacute; sur le serveur peut &ecirc;tre utilis&eacute;
via <acronym>NFS</acronym>. Une des m&eacute;thodes
couramment utilis&eacute;es pour cela n'est plus
support&eacute;e sous 5.X.</para>
<sect4>
<title>Pagination via <acronym>NFS</acronym> sous
&os;&nbsp;4.X</title>
<para>L'emplacement et la taille du fichier de pagination
peuvent &ecirc;tre sp&eacute;cifi&eacute;s avec les
options BOOTP/<acronym>DHCP</acronym> 128 et 129
sp&eacute;cifiques &agrave; &os;. Des exemples de
fichiers de configuration pour <application>ISC DHCP
3.0</application> ou <application>bootpd</application>
suivent:</para>
<procedure>
<step>
<para>Ajoutez les lignes suivantes au fichier
<filename>dhcpd.conf</filename>:</para>
<programlisting>
# Global section
option swap-path code 128 = string;
option swap-size code 129 = integer 32;
host margaux {
... # Standard lines, see above
option swap-path <replaceable>"192.168.4.4:/netswapvolume/netswap"</replaceable>;
option swap-size <replaceable>64000</replaceable>;
}
</programlisting>
<para><literal>swap-path</literal> est le chemin
d'acc&egrave;s vers un r&eacute;pertoire o&ugrave; les
fichiers de pagination sont situ&eacute;s. Chaque
fichier sera nomm&eacute;
<filename>swap.<replaceable>ip-client</replaceable></filename>.</para>
<para>Les anciennes version de
<application>dhcpd</application> utilisaient une
syntaxe du type <literal>option option-128
"...</literal>, qui n'est plus
support&eacute;e.</para>
<para><filename>/etc/bootptab</filename> utiliserait la
syntaxe suivante &agrave; la place:</para>
<programlisting>T128="192.168.4.4:/netswapvolume/netswap":T129=0000fa00</programlisting>
<note>
<para>Dans le fichier
<filename>/etc/bootptab</filename>, la taille de
l'espace de pagination doit &ecirc;tre exprim&eacute;e
en hexad&eacute;cimal.</para>
</note>
</step>
<step>
<para>Sur le serveur du fichier de pagination
par <acronym>NFS</acronym>, cr&eacute;ez le(s)
fichier(s) de pagination:</para>
<screen>
&prompt.root; <userinput>mkdir <replaceable>/netswapvolume/netswap</replaceable></userinput>
&prompt.root; <userinput>cd <replaceable>/netswapvolume/netswap</replaceable></userinput>
&prompt.root; <userinput>dd if=/dev/zero bs=1024 count=<replaceable>64000</replaceable> of=swap.<replaceable>192.168.4.6</replaceable></userinput>
&prompt.root; <userinput>chmod 0600 swap.<replaceable>192.168.4.6</replaceable></userinput></screen>
<para><replaceable>192.168.4.6</replaceable> est
l'adresse IP du client sans disque dur.</para>
</step>
<step>
<para>Sur le serveur du fichier de pagination par
<acronym>NFS</acronym>, ajoutez la ligne suivante au
fichier <filename>/etc/exports</filename>:</para>
<programlisting>
<replaceable>/netswapvolume</replaceable> -maproot=0:10 -alldirs <replaceable>margaux corbieres</replaceable>
</programlisting>
<para>Ensuite demandez &agrave;
<application>mountd</application> &agrave; relire le
fichier <filename>exports</filename>, comme plus
haut.</para>
</step>
</procedure>
</sect4>
<sect4>
<title>Pagination via <acronym>NFS</acronym> sous
&os&nbsp;5.X</title>
<para>Le noyau ne supporte pas l'activation de la pagination
par <acronym>NFS</acronym> au d&eacute;marrage. L'espace
de pagination doit &ecirc;tre activ&eacute; par les
proc&eacute;dures de d&eacute;marrage, en montant un
syst&egrave;me de fichiers accessible en &eacute;criture
et en cr&eacute;ant et en activant un fichier de
pagination. Pour cr&eacute;er un fichier de pagination de
la taille appropri&eacute;e, vous pouvez effectuer ce qui
suit:</para>
<screen>&prompt.root; <userinput>dd if=/dev/zero of=<replaceable>/path/to/swapfile</replaceable> bs=1k count=1 oseek=<replaceable>100000</replaceable></userinput></screen>
<para>Pour ensuite l'activer, vous devez ajouter la ligne
suivante &agrave; votre fichier
<filename>rc.conf</filename>:</para>
<programlisting>swapfile=<replaceable>/path/to/swapfile</replaceable></programlisting>
</sect4>
</sect3>
<sect3>
<title>Probl&egrave;mes divers</title>
<sect4>
<title>Utilisation d'un <filename>/usr</filename> en lecture
seule</title>
<indexterm>
<primary>syst&egrave;me sans disque dur</primary>
<secondary>/usr en lecture seule</secondary>
</indexterm>
<para>Si la station de travail sans disque dur est
configur&eacute;e pour ex&eacute;cuter X, you devrez
ajuster le fichier de configuration de
<application>XDM</application>, qui envoie le journal
d'erreurs sur <filename role="directory">/usr</filename>
par d&eacute;faut.</para>
</sect4>
<sect4>
<title>Utilisation d'un serveur non-&os;</title>
<para>Quand le serveur pour le syst&egrave;me de fichiers
racine ne fait pas tourner &os;, vous devrez cr&eacute;er
le syst&egrave;me de fichiers racine sur une machine &os;,
puis le copier vers sa destination en utilisant
<command>tar</command> ou <command>cpio</command>.</para>
<para>Dans cette situation, il y a parfois des
probl&egrave;mes avec les fichiers sp&eacute;ciaux de
p&eacute;riph&eacute;riques dans <filename
role="directory">/dev</filename>, en raison de
diff&eacute;rences de taille sur les entiers. Une
solution &agrave; ce probl&egrave;me est d'exporter un
r&eacute;pertoire &agrave; partir du serveur non-&os;, de
monter ce r&eacute;pertoire sur une machine &os;, et
ex&eacute;cuter <command>MAKEDEV</command> sur la machine
&os; pour cr&eacute;er les entr&eacute;es de
p&eacute;riph&eacute;riques correctes (&os;&nbsp;5.X et
les versions suivantes utilisent &man.devfs.5; pour
l'allocation des fichiers sp&eacute;ciaux de
p&eacute;riph&eacute;riques de mani&egrave;re transparente
pour l'utilisateur, ex&eacute;cuter
<command>MAKEDEV</command> sur ces versions est
inutile).</para>
</sect4>
</sect3>
</sect2>
</sect1>
<sect1 id="network-isdn">