Il DC richiede di montare /tftpboot/<indirizzo IP del DC> (nella 2.1 e precedenti: /tftpboot/<nome del DC in bootptab>) come sua '/' tramite NFS dal server. Bisogna esportarlo dal server (rw, no_root_squash) perché il DC ci vuole scrivere (file di log, ecc).
La directory di root / deve contenere /sbin, /lib, /etc, /var, /tmp, /root, /dev e /proc.
/sbin, /bin e /lib possono essere una copia di un sistema Linux Redhat esistente. Possono essere condivise tra tutti i DC. Ma solo link fisici. A proposito, non si facciano link agli originali sul server.
/etc, /var e /dev devono essere copie non condivisibili. Si aggiustino ad hoc /etc/sysconfig/network, /etc/sysconfig/network-scripts/ifcfg-eth0, /etc/fstab, /etc/conf.modules e altri. Disabilitare tutti i servizi di rete che non servono. Togliere da /var tutta la roba di cui non si ha bisogno, ad es. i db RPM e i file lpd.
/root e /proc dovrebbero semplicemente esistere. /tmp dovrebbe esistere ed essere mode 1777.
Probabilmente si vorrà creare i mount point /usr e /home. /usr può essere montato ro (read only - a sola lettura).
Dovrebbero bastare circa 10 MB per DC più circa 15 MB per i file condivisi. A proposito: se i propri DC sono identici anche l'immagine del kernel può essere condivisa.
Ecco uno script illustrativo per creare il primo filesystem root:
#!/bin/sh if [ $# != 1 ] then echo Usage: $0 client-IP-addr exit 1 fi cd / umask 022 mkdir -p /tftpboot/$1 # facciamo così for d in home mnt proc tmp usr do mkdir /tftpboot/$1/$d done chmod 1777 /tftpboot/$1/tmp touch /tftpboot/$1/fastboot chattr +i /tftpboot/$1/fastboot # copiamo questi cp -a bin lib sbin dev etc root var /tftpboot/$1 cat <<EOF Ora, in /tftpboot/$1/etc, editare sysconfig/network sysconfig/network-scripts/ifcfg-eth0 fstab conf.modules e configurare rc.d/rc3.d EOF
Ecco uno script illustrativo per duplicare il filesystem root:
#!/bin/sh if [ $# != 2 ] then echo Usage: $0 olddir newdir exit 1 fi cd /tftpboot if [ ! -d $1 ] then echo $1 is not a directory exit 1 fi umask 022 mkdir -p $2 # facciamo così for d in home mnt proc tmp usr do mkdir $2/$d done chmod 1777 $2/tmp touch $2/fastboot chattr +i $2/fastboot # linkiamo questi for d in bin lib sbin do (cd $1; find $d -print | cpio -pl ../$2) done # copiamo questi for d in dev etc root var do cp -a $1/$d $2 done cat <<EOF Ora, in /tftpboot/$2/etc, editare sysconfig/network sysconfig/network-scripts/ifcfg-eth0 fstab (forse) conf.modules (forse) e configurare rc.d/rc3.d EOF
Sul server, ci si assicuri che il DC corrisponda ad un'apposita voce in /etc/X11/xdm/Xaccess e si commenti il :0 in /etc/X11/xdm/Xservers. Poi ci si assicuri che xdm venga eseguito dagli script di init.
Sul client, eseguire X -query server
Si otterrà la finestra di login di xdm, dopo di che tutti i propri client X gireranno sul server.
Riguardo l'uso di altre applicazioni, si potrebbe usare la tecnica diskless per router netboot, server di stampa (ma non devono essere server di stampa in spooling), applicazioni standalone, ecc.