Il faut pr�voir le n�cessaire pour supporter root sur nfs. Voici les �tapes :
mknod /dev/nfsroot b 0 255
rdev <path-to-zImage>/zImage /dev/nfsroot
/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�es telles que supprimer /tmp, arr�ter temporairement syslog, d�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�cessaire de changer de niveau d'ex�cution, si vous �tes s�r d'�tre le seul connect� et sur une console en mode texte.
D�ni : ce script a �t� test� mais s'il provoque un plantage du serveur, vous �tes seul responsable. Je ne prends aucune responsabilit� quoi qu'il arrive. Je r�p�te que ce HowTo est fait pour des administrateurs exp�riment�s. De plus ce script est fait pour �tre lanc� une fois 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�cutable, puis ex�cutez-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�riph�riques install�s /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 stations montant root par NFS /etc/rc.d/rc.ws
Par exemple ici � l'Universit�, j'ajouterai ceci � /etc/exports :
/ *.st.hhs.nl(ro,no_root_squash) /home *.st.hhs.nl(rw,no_root_squash)
Remplacez les noms de domaine par les v�tres et relancez NFS :
/etc/rc.d/init.d/nfs restart
Pour les utilisateurs de knfsd : il n'est pas possible d'avoir plusieurs exports d'une partition avec des permissions diff�rentes. De m�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�s � /usr). Ainsi, si vous utilisez knfsd, il faudra qu'au moins /home soit sur une partition diff�rente ; le script de pr�paration du serveur a mis /tftpboot sous /home : il ne n�cessite pas une partition suppl�mentaire. Si vous voulez acc�der � d'autres partitions depuis vos clients, exportez les s�par�ment et ajoutez les lignes de montage correspondantes dans /etc/rc.d/rc.ws.
/etc/rc.d/init.d/inetd restart
Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:34