|
このページは大阪弁化フィルタによって翻訳生成されたんですわ。 |
Ce HOWTO est © Hans de Goede, 1999.
Sauf indication contraire, les droits d'auteur des HOWTO Linux sont d騁enus par leurs auteurs respectifs. Les HOWTO Linux peuvent 黎re les clients utilisent le syst鑪e de fichiers racine du serveur. Ils y acc鐡ent bien s? en lecture seule.
Quelques probl鑪es apparaissent rapidement.
Une configuration linux doit avoir les acc鑚 en 馗riture sur les r駱ertoires suivants :
/etc/rc.d/rc.devfs save /etc/sysconfig
Comme on peut le voir, il y a plusieurs moyens de r駸oudre ce probl鑪e d'acc鑚 en lecture-馗riture. Voici les options choisies pour le reste de ce Howto :
Mais ce n'est pas vraiment un probl鑪e puisque dans Avec une autre distribution, il suffira de cr馥r un r駱ertoire sysconfig, d駱lacer tous les fichiers de configuration qui ne peuvent 黎re partag駸, et ajouter les liens n馗essaires. De m麥e, /etc/rc.d/rc3.d (ou l'駲uivalent dans les autres distribs) peut pr駸enter des diff駻ences entre le serveur et les stations. Si on consid鑽e que toutes les stations lancent les m麥es services, on cr馥ra simplement un rc3.d pour les stations et un pour le serveur :
Il faut pr騅oir le n馗essaire pour supporter root sur nfs. Voici les 騁apes :
/etc/rc.d/rc.devfs save /etc/sysconfig
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.
Ce script effectue des actions un peu os馥s telles que supprimer /tmp, arr黎er temporairement syslog, d駑onter /proc. et une seule. Le lancer une seconde fois endommagera /etc/fstab, /etc/X11/XF86Config, /etc/X11/X et /etc/conf.modules.
Ceci dit, copiez-collez ce script et rendez le ex馗utable, puis ex馗utez-le.
#!/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 &&
{
# 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駻iph駻iques install駸
/etc/rc.d/rc.devfs restore /etc/sysconfig
umount /proc" > /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 > /tftpboot/template/sysconfig/network
echo `grep "GATEWAY=" /etc/sysconfig/network` >> /tftpboot/template/sysconfig/network
echo "/dev/nfsroot / nfs defaults 1 1" > /tftpboot/template/sysconfig/fstab
echo "none /proc proc defaults 0 0" >> /tftpboot/template/sysconfig/fstab
echo "#!/bin/sh" > /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 > $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" > /sbin/fsck.nfs
chmod 755 /sbin/fsck.nfs
echo all done
Pour les utilisateurs de knfsd : il n'est pas possible d'avoir plusieurs exports d'une partition avec des permissions diff駻entes. De m麥e, knfsd ne permet pas de changer de partition /etc/rc.d/init.d/inetd restart
M麥e si vous avez l'intention d'utiliser une bootprom, il est plus sage de tester d'abord avec un bootdisk. Pour le cr馥r :
dd if=/<path-to-zImage>/zImage of=/dev/fd0
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駻ence de prix est minime. Ces eproms sont standards (on y 馗rit avec un eprom burner ordinaire).
Il suffit de recopier le r駱ertoire qui sert de mod鑞e (template) en tapant :
4.3 Ajouter les entr馥s dans /etc/bootptab et /etc/hosts
Editer /etc/bootptab et ajouter une entr馥 pour une station de test, par exemple :
nfsroot1:hd=/tftpboot:vm=auto:ip=10.0.0.237:\ :ht=ethernet:ha=00201889EE78:\ :bf=bootImage:rp=/tftpboot/10.0.0.237/root
Remplacer nfsroot1 par le nom d'h?e de la station. Remplacer 10.0.0.237 par son adresse IP et 00201889EE78 par son adresse MAC.
Si cela 馗houe, c'est qu'il ne tournait pas. Dans ce cas inetd le d駑arrera au moment voulu.
4.4 D駑arrer la station pour la premi鑽e fois
D駑arrez simplement la station depuis le bootdisk. Vous devriez avoir ainsi une station en mode texte, avec exactement la m麥e configuration que le serveur except駸 l'adresse IP et les services lanc駸. M麥e si vous comptez utiliser une bootprom, il est plus sage de tester d'abord avec un bootdisk.
5. Bonus : d駑arrer depuis un cdrom
La plupart des op駻ations ci-dessus sont valables pour d駑arrer depuis un cdrom. Comme je voulais 馮alement documenter cette fa輟n de booter,
/etc/mtab doit 黎re accessible en 馗riture :
- Cr馥r un lien vers /proc/mounts et cr馥r un fichier vide sous /proc, comme d馗rit pr馗馘emment.
5.2 Cr馥r une configuration de test
configuration de test.
#!/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/*
mount -o remount,rw /
D'abord, d駑arrer sur la partition de travail. Pour cr馥r un cd amor軋ble, nous aurons besoin d'une image d'une disquette de d駑arrage. Mais copier par dd une zimage ne suffit pas parce que, au tout d饕ut du chargement de celle-ci, un pseudo lecteur de disquette est cr鳬 et le chargeur du syst鑪e ne s'y retrouve plus dans le cas d'un cd amor軋ble. Donc nous utiliserons plut? syslinux.
mount boot.img somewhere -o loop -t vfat
losetup -d /dev/loop0
Maintenant que nous avons l'image de boot et une installation qui peut d駑arrer sur un montage en lecture seule, il est temps de cr馥r une image iso du cd :
mkisofs -R -b boot.img -c boot.catalog -o boot.iso /test
mount boot.iso somewhere -o loop -t iso9660
umount somewhere