NFS
This page provides information on how to set up an NFS server on Debian Linux, and NFS clients on Mac OS X and Windows. My motivation to use NFS is that Samba is just too damn slow when I use it with the Mac OS X Finder.
Debian Packages
The following Debian packages need to be installed to be able to run an NFS server
nfs-kernel-server
References
- Configuration file reference
man 5 exports
- NFS on Linux Documentation
- http://nfs.sourceforge.net/
- Mount NFS share on Mac OS X
- http://support.apple.com/kb/TA22243
NFS and RPC
TODO
Server configuration
/etc/exports
This file contains the definitions of the file systems that should be exported by the NFS server. For details about its format, see man exports
.
/var/samba/media/DVD 192.168.1.0/255.255.255.0(ro,insecure,no_subtree_check,all_squash,anonuid=1000,anongid=1000)
Discussion of the options used:
- Path: The full path of the exported share must be specified
- NFS client specification: Address/Netmask specification can be used to restrict clients based on their IP address. Single hosts may also be specified, as well as other formats
- ro = Read-only
- insecure = Allow clients to connect with client ports above 1000. This is required at least for Mac OS X.
- no_subtree_check = Specifying this prevents a warning to be printed when the export is activated. I haven't thoroughly understood what this is for, but the man page recommends to use it: "[...] as subtree_checking tends to cause more problems than it is worth."
- all_squash: Force all access to be made with anonuid/anongid. If this is not specified, the client will connect with uid/gid local to the client; since this does not match any uid/gid on the server, access will fail.
- anonuid/anongid: Only numeric IDs can be used :-( I use the IDs for user/group = patrick/patrick.
After changes are made to /etc/exports
, they must be activated by either restarting the server, or updating the list of exported shares:
/etc/init.d/nfs-kernel-server restart exportfs -ra
Files in /etc/default/
The following files in /etc/default
are also involved in configuring various aspects of NFS. Currently I am happy with all default settings.
- /etc/default/nfs-kernel-server
- /etc/default/nfs-common
- /etc/default/portmap
/etc/hosts.allow, /etc/hosts.deny
Network access may be additionally configured via the following files:
/etc/hosts.allow /etc/hosts.deny
TODO: Find out whether this is really important, or whether the client specification in /etc/exports
is sufficient.
Authentication
TODO
Client configuration
Mac OS X
In the Finder
- Select "Goto > Connect to Server"
- Enter
nfs://osgiliath.lan.herzbube.ch/var/samba/media/DVD
- This will mount the share under
/Volumes/DVD
In Terminal.app
- Enter the following command to mount the share in a previously created directory
mount_nfs osgiliath:/var/samba/media/DVD /tmp/testnfs
- Unmount the share
umount /tmp/testnfs
Windows
TODO