How To Mount Nfs Share On Linux

How To Mount Nfs Share On Linux

Reading time1 min
#Linux#Networking#Storage#NFS#Sysadmin#Mounting

Mastering NFS Share Mounting on Linux: A Step-by-Step Guide for Seamless Network Storage Access

Forget complex, error-prone setups. Learn a streamlined approach to mount NFS shares that minimizes downtime and maximizes data accessibility, even in heterogeneous Linux environments.


Network File System (NFS) is a powerful protocol that allows Linux machines to share files and directories over a network transparently. For system administrators and developers, mounting NFS shares reliably unlocks efficient file sharing and centralized storage management, which are crucial when managing distributed environments or collaborative projects.

If you’ve ever struggled with configuring or maintaining NFS mounts on Linux — dealing with permission issues, network hiccups, or inconsistent setups—this guide is here to change that. We’ll walk you through mounting NFS shares from start to finish with clear explanations and commands you can apply immediately.


What is NFS and Why Use It?

NFS enables a client machine to access files over a network as if those files were on the local disk. This removes redundancy by centralizing storage:

  • Easy access to shared resources from multiple clients
  • Simplified backups and storage management
  • Efficient collaboration in development teams
  • Reduced disk space usage on clients

With that fundamental understanding out of the way, let's get practical.


Prerequisites

Before proceeding, ensure:

  • You have root or sudo privileges on the client Linux system.
  • The NFS server is properly configured with exports set.
  • Networking between client and server is functional.
  • nfs-utils or equivalent NFS client packages are installed:
sudo apt-get install nfs-common    # Ubuntu/Debian
sudo yum install nfs-utils          # CentOS/RHEL

Step 1: Identify the NFS Share and Server IP/Hostname

First, you need the server’s IP address/hostname and the exported path of the shared directory.

For example:

  • Server IP: 192.168.1.10
  • Exported directory: /srv/nfs/shared

If you have access to the server, you can see exported shares using:

showmount -e 192.168.1.10

Output might look like:

Export list for 192.168.1.10:
/srv/nfs/shared    192.168.1.0/24

Step 2: Create a Mount Point on the Client Machine

Pick or create a directory where you want to mount the NFS share:

sudo mkdir -p /mnt/nfs/shared

You can change /mnt/nfs/shared to whatever makes sense for your environment.


Step 3: Mount the NFS Share Manually (For Testing)

Mount the share temporarily using:

sudo mount -t nfs 192.168.1.10:/srv/nfs/shared /mnt/nfs/shared

Verify it’s mounted:

mount | grep nfs

Or simply check that directories/files inside /mnt/nfs/shared are accessible.


Step 4: Automate Mounting via /etc/fstab

To persistently mount the share across reboots, add an entry to /etc/fstab.

Open /etc/fstab with your favorite editor:

sudo nano /etc/fstab

Add this line at the end:

192.168.1.10:/srv/nfs/shared   /mnt/nfs/shared   nfs    defaults,_netdev  0  0

Explanation of options:

  • defaults: Use default mount options.
  • _netdev: Ensures mount only after network is available.

Then test by unmounting (if already mounted) and mounting all fstab entries:

sudo umount /mnt/nfs/shared
sudo mount -a

Step 5: Troubleshooting Common Issues

Permission Denied or Access Issues

Make sure user permissions match between client and server.

Check server /etc/exports file allowing proper access for your client IP/subnet.

Example entry on server side (/etc/exports):

/srv/nfs/shared   192.168.1.0/24(rw,sync,no_subtree_check)

After changes run:

sudo exportfs -ra

Firewall Blocking Ports

Ensure ports used by NFS (2049) are open on both client and server firewalls.

For example, on Ubuntu Server:

sudo ufw allow from 192.168.1.0/24 to any port nfs

Network Timeout Errors

Use mount options like timeo=14 (timeout), retrans=3 (retries):

Example in fstab:

192.168.1.10:/srv/nfs/shared   /mnt/nfs/shared   nfs    defaults,timeo=14,retrans=3,_netdev 0 0 

Bonus: Mounting with Specific NFS Versions or Performance Optimizations

By default, mount tries highest supported version of NFS (v4.x). To specify version explicitly e.g., version 3:

sudo mount -t nfs -o vers=3 192.168.1.10:/srv/nfs/shared /mnt/nfs/shared

Options like rsize, wsize control read/write buffer sizes for performance tuning:

sudo mount -t nfs -o rsize=8192,wsize=8192,nosuid,noatime,nodiratime \
     192.168.1.10:/srv/nfs/shared /mnt/nfs/shared 

Tune these based on your workload for max throughput.


Final Thoughts

Mounting an NFS share on Linux doesn’t have to feel daunting or fragile once you follow these straightforward steps:

  1. Confirm prerequisites & understand your shares.
  2. Manually mount to validate connection.
  3. Automate via /etc/fstab.
  4. Troubleshoot permissions & networking as needed.
  5. Optimize mounts based on environment needs.

By mastering this skill, you streamline workflows in distributed computing, collaborative development, and centralized storage—keeping teams productive with reliable data access at all times.


Have questions or tips about mounting NFS shares? Drop them in comments below! For more Linux sysadmin how-tos, stay tuned!