NFS How-To
Update: 2017-01-06
Warn 1: for non-English, use samba/sshfs instead. unless win has NFS v4 or above which can solve non-UTF8 problems.
Warn 2: svchost
consumes 1.5GB ram, don't know why.
OBS
Combining simlink (ln -s
) with NFS may cause weird file path problems. We tried to have a link at NFS to Dropbox in nfs, also tried to have a link at home to mount point at /mnt. Both caused some minor path and file issues, but no series problems.
UBUNTU SERVER
apt-get install nfs-kernel-server && vim /etc/exports
<absolutePathFolderToShare> 192.168.1.0/24(rw,async,no_subtree_check,no_root_squash)
To run:
/usr/sbin/exportfs -a
service nfs-kernel-server restart
service nfs-kernel-server status
To change UID/GID when exporting, use all_squash,anonuid=xxx,anongid=yyy
. [serverfault]
To use usernames instead of IDs, use echo N > /sys/module/nfs/parameters/nfs4_disable_idmapping
. [serverfault]
UBUNTU AS A CLIENT
temporarily
apt-get -q install -y nfs-common && mkdir -p /mnt/nfsMountPoint
mount -t nfs serverIpOrDomain:/absolute/path /mnt/nfsMountPoint
- Option
-o nolock
can be used formount
, which disables file locking. This setting is occasionally required when connecting to older NFS servers. ref. - Use
umount
to unmount.
permanently
mkdir -p /local/nfsMountPoint
echo 'nfsServerOrIp:/absolute/path/ /local/nfsMountPoint nfs defaults 0 0' >> /etc/fstab
defaults
could be replaced by some of auto,nofail,noatime,nolock,intr,tcp,actimeo=1800
. [ ref1, ref2 ]
For Synology NAS, see the official tutorial.
WINDOWS 7 AS A CLIENT
set permission
To have write permission, we need to set userId:groupId
the same as server side.
Check server's /etc/passwd
for server side folder's owner, it is usually 1000:1000
(in decimal base) for the 1st non-root ubuntu user.
Modify window regedit (the win sys service should be started once to have this reg key):
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default]
"AnonymousUid"=dword:000003e8
"AnonymousGid"=dword:000003e8
(if the .reg is used after enabling win NFS feature, restart the windows service or reboot, then remount.)
enable
Enable the windows feature "Client for NFS". ref
mount
Run in cmd
(NOT powerShell !!!)
mount <serverIpOrDomain>:<absolutePathFolderToShare> Z:
# e.g.:
mount google.com:/home/abc/theFolder Z:
To unmount: use umount
, (ref)
Note: Persistent NFS mount (after reboot) is not an option with NFS. Also this scenario is not recommended and does not guarantee a sure shot solution (ref).
encoding problem (only in win???)
Description: files created in win with non-ASCII chars will become question marks '?' in linux, also when read again in win.
Solution: no way to solve, unless NFS v4. see super.user
To check nfs versions on server: nfsstat
To check on linux clinet: mount -v; nfsstat -m
ref
To check on win client: ???
RESTART
RESULTS
The right side drive (Z:) is NFS, which shows wrong space usage, and display speed is much slower than SMB (left side, Y:) when mounted in windows. For space usage, by default, ext2/3/4 filesystems reserve 5% of the space to be useable only by root, see ref.