Per poter abilitare un server NFS in ambiente Linux occorre semplicemente configurare e compilare il kernel con il supporto NFS server (anche client se si desidera) e installare tramite rpm o sorgenti le nfs-utils, ovvero tutti i comandi per la gestione dei demoni e delle share.
Nel caso della distribuzione RedHat, il kernel di default supporta sia NFS server che client tramite moduli, ma nel caso si utilizzi una distribuzione differente o più semplicemente si è disabilitato il supporto di NFS nel kernel, occorre riabilitarlo, con la ricompilazione del kernel.
La sezione relativa a NFS è File-System ---> Network File System --->NFS client o server, come si può vedere dalla screenshot:
Si consiglia di evitare di utilizzare i moduli, per evitare problemi con le dipendenze.
Abilitato il supporto in kernel space occorre installare tramite rpm o sorgenti
portmap le nfs-utils, il primo è un servizio che deve essere abilitato sia sul client che sul server e si occupa di convertire da RPC program port in DARPA protocol port numbers, il secondo invece, è l'insieme di binari,librerie, manuali e tutto ciò che serve per supportare e gestire NFS in user space.
Installazione delle nfs-utils
Il modo più veloce è certamente quello di utilizzare i package come RPM o DEB
[root@GIOVE root]# rpm -ihv nfs-utils-1.0.1-2.i386.rpm
Preparing... ########################################### [100%]
1:nfs-utils ########################################### [100%]
[root@GIOVE root]# rpm -qil nfs-utils
[...]
Script per la gestione dei demoni per nfs server
/etc/rc.d/init.d/nfs
/etc/rc.d/init.d/nfslock
binari dei demoni e utility
/sbin/rpc.lockd
/sbin/rpc.statd
/sbin/rpcdebug
/usr/sbin/exportfs
/usr/sbin/nfsstat
/usr/sbin/nhfsstone
/usr/sbin/rpc.mountd
/usr/sbin/rpc.nfsd
/usr/sbin/showmount
Documentazione e manuali
/usr/share/doc/nfs-utils-1.0.1
/usr/share/doc/nfs-utils-1.0.1/ChangeLog
/usr/share/doc/nfs-utils-1.0.1/INSTALL
/usr/share/doc/nfs-utils-1.0.1/KNOWNBUGS
/usr/share/doc/nfs-utils-1.0.1/NEW
/usr/share/doc/nfs-utils-1.0.1/README
[...]
/usr/share/man/man5/exports.5.gz
/usr/share/man/man8/exportfs.8.gz
/usr/share/man/man8/lockd.8.gz
/usr/share/man/man8/mountd.8.gz
/usr/share/man/man8/nfsd.8.gz
/usr/share/man/man8/nfsstat.8.gz
/usr/share/man/man8/nhfsgraph.8.gz
/usr/share/man/man8/nhfsnums.8.gz
/usr/share/man/man8/nhfsrun.8.gz
/usr/share/man/man8/nhfsstone.8.gz
/usr/share/man/man8/rpc.lockd.8.gz
/usr/share/man/man8/rpc.mountd.8.gz
/usr/share/man/man8/rpc.nfsd.8.gz
/usr/share/man/man8/rpc.statd.8.gz
/usr/share/man/man8/showmount.8.gz
/usr/share/man/man8/statd.8.gz
File di supporto per tenere traccia delle share montate
/var/lib/nfs
/var/lib/nfs/etab
/var/lib/nfs/rmtab
/var/lib/nfs/statd
/var/lib/nfs/xta
Nel caso in cui si vogliano compilare direttamente i sorgenti è possibile scaricarli dal seguente indirizzo:
http://sourceforge.net/project/showfiles.php?group_id=14&release_id=100684.
[root@GIOVE root]# tar zxvf nfs-utils-1.0.1.tar.gz
[...]
nfs-utils-1.0.1/utils/statd/statd.man
nfs-utils-1.0.1/utils/statd/state.c
nfs-utils-1.0.1/utils/statd/svc_run.c
nfs-utils-1.0.1/utils/statd/system.h
nfs-utils-1.0.1/utils/statd/version.h
[root@GIOVE root]# cd nfs-utils-1.0.1
[root@GIOVE nfs-utils-1.0.1]# ./configure
[...]
creating ./config.status
creating config.mk
creating nfs-utils.spec
creating utils/Makefile
creating support/include/config.h
[root@GIOVE nfs-utils-1.0.1]# make
Making all in tools
Making all in rpcgen
gcc -O2 -I../../support/include -Wall -pipe -DVERSION="\"nfs-utils 1.0.1\"" -DNFS3_SUPPORTED -c -o rpc_clntout.o rpc_clntout.c
[...]
[root@GIOVE nfs-utils-1.0.1]# make install
Making install in tools
Making install in rpcgen
Making install in getiversion
Making install in getkversion
Making install in rpcdebug
Making install in locktest
Making install in support
Making install in include
Making install in nfs
Making install in export
Making install in lib
Making install in misc
Making install in utils
Making install in exportfs
[...]
Nella distribuzione RedHat il package portmap viene installato di default poichè è richiesto da altri servizi come ad esempio NIS.
[root@GIOVE root]# rpm -qil portmap
[...]
Script per las gestione del servizio
/etc/rc.d/init.d/portmap
Binari
/sbin/portmap
/usr/sbin/pmap_dump
/usr/sbin/pmap_set
Documentazione e manuali
/usr/share/doc/portmap-4.0
/usr/share/doc/portmap-4.0/BLURB
/usr/share/doc/portmap-4.0/CHANGES
/usr/share/doc/portmap-4.0/README
/usr/share/man/man8/pmap_dump.8.gz
/usr/share/man/man8/pmap_set.8.gz
/usr/share/man/man8/portmap.8.gz
Sia gli RPM di binari sia di sorgenti di portmap sono disponibili al seguente indirizzo:
http://rpmfind.net/linux/rpm2html/search.php?query=portmap&submit=Search+...
Esempio di installazione da sorgente:
Download dei sorgenti in formato rpm
[root@GIOVE root]# wget
ftp://rpmfind.net/linux/redhat/8.0/en/os/i386/SRPMS/portmap-4.0-46.src.rpm
--15:14:02-- ftp://rpmfind.net/linux/redhat/8.0/en/os/i386/SRPMS/portmap-4.0-46.src.rpm
=> `portmap-4.0-46.src.rpm'
[root@GIOVE root]# rpm -ihv portmap-4.0-46.src.rpm
1:portmap ########################################### [100%]
Costruzione dei binari tramite l'utility rpmbuild
[root@GIOVE root]# rpmbuild -bb /usr/src/redhat/SPECS/portmap.spec
[...]
Una volta costruito il package lo ritroviamo nella seguente directory
/usr/src/redhat/RPMS/i386/
Installazione di un server NFS tramite RPM e sorgenti, file installati e posizioni. Troubleshooting e gestione del servizio.