Ubuntu Linux: NFS Client Configuration To Mount NFS Share

Posted on in Categories Howto, Networking, Ubuntu Linux last updated June 4, 2006

NFS (Network File System) client allows you to access shared directory from Linux client. The computer sharing the directory is called the NFS server (it can be NAS server too) and the computers or devices connecting to that server are called clients. The clients need to use the mount command to access the shared directory.

Ubuntu NFS

You need to install nfs-command package as follows (open terminal and type the following command):
$ sudo apt-get update
$ sudo apt-get install nfs-common

Sample outputs:

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  libgssglue1 libnfsidmap2 librpcsecgss3 portmap
The following NEW packages will be installed:
  libgssglue1 libnfsidmap2 librpcsecgss3 nfs-common portmap
0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 333kB of archives.
After this operation, 1,126kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://archive.ubuntu.com/ubuntu/ lucid/main libgssglue1 0.1-4 [22.4kB]
Get:2 http://archive.ubuntu.com/ubuntu/ lucid/main libnfsidmap2 0.23-2 [29.1kB]
Get:3 http://archive.ubuntu.com/ubuntu/ lucid/main librpcsecgss3 0.19-2 [33.1kB]
Get:4 http://archive.ubuntu.com/ubuntu/ lucid/main portmap 6.0.0-1ubuntu2 [37.2kB]
Get:5 http://archive.ubuntu.com/ubuntu/ lucid/main nfs-common 1:1.2.0-4ubuntu4 [212kB]
Fetched 333kB in 3s (95.3kB/s)
Preconfiguring packages ...
Selecting previously deselected package libgssglue1.
(Reading database ... 161647 files and directories currently installed.)
Unpacking libgssglue1 (from .../libgssglue1_0.1-4_i386.deb) ...
Selecting previously deselected package libnfsidmap2.
Unpacking libnfsidmap2 (from .../libnfsidmap2_0.23-2_i386.deb) ...
Selecting previously deselected package librpcsecgss3.
Unpacking librpcsecgss3 (from .../librpcsecgss3_0.19-2_i386.deb) ...
Selecting previously deselected package portmap.
Unpacking portmap (from .../portmap_6.0.0-1ubuntu2_i386.deb) ...
Selecting previously deselected package nfs-common.
Unpacking nfs-common (from .../nfs-common_1%3a1.2.0-4ubuntu4_i386.deb) ...
Processing triggers for man-db ...
Processing triggers for ureadahead ...
Setting up libgssglue1 (0.1-4) ...

Setting up libnfsidmap2 (0.23-2) ...

Setting up librpcsecgss3 (0.19-2) ...

Setting up portmap (6.0.0-1ubuntu2) ...
portmap start/running, process 4193

Setting up nfs-common (1:1.2.0-4ubuntu4) ...

Creating config file /etc/idmapd.conf with new version

Creating config file /etc/default/nfs-common with new version
Adding system user `statd' (UID 116) ...
Adding new user `statd' (UID 116) with group `nogroup' ...
Not creating home directory `/var/lib/nfs'.
statd start/running, process 4416
gssd stop/pre-start, process 4441
idmapd stop/pre-start, process 4469

Processing triggers for libc-bin ...
ldconfig deferred processing now taking place

Task: See The List Of All Shared Directories

Type the following command:
$ showmount -e server-Ip-address
$ showmount -e 192.168.1.1

Sample outputs from my 192.168.1.1 NFS server:

Export list for 192.168.1.1:
/viveks
/Web
/Usb
/Recordings
/Public
/Network Recycle Bin 1
/Multimedia
/Download

Task: Mount Shared Directory

Now mount /viveks directory as follows>:
$ sudo mkdir /nfs
$ sudo mount -o soft,intr,rsize=8192,wsize=8192 192.168.1.1:/viveks /nfs
$ df -h

Sample outputs:

/dev/sda5              477G    25G   428G   6% /
none                   4.2G   398k   4.2G   1% /dev
none                   4.2G   377k   4.2G   1% /dev/shm
none                   4.2G   230k   4.2G   1% /var/run
none                   4.2G      0   4.2G   0% /var/lock
none                   4.2G      0   4.2G   0% /lib/init/rw
192.168.1.1:/viveks    491G   208M   491G   1% /nfs

How do I Access My Files Using NFS?

Just go to mount point i.e. /nfs directory with the cd command:
cd /nfs
ls
gedit file.c

How Do I Mount NFS Automatically After Reboot?

Edit /etc/fstab, enter:
$ sudo vi /etc/fstab
OR use gui text editor such as gedit:
$ sudo gedit /etc/fstab
Append the following line:

192.168.1.1:/viveks  /nfs  nfs   soft,intr,rsize=8192,wsize=8192

Save and close the file.

How Do I Remove Mounted NFS Directory (unmount NFS)?

Type the following command:
$ cd
$ sudo umount /nfs
$ df -H

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

Share this on (or read 36 comments/add one below):

36 comment

  1. Too complicated. All problems with different ports, processes, firewall, SELinux, etc is just too much. Compared to SSH, I cant help wondering why NFS isn’t more easy to install and use. Think fileserver functionality should have been easier that opening programs remote!? Sorry folks…

  2. the same problem as Junior: the nfs-common is not installing at:
    #apt-get install nfs-common
    i’ve tried to make un upgrade:
    #apt-get upgrade
    and the result is the same . the message for installing is:
    nfs-common is already the newest version but when it doesn’t create
    /etc/init.d/nfs-common.
    what should i do?

  3. Hi, the tutorial was great, got my nfs shares mounted atomatically at start on my netbook πŸ˜€

    One thing I did notice was that my boot time has been made much longer. Is there a way to delay the mounting of the nfs shares?

    Thank you πŸ˜€

  4. I have a debian machine as client, and a synology NAS as NFS server.

    The folders on the NAS are protected by user/pass.

    I cannot find anything on the web that tells me how i should send the user/pass along with the mount command πŸ™

    in windows i would just do \ipshare and then enter user/pass when promted. seems much easier

  5. In some cases even though you put an entry in /etc/fstab the share may fail to load. The networking must all be setup before it will work.

    Using _netdev does not always work either. The boot process with nfs4 and newer distros does not wait.

    You have to setup an rc script to mount nfs shares after network setup.

    1. Had same problem.

      I know its not ideal but for starters I have put the mount command in rc.local and had to add a ‘sleep 20’ command in the line above. Which gives me enough time to login and for wifi to connect. But fails if I don’t login straight away.

      Am looking at some sort of pinging/loop script which doesn’t mount the share until it receives a reply from return ping from NASBox

      1. Ok I think I’ve solved it, for those of you that are having problems getting it to mount at boot etc. Please let me know though if this is right as I’m no expert but mashed a few different ideas/scipts together including the above steps!

        Setup: I have a small mini-tower running FreeNAS 0.7* with nfs shares enabled – path = /mnt/share1
        static IP = 192.168.1.250

        I also have a laptop running Ubuntu 10.04 LTS connecting to the same network using wifi with a folder created to mount the share into:
        /media/share1

        Initially as above had a mount command in /etc/rc.local but because of the delay in logging in and connecting to the wifi, the script failed. I added the sleep command which worked but only if i logged in straight away.

        I then found a few scripts which involved pinging the NASBox and once a reply ping was recieved then it mounted the command. So with a few tweaks and with help from friends more in the know than me we came with this script:

        #!/bin/sh

        while true;
        do
        ping -c1 192.168.1.250 > /dev/null &&
        break;
        done

        mount -t nfs 192.168.1.250:/mnt/share1 /media/share1

        Called it sharemount.sh and made the script executable and ran it in terminal (as sudo of course) and it worked! So, the next step was to have it run at boot. For this I copied it into /etc/init.d and ensured it was still executable. Then I had to update-rc.d (not sure f thats the right way to say it!) the script and make sure it had the correct run-levels. I wanted it to run after network had started so:

        sudo update-rc.d sharemount.sh start 99 2 3 4 5 .

        Rebooted the laptop and the share appeared. It even showed up on the desktop before the wifi login display appeared!

        N.B. I know alot of the scripts are being slowly moved to upstart(?) but this worked for me so feel free to use it obviously because I know I’m not the only one with this problem. But also feel free to let me know if I have done anything wrong as I am still learning too!

  6. in ubuntu I cannot able to install nfs-common
    #apt-get install nfs-common
    nfs-common is already the newest version but when it doesnÒ€ℒt create
    /etc/init.d/nfs-common.
    I have tried even after removing nfs-common
    #apt-get remove nfs-common

    how to solve this problem.

    1. Hey C. Mahalingam
      try these steps:
      sudo -i (enter credentials)
      apt-get purge nfs-common
      apt-get autoremove
      apt-get update
      apt-get upgrade
      apt-get install nfs-common
      apt-get update
      apt-get upgrade
      then try mounting again

      Matt.

  7. Terminal produced this:

    [email protected] ~ $ showmount -e 192.168.2.149
    Export list for 192.168.2.149:
    /DataVolume/tvin *
    /DataVolume/Public *
    /DataVolume/Download *
    /DataVolume/acarburak *
    [email protected] ~ $ sudo mkdir /nfs
    mkdir: cannot create directory `/nfs’: File exists
    [email protected] ~ $ sudo mount -o soft,intr,rsize=8192,wsize=192.168.2.149:/DataVolume/public /nfs
    mount: can’t find /nfs in /etc/fstab or /etc/mtab
    [email protected] ~ $ df -h

    Can anyone help?

            1. [email protected] ~ $ df
              Filesystem 1K-blocks Used Available Use% Mounted on
              /dev/sda3 18263168 4084516 13250920 24% /
              none 484552 700 483852 1% /dev
              none 495360 248 495112 1% /dev/shm
              none 495360 372 494988 1% /var/run
              none 495360 0 495360 0% /var/lock
              /dev/sdb3 692358132 614644 691743488 1% /media/MEDYA
              /dev/sdb2 39062500 26080056 12982444 67% /media/OS X
              /dev/sda2 57617188 26519600 31097588 47% /media/NOSI
              [email protected] ~ $

  8. Hi ,
    I Created a NFS share in windows 2008 and i tried to mount it as in tutorial, everything went fine but when i access the directory it says “bash: cd: /nfs: Permission denied”
    I am able to see that mount using df -h.
    Please help..
    Thanks in advance

  9. bigj, your sharemount script works great! I’m running lubuntu w/wifi and NFS shares. I had some .bash login/logout scripts on 11.10, but it wouldn’t allow my pc to sleep/suspend.

  10. Thanks for this helpful tutorial! I’ve gone through about ten tutorials and this is the one that finally solved it for me. I didn’t realise that I had the NFS share name incorrect, but your step above to list that share fixed that for me.

    Fantastic article, still helping people 9 years after you wrote it!

Leave a Comment