HOWTO: NFS Server/Client

I found using NFS just as easy if not easier than using Samba for sharing between a few of my Unix based systems. In order to share a folder it only required a single line in a configuration file under /etc/exports, and a single line under /etc/fstab on the client to mount the share on each client at boot.

Install NFS Server Support

sudo apt-get install nfs-kernel-server nfs-common portmap
When configuring portmap do =not= bind loopback. If you do you can either edit /etc/default/portmap by hand or run:

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

You want to start the idmapd daemon. It is NOT only needed for NFSv4.


Editing /etc/exports
the /etc/exports file is used for creating a share on the NFS server

invoke your favorite text editor or
sudo nano /etc/exports

For Full Read Write Permissions allowing any computer from through

* /files,no_root_squash,async)

Or for Read Only from a single machine

* /files (ro,async)

My personal choice is:

/disk  ,no_root_squash,async,no_subtree_check,crossmnt,fsid=0)

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

Also aftter making changes to /etc/exports in a terminal you must type
sudo exportfs -a

Install NFS client support
sudo apt-get install portmap nfs-common

Mounting manually
Example to mount to /files. In this example is the name of the server containing the nfs share, and files is the name of the share on the nfs server

The mount point /files must first exist on the client machine.

cd /
sudo mkdir files

to mount the share from a terminal type

sudo mount /files

Note you may need to restart above services:

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

Mounting at boot using /etc/fstab
Invoke the text editor using your favorite editor, or
sudo nano /etc/fstab

In this example my /etc/fstab was like this:

server_hostname:/files /files nfs rw,rsize=8192,wsize=8192,timeo=14,intr

You could copy and paste my line, and change, and /files to match your server name share name, and the name of the mount point you created.
It is a good idea to test this before a reboot in case a mistake was made.
mount /files
in a terminal, and the mount point /files will be mounted from the server.

If you want to change permissons recursively on files and folders, you can run:
find /files \( -type d -exec chmod 775 {} \; \) -o \( -type f -exec chmod 664 {} \; \)

And do not forget, the NFS mount is originated from the server hence the directory permissions on the server will be used for client. The mount points do not follow the local server’s permission as they are not local.

Print Friendly, PDF & Email