How to Configure NFS Client on Linux

nfsNetwork File System or NFS, is a server-client protocol for sharing files between computers on network. NFS server will enables it’s client to mount a file system on a remote server as if it were local to your own system. In this example, i will configure a nfs client on linux.

Prerequisites :
How to Configure Linux NFS Server on CentOS 6.2

NFS Server = centos62.ehowstuff.local
NFS Server Ip Address = 192.168.1.44

1. Install NFS client packages :

[root@NFS-Client ~]# yum install nfs-utils -y

Examples :

[root@NFS-Client ~]# yum install nfs-utils -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * Webmin: download.webmin.com
 * base: mirror.oscc.org.my
 * epel: mirrors.ispros.com.bd
 * extras: mirror.oscc.org.my
 * rpmforge: mirror.oscc.org.my
 * updates: mirror.oscc.org.my
CentOS5.8-Repository                                                         | 1.3 kB     00:00
rpmforge/primary_db                                                          | 7.1 MB     01:07
updates                                                                      | 1.9 kB     00:00
updates/primary_db                                                           | 503 kB     00:04
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package nfs-utils.i386 1:1.0.9-60.el5 set to be updated
--> Processing Dependency: portmap >= 4.0 for package: nfs-utils
--> Processing Dependency: libgssapi.so.2(libgssapi_CITI_2) for package: nfs-utils
--> Processing Dependency: librpcsecgss.so.2 for package: nfs-utils
--> Processing Dependency: libevent-1.4.so.2 for package: nfs-utils
--> Processing Dependency: libgssapi.so.2 for package: nfs-utils
--> Processing Dependency: nfs-utils-lib for package: nfs-utils
--> Processing Dependency: libnfsidmap.so.0 for package: nfs-utils
--> Processing Dependency: libgssapi for package: nfs-utils
--> Processing Dependency: libevent for package: nfs-utils
--> Running transaction check
---> Package libevent.i386 0:1.4.13-1 set to be updated
---> Package libgssapi.i386 0:0.10-2 set to be updated
---> Package nfs-utils-lib.i386 0:1.0.8-7.9.el5 set to be updated
---> Package portmap.i386 0:4.0-65.2.2.1 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================
 Package                Arch          Version                   Repository                     Size
====================================================================================================
Installing:
 nfs-utils              i386          1:1.0.9-60.el5            CentOS5.8-Repository          401 k
Installing for dependencies:
 libevent               i386          1.4.13-1                  base                          112 k
 libgssapi              i386          0.10-2                    base                           22 k
 nfs-utils-lib          i386          1.0.8-7.9.el5             base                           64 k
 portmap                i386          4.0-65.2.2.1              base                           37 k

Transaction Summary
====================================================================================================
Install       5 Package(s)
Upgrade       0 Package(s)

Total download size: 636 k
Downloading Packages:
(1/5): libgssapi-0.10-2.i386.rpm                                             |  22 kB     00:00
(2/5): portmap-4.0-65.2.2.1.i386.rpm                                         |  37 kB     00:00
(3/5): nfs-utils-lib-1.0.8-7.9.el5.i386.rpm                                  |  64 kB     00:00
(4/5): libevent-1.4.13-1.i386.rpm                                            | 112 kB     00:01
----------------------------------------------------------------------------------------------------
Total                                                               287 kB/s | 636 kB     00:02
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : libgssapi                                                                    1/5
  Installing     : portmap                                                                      2/5
  Installing     : libevent                                                                     3/5
  Installing     : nfs-utils-lib                                                                4/5
  Installing     : nfs-utils                                                                    5/5

Installed:
  nfs-utils.i386 1:1.0.9-60.el5

Dependency Installed:
  libevent.i386 0:1.4.13-1        libgssapi.i386 0:0.10-2     nfs-utils-lib.i386 0:1.0.8-7.9.el5
  portmap.i386 0:4.0-65.2.2.1

Complete!

2. Start NFS services :

[root@NFS-Client ~]# service portmap start
Starting portmap:                                          [  OK  ]
[root@NFS-Client ~]# /etc/rc.d/init.d/rpcidmapd start
Starting RPC idmapd:                                       [  OK  ]
[root@NFS-Client ~]# /etc/rc.d/init.d/nfslock start
Starting NFS statd:                                        [  OK  ]
[root@NFS-Client ~]# /etc/rc.d/init.d/netfs start
Mounting other filesystems:                                [  OK  ]

3. Make NFS services autostart at boot :

[root@NFS-Client ~]# chkconfig portmap on
[root@NFS-Client ~]# chkconfig rpcidmapd on
[root@NFS-Client ~]# chkconfig nfslock on
[root@NFS-Client ~]# chkconfig netfs on

4. create a mount point, by making a directory. Crete /shared folder as a mount point :

[root@NFS-Client ~]# mkdir /shared

5. Mount this /sharedfolder from NFS server on /shared mount point :

[root@NFS-Client ~]# mount -t nfs centos62.ehowstuff.local:/sharedfolder /shared
[root@NFS-Client ~]# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda3             11064148   1639860   8853180  16% /
/dev/sda1               101086     11653     84214  13% /boot
tmpfs                   517336         0    517336   0% /dev/shm
/dev/hdc               3831642   3831642         0 100% /mnt
centos62.ehowstuff.local:/sharedfolder
                      12941696   4879104   7405184  40% /shared

6. Open /etc/fstab file. Make entry for nfs shared directory and define /shared to mount point :

[root@NFS-Client ~]# vi /etc/fstab
LABEL=/                 /                       ext3    defaults        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
LABEL=SWAP-sda2         swap                    swap    defaults        0 0
centos62.ehowstuff.local:/sharedfolder /shared  nfs     defaults        0 0

How to Configure Linux NFS Server on CentOS 6.2

nfsIn this example, i will configure a nfs server on CentOS 6.2. Network File System or NFS, is a server-client protocol for sharing files between computers on network. NFS server will enables it’s client to mount a file system on a remote server as if it were local to your own system. It’s also then can directly access any of the files on that remote file system. Follow the following steps to install NFS :

Prerequisites :
How to Setup Local Yum Repository from CD-ROM/DVD-ROM image on CentOS 6.2

1. Install using yum command :

[root@centos62 ~]# yum install nfs-utils -y
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
 * base: mirror1.ku.ac.th
 * epel: mirrors.ispros.com.bd
 * extras: mirror1.ku.ac.th
 * updates: mirror1.ku.ac.th
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package nfs-utils.i686 1:1.2.3-15.el6_2.1 will be installed
--> Processing Dependency: nfs-utils-lib >= 1.1.0-3 for package: 1:nfs-utils-1.2.3-15.el6_2.1.i686
--> Processing Dependency: libnfsidmap.so.0 for package: 1:nfs-utils-1.2.3-15.el6_2.1.i686
--> Running transaction check
---> Package nfs-utils-lib.i686 0:1.1.5-4.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================
 Package                  Arch            Version                          Repository          Size
====================================================================================================
Installing:
 nfs-utils                i686            1:1.2.3-15.el6_2.1               updates            307 k
Installing for dependencies:
 nfs-utils-lib            i686            1.1.5-4.el6                      base                66 k

Transaction Summary
====================================================================================================
Install       2 Package(s)

Total download size: 372 k
Installed size: 922 k
Downloading Packages:
(1/2): nfs-utils-1.2.3-15.el6_2.1.i686.rpm                                   | 307 kB     00:02
(2/2): nfs-utils-lib-1.1.5-4.el6.i686.rpm                                    |  66 kB     00:00
----------------------------------------------------------------------------------------------------
Total                                                               103 kB/s | 372 kB     00:03
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : nfs-utils-lib-1.1.5-4.el6.i686                                                   1/2
  Installing : 1:nfs-utils-1.2.3-15.el6_2.1.i686                                                2/2

Installed:
  nfs-utils.i686 1:1.2.3-15.el6_2.1

Dependency Installed:
  nfs-utils-lib.i686 0:1.1.5-4.el6

Complete!

2. Uncomment Line 5 and change to your domain name :

[root@centos62 ~]# vi /etc/idmapd.conf
#Domain = local.domain.edu

Change to your domain. E.g ehowstuff.local :

Domain = ehowstuff.local

Save file with :wq and exit.

3. Create a /sharedfolder directory and grant full permission to it.

[root@centos62 ~]# mkdir /sharedfolder
[root@centos62 ~]# chmod 777 /sharedfolder

4. Open and configure /etc/exports file as below :

[root@centos62 ~]# vi /etc/exports

Share /sharedfolder for the network of 192.168.1.0/24 with read and write access

# write like below *note

/sharedfolder 192.168.1.0/24(rw,sync)

#Notes
#/sharedfolder --> shared directory
#192.168.1.0/24 --> range of networks NFS permits accesses
#rw --> writable
#sync --> synchronize
#no_root_squash --> enable root privilege
#no_all_squash --> enable users' authority

save file with :wq and exit.

5. Restart the nfs services :

[root@centos62 ~]# /etc/rc.d/init.d/rpcbind start
Starting rpcbind:                                          [  OK  ]
[root@centos62 ~]# /etc/rc.d/init.d/nfslock start
Starting NFS statd:                                        [  OK  ]
[root@centos62 ~]# /etc/rc.d/init.d/nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]

6. Make nfs services start at boot :

[root@centos62 ~]# chkconfig rpcbind on
[root@centos62 ~]# chkconfig nfslock on
[root@centos62 ~]# chkconfig nfs on

7. How to Configure NFS Client on Linux