Tout d'abord, vous devez cr�er la structure des r�pertoires elle-m�me. J'ai
cr�� tous mes clients dans le r�pertoire /clients/hostname
et je
l'utilise pour tous les exemples suivants. Cela peut toutefois �tre remplac�
par n'importe quoi d'autre. La premi�re �tape, est donc de cr�er les
r�pertoires appropri�s sur la racine. Vous devez cr�er les
r�pertoires suivants :
bin, dev, etc, home, lib, mnt, proc, sbin, serveur, tmp, usr, var
et tous les autres r�pertoires que vous souhaitez avoir sur votre syst�me.Les r�pertoires locaux proc
et dev
doivent �tre distincts pour chaque
machine alors que le reste des r�pertoires peut �tre soit en partie soit
compl�tement partag� avec les autres clients.
Bien que le r�pertoire dev
puisse �tre partag�, il est pr�f�rable
d'en cr�er un diff�rent pour chaque client. Vous pouvez cr�er le r�pertoire
dev de votre client avec le script MAKEDEV appropri�, cependant dans la
plupart des cas, il est plus simple de le recopier � partir du serveur :
cp -a /dev /clients/hostname
Vous devez garder � l'esprit que /dev/mouse
, /dev/cdrom
et
/dev/modem
sont des liens vers les p�riph�riques courants, il
faut donc s'assurer qu'ils sont correctement reli�s pour correspondre au
mat�riel du client.
Bien que nous montons tout � partir du serveur, il y a un minimum que vous
devez recopier pour chaque client. Avant tout, vous avez besoin de "init",
car votre syst�me ne sera pas capable de faire marcher quoi que ce soit avant
de s'�tre initialis� (l'auteur l'a difficilement trouv� ;-). Donc premi�rement,
vous devez copier /sbin/init
dans le r�pertoire sbin de votre client
ensuite, pour que le fichier rc.S puisse �tre lanc�, vous devez copier
/bin/sh dans le r�pertoire binaire de votre client.
Ensuite, de mani�re � monter tout ce dont vous avez besoin, vous devez copier
/sbin/mount
dans le r�pertoire sbin de votre client. C'est le minimum,
� partir du moment ou la premi�re ligne de votre rc.S (rc.sysinit pour une
distribution redhat) est mount -av
.
Cependant, je recommande de copier quelques autres fichiers : update,
ls, rm, cp et umount
comme cela, vous aurez les outils minimum au cas ou le
client � des probl�mes de montage. Si vous choisissez d'utiliser votre swap
avant de monter la racine, vous devez �galement copier l'ex�cutable
swapon
.
Bien que la plupart de ces ex�cutables ont eu une �dition des liens dynamique, vous devez aussi copier une petite partie de /lib :
cp -a /lib/ld.* /lib/libc.* /lib/libcurses.* /client/hostname/lib
N.d.T. : sur certaines distributions (en particulier RedHat) ce sont les fichiers /lib/libtermcap* qu'il faut recopier � la place de /lib/libcurses.* selon la fa�on dont sont compil�s les ex�cutables.
Mettre des liens durs vers les fichiers eux-m�mes, au lieu de les copier, est une solution � consid�rer. Relisez mes commentaires � ce sujet dans la partie 2.1 de ce Howto.
Veuillez remarquer que toutes les informations pr�c�dentes supposent que le noyau ai obtenu tous les param�tres lors du boot. Si vous pensez utiliser rarp ou bootp, vous aurez probablement besoin des fichiers qui leurs correspondent.
G�n�ralement, vous aurez besoin du minimum de fichiers qui vous permettent
de configurer le r�seau et d'ex�cuter rc.S (ou rc.sysinit sur Redhat)
jusqu'au moment ou est mont� le reste du syst�me de fichier. Assurez-vous que
vous avez v�rifixi�e vos fichiers /etc/init
et rc.S
, v�rifiez
qu'il n'y a pas de "surprises" ou quoi que ce soit d'autre qui aurait
besoin d'acc�der � d'autres fichiers, avant que le premier montage ait lieu.
Si vous le faites toutefois, retrouvez ces fichiers, vous pouvez soit les
recopier �galement, soit enlever les parties correspondantes de vos fichiers
init
ou rc.S
.
Le r�pertoire var, dans la plupart des cas, doit �tre s�par� pour chaque
client. Cependant, bon nombre des donn�es peuvent �tres partag�es. Cr�ez
dans le r�pertoire /serveur
, un r�pertoire appel� var
.
Nous recopierons le r�pertoire var
du serveur � cet endroit. Pour cr�er le
r�pertoire var
local, tapez simplement :
cp -a /var /clients/hostname
Maintenant, vous pouvez choisir ce que vous voulez s�parer, et ce que vous
voulez partager. Pour tout r�pertoire/fichier que vous voulez partager,
enlevez-le
simplement du r�pertoire var du client, et mettez un lien symbolique vers le
r�pertoire /serveur/var
. Cependant, vous remarquerez que vous
pouvez mettre un lien symbolique vers /serveur/var
ou vers
../serveur/var
mais surtout PAS vers /clients/hostname/serveur/var
puisque cela ne marchera plus lorsque la racine aura chang�.
G�n�ralement, je recommande de s�parer /var/run, /var/lock, /var/spool
et /var/log
.
/clients/tmp
, et le monter
sur chaque client dans /tmp
. Je recommande de fournir un r�pertoire
tmp pour chaque clientRemarque - cette section traite de la fa�on de cr�er un r�pertoire
etc
qui est principalement s�par� entre les clients. Si votre station
diskless a des administrateurs syst�mes diff�rents, il est pr�f�rable de faire
un r�pertoire etc
s�par� pour chaque client.
Bien que nous s�parions les r�pertoires etc
des clients, nous souhaitons
toujours partager une bonne partie des fichiers de cet endroit. D'une fa�on
g�n�rale, je pense que partager les fichiers de etc avec le r�pertoire /etc
du serveur est une mauvaise id�e, et c'est pourquoi je recommande de
cr�er un
r�pertoire /clients/etc
, qui contiendra les informations dont les
clients ont besoin. Pour commencer, recopier simplement le contenu de /etc
du serveur vers le r�pertoire /client/etc
.
Vous devrez ajouter � ce r�pertoire tous les fichiers de configuration qui ne d�pendent pas de la machine, par exemple motd, issue, etc. mais aucun de ceux d�pendant du client (i.e. inittab ou fstab)
Les changements les plus importants doivent �tre faits dans le r�pertoire
rc.d
. Premi�rement, vous devez changer rc.inet1 pour qu'il corresponde
� votre param�trage local. Je passe tous mes param�tres r�seau au noyau
avec LILO/Loadlin, c'est pourquoi j'ai enlev� presque tout de mon fichier
rc.inet1
. La seule chose que j'ai laiss�, est le ifconfig et la
route vers l'entr�e localhost. Si vous utilisez rarp ou bootp, vous
devez en tenir compte lors de la cr�ation du fichier.
Deuxi�mement, vous devez �diter le fichier rc.S. D'abord, enlever toutes les parties qui sont responsable d'une recherche d'erreur avec fsck, puisque fsck aura lieu alors que le serveur est d�j� d�marr�. Ensuite, vous devez trouver la ligne ou est mont� votre fstab. Cela doit ressembler � :
mount -avt nonfs
Le -t nonfs. est jusque l� normal puisque les client lancent en
premier rc.S et seulement apr�s rc.inet1 pour configurer l'Ethernet. Mais comme
cette ligne ne va pas monter les partitions NFS, elle doit �tre d�truite.
Il faut ensuite la remplacer par un mount -av
. Si vous avez besoin
d'utiliser rarp/bootp pour configurer votre r�seau, faites le dans rc.S (ou
appelez le script appropri� dans rc.S), avant de monter, et assurez vous que
les r�pertoires bin et sbin contiennent les fichiers n�cessaires.
Apr�s que le mount -av
ait �t� accompli, vous devez avoir un syst�me de
fichier op�rationnel. Cr�ez un fstab g�n�rique, que vous pourrez recopier sur
chaque client.
Votre fstab
doit ressembler � :
serveur:/clients/hostname / nfs default 1 1
serveur:/bin /bin nfs default 1 1
serveur:/usr /usr nfs default 1 1
serveur:/sbin /sbin nfs default 1 1
serveur:/home /home nfs default 1 1
serveur:/lib /lib nfs default 1 1
serveur:/clients/etc /serveur/etc nfs default 1 1
serveur:/clients/var /serveur/var nfs default 1 1
none /proc proc default 1 1
Veuillez remarquer, que le mot cl� _default_ ne doit pas fonctionner avec
toutes les versions de mount. Vous devrez alors le changer en _rw_ ou _ro_ ou
enlever toute la partie _default 1 1_ . Assurez vous �galement que sur votre serveur le /etc/exports
ressemble
� :
/clients/hostname hostname.domainname(rw,no_root_squash)
/clients/etc hostname.domainname(ro,no_root_squash)
/clients/var hostname.domainname(ro,no_root_squash)
/usr hostname.domainname(ro,no_root_squash)
/sbin hostname.domainname(ro,no_root_squash)
/bin hostname.domainname(ro,no_root_squash)
/lib hostname.domainname(ro,no_root_squash)
/home hostname.domainname(rw,no_root_squash)
Mise � part la premi�re ligne qui doit �tre diff�rente pour chaque client, les
autres lignes peuvent �tre remplac�es par un masque pour s'appliquer � tout vos
clients (comme pc*.domain - gardez � l'esprit, que * se substitue uniquement
aux cha�nes de caract�res ne contenant pas de point). Je propose de mettre la
majorit� des r�pertoires en lecture seule ro, mais c'est � vous de
choisir. Le no_root_squash
assure que le super-utilisateur aura sur les
clients les permissions correspondantes avec nfsd. Jetez un coup d'oeil
au man exports(5)
. Si vous souhaitez que vos utilisateurs puissent
utiliser passwd �galement � partir des clients, assurez-vous que /etc
ai les permissions rw et non ro. Toutefois faites comme vous le souhaitez.
Vouz remarquerez aussi, en ce qui concerne le fichier rc.S que sur
la Slackware, par d�faut, un fichier /etc/issue
et /etc/motd
sont cr��s � chaque ex�cution. Cette fonction DOIT �tre d�sactiv�e si ces
fichiers sont mont�s en ro � partir du serveur, je recommande de les
d�sactiver dans tous les cas.
Pour terminer, si vous voulez avoir une base d'utilisateurs commune � votre
serveur et vos clients, vous pouvez choisir entre 1), utiliser NIS (lire le
NIS-Howto), et ainsi, chaque client aura un /etc/passwd
et
/etc/group
s�par� puisqu'il les recevra du serveur. 2) Dans la
plupart des cas, un lien symbolique suffira. Pour cela, vous pourrez soit
mettre un lien dur de /client/etc/passwd
vers /etc/passwd
,
ou si vous pr�f�rez un lien symbolique, reliant /etc/passwd
vers
/client/etc/passwd
(et pas dans l'autre sens puisque le client ne
monte pas le r�pertoire etc du serveur). Faire de m�me avec /etc/group
G�n�ralement, la plupart des fichiers du r�pertoire etc du client
doivent avoir des liens symboliques vers /serveur/etc
. Toutefois,
certains fichiers sont diff�rents pour chaque machine, et certains doivent
�tre l� lorsque le noyau est charg�.
Le minimum dont vous avez besoin dans le r�pertoire etc est :
resolv.conf
hosts
inittab
rc.d/rc.S
fstab
Puisque ces 5 fichiers peuvent �tres identiques sur les clients, vous pouvez
simplement les recopier ou mettre des liens durs. Cependant, il est
judicieux de garder les fichiers fstab
et rc.S
diff�rents pour chaque
client. Vous devez �galement s�parer etc/HOSTAME
pour chaque client. Personnellement, je recommande d'avoir
les fichiers de rc.d
distincts pour chaque client puisque la configuration
et le mat�riel peuvent varier d'une machine � l'autre.
Pour chaque client, ajouter dans la fstab
la ligne swap appropri�e :
/dev/swap_partition swap swap default 1 1
Pour le reste des fichiers de /etc du client, vous pouvez soit mettre des liens
durs vers /clients/etc/*
, ou mettre des liens symboliques vers
/serveur/etc
(qui est l'endroit o� est mont� /clients/etc
).
Assurez-vous que votre machine peut r�soudre correctement, soit par named
ou gr�ce � etc/hosts. Ce n'est pas une mauvaise id�e de garder
l'adresse IP du serveur dans /etc/hosts
, plut�t que de compter sur la
r�solution. Si vous comptez uniquement sur la r�solution de noms, un probl�me
avec named
emp�chera vos clients de booter.
Maintenant que vous avez fait tout ce qu'il faut pour d�marrer votre machine, croisez vos doigts et priez pour que tout marche comme il faut :-)
Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:31