Linux NFS Export / share directory to other UNIX / Linux computer

by on July 12, 2007 · 7 comments· LAST UPDATED July 12, 2007

in , ,

Q. I’m using CentOS 5 Linux 64 bit version. How do I share directory called /data2 to all other UNIX / Linux computers?

A. NFS (Network file system) is both a protocol and file system for accessing and sharing file systems across a computer network using UNIX and Linux. NFS v4 is used in modern Linux distributions. It offers performance improvements, mandates strong security, and introduces a stateful protocol etc.

How do I export a directory with NFS?

In order to export or share directory called /data2, you need to edit a file called /etc/exports. The file /etc/exports serves as the access control list for file systems which may be exported to NFS clients.:
# vi /etc/exports
Add config directive as follows:
/data2 *(rw,sync)

Each line contains an export point and a whitespace-separated list of clients allowed to mount the file system at that point. Each listed client may be immediately followed by a parenthesized, comma-separated list of export options for that client.

Where,

  • rw - Allow both read and write requests on /data2 NFS volume
  • sync - Reply to requests only after the changes have been committed to stable storage

Save and close the file. Restart the nfs service:
# /etc/init.d/nfs restart

NFS client configuration

Client computer need to mount file system using mount command or /etc/fstab file, enter:
# mkdir /mnt/nfs
# mount -t nfs4 nfsserver-name-or-ip:/data2 /mnt/nfs

Read the man page for more configuration options:
$ man exports

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 7 comments… read them below or add one }

1 Balaji March 20, 2012 at 10:32 am

Thanks, your steps were so simple and worked for me. The only change I had to do was run this: “mount -t nfs nfsserver-name-or-ip:/data2 /mnt/nfs” in the last step(“nfs” instead of “nfs4″). My Linux was 32-bit platform.

Reply

2 sandy October 7, 2012 at 10:13 am

Worked perfectly for me too! THANK YOU

Reply

3 techno May 2, 2013 at 3:05 pm

The above information is actually for advanced admin who already knew what to do after..
This is for we the beginners:
1. make sure you have both the ipaddress and the hostname of the machine you want your directory to be shared with in /etc/hosts
2. The file is /etc/exports is not created by default so you have to create it by vi into /etc/exports. when you vi, this file will be created; now press the letter i on you keyboard wile you are in vi to put you in insert mode..
3. now enter the name of the directory or file that you want to share starting with a forward slash. tab once to enter the hostname or ipaddress of the machine whose name and ipaddress was entered in /etc/hosts followed by (rw, ro, sync)
for instance, /share chilly(rw,sync). in this example, /share is the directory that i want to share. chilly is the hostname of the machine i want to share /share directory with which must be in /etc/hosts file.. rw is the permission which is granted to chilly.. sysn is to reply to requests only after the changes have been committed to stable storage. save and exit vi.. now share the exports file bu running this command /usr/sbin/exportfs -a

Reply

4 Maulik May 3, 2013 at 11:10 am

It works but vanishes when the box is restarted? Any way to put /etc/init.d/nfs start in startup script? New to linux.

Reply

5 mg75 June 2, 2013 at 4:34 pm

any way to put /etc/init.d/nfs start in startup script?
chkconfig nfs on

Reply

6 vichithra June 12, 2013 at 7:18 am

/etc/init.d/nfs start
chkconfig –level 35 nfs on

Reply

7 Ashen July 4, 2013 at 11:57 am

Setup works. But got a problem. From the Client’s directory I want to get the permission to move files to another directory. How is it possible? with the current setup I cant perform it. Please help.

Thanks in advance.

Reply

Leave a Comment

Tagged as: , , , , , , , , , , , , , ,

Previous Faq:

Next Faq: