= NFS HOWTO =

I have put this HOWTO together from various sources which I will list at the end. Discuss here is the process of setting up a server and using a client. I'm not going to get very wordy here as this is really a reference for myself. However, if you want to contact me concerning this document, follow the link at the bottom of this page for my contact info.

== Getting the Packages ==

On Debian derived systems you can install the server packages as shown below:

{{{
sudo apt-get install nfs-kernel-server nfs-common rpcbind
}}}

== Configuring portmap ==

'''Do not bind portmap to the loopback. If you need to reconfigure the portmap run the first of the next two commands or edit {{{/etc/default/portmap}}} by hand then restart the servers.'''

{{{
sudo dpkg-reconfigure portmap
sudo /etc/init.d/portmap restart
}}}

== Configuring NFS ==

Edit the {{{/etc/exports}}} file.

The following line will permit all 254 C class addresses on the private net specified to access this mount.

{{{
/home 192.168.1.0/24(rw,no_root_squash,no_subtree_check,async,insecure)
}}}

This line will permit all 65534 C class addresses on the private net specified to access this mount.

{{{
/home 192.168.0.0/16(rw,no_root_squash,no_subtree_check,async,insecure)
}}}

You must execute the following commands after any edit to the {{{/etc/exports}}} file.

Reread the {{{/etc/exports}}} file.

{{{
sudo exportfs -ra
}}}

Restart the nfs server.

{{{
sudo /etc/init.d/nfs-kernel-server restart
}}}

'''Note: See [[ipcalc]] for details of determining the network parameters.'''

== TCP Wrappers ==

In the {{{/etc/hosts.deny}}} file deny everything.

{{{
ALL:    ALL: \
spawn ( DATE=`date`; /bin/echo $DATE %d %u %c >> /var/log/wrapper-deny.log )
}}}

In the {{{/etc/hosts.allow}}} file add {{{portmap, mountd, nfsd, lockd, rquotad, statd}}}.

{{{
ALL: 127.0.0.1

portmap, mountd, nfsd, lockd, rquotad, statd, sshd, cvs : \
127.0.0.1, \
some.domain.org, \
some.domain.net : \
spawn ( DATE=`date`; /bin/echo $DATE %d %u %c >> /var/log/wrapper-allow.log )
}}}

== Installing Just the Client Software ==

{{{
sudo apt-get install portmap nfs-common
}}}

== Manual Mounting ==

First make a mount point on your remote machine where you want the server mount to be located.

{{{
cd /
sudo mkdir -p /exports/{host}/home
}}}

The following will mount your remote {{{/home}}} directory to {{{/export/{host}/home}}} on the client machine.

{{{
sudo mount -t nfs {host}.mydomain.org:/home /export/{host}/home
}}}

You may not need the {{{-t nfs}}} in the above command.

'''You will need to restart the servers using the commands below:'''

{{{
sudo /etc/init.d/portmap restart
sudo /etc/init.d/nfs-common restart
}}}

== Auto Mounting ==

Install the autofs package:

{{{
sudo apt-get install autofs
}}}

Edit the {{{/etc/auto.master}}} file adding the following line.

{{{
/exports/{host}  /etc/auto.{host}  --timeout=60
}}}

Create the {{{/etc/auto.{host}}}} file and add the lines for your mounts.

{{{
someuser -rw,soft,bg,intr  {host}.mydomain.org:/home/someuser
iso      -rw,soft,bg,intr  {host}.mydomain.org:/extra0/iso
Video    -rw,soft,bg,intr  {host}.mydomain.org:/extra1/Video
}}}

I make a directory path at the root system named {{{/exports/{host} }}} where host is the host name of the machine I am mounting shares from.

{{{
sudo mkdir -p /exports/{host}
}}}

== Boot Mounting ==

Edit {{{/etc/fstab}}} adding the following line:

{{{
host.mydomain.org:/home /exports/{host}/{home} nfs rw,bg,intr 0 0
}}}

Look at the [[http://linux.die.net/man/5/nfs|nfs manual page]] for other mounting options.

To test your edit type in a terminal the following command:

{{{
mount /exports/{host}/{home}
}}}

== Useful Links ==

http://ubuntuforums.org/showthread.php?t=249889

http://tldp.org/HOWTO/NFS-HOWTO/

https://help.ubuntu.com/community/SettingUpNFSHowTo

http://www.linux-consulting.com/Amd_AutoFS/autofs-5.html