Configure NFS Server on Arch | Manjaro | Garuda Linux

Network File System (NFS) client is a program that allows users to view and change files on a distant computer as if they were accessing their own local storage. It’s a distributed file system, and it’s used to act as a centralized filing system for a wide network of computers. NFS is a network sharing protocol that allows computers with various OS to share a network. The administrator can also choose which parts of the mounting information are accessible to client systems.

In this guide, we’ll go through how to install and configure NFS file sharing on Arch | Manjaro | Garuda Linux systems.

Features of Network File System (NFS)

  • To handle files bigger than 2 gigabytes (GB), 64-bit file sizes and offsets are supported.
  • On the server, support for asynchronous writes to enhance write speed.
  • In many responses, extra file characteristics to prevent having to re-fetch them.
  • When scanning a directory, a READDIRPLUS operation to retrieve file handles and characteristics along with file names.
  • Cloning and copying on the server.
  • I/O recommendation for an application.
  • Reservation of a space.
  • Block of data for the application (ADB).
  • NFS labeled with sec label to support any MAC security scheme.

Advantages NFS Storage

  • The same file can be used by several computers, allowing everyone on the network to access the same data.
  • Costs of storage are reduced. Networked computers exchange programs, eliminating the requirement for each computer to have its own local storage.
  • Because all users are reading from the same set of files, it promotes data consistency and dependability.
  • The mounting of the file system is transparent to the users.
  • Reduces the amount of time spent on system management
  • Supports a variety of settings
  • Allows users to access distant files in an unobtrusive manner.

Install and Configure NFS Server on Arch | Manjaro | Garuda

The methods below will be used to install and configure NFS Server on Arch | Manjaro | Garuda Linux.

Step 1: Update system packages

Before installing, make sure your system packages are up to date. Execute these commands:

sudo pacman -Syu

Step 2: Installation of NFS Server

After updating the system packages, run the following command to install nfs server on Arch, Manjaro and Garuda Linux.

sudo pacman -S nfs-utils

Now, start the installation process:

resolving dependencies...
looking for conflicting packages...

Package (1)     Old Version  New Version  Net Change

core/nfs-utils  2.8.2-2      2.8.2-2        0.00 MiB

Total Installed Size:  1.27 MiB
Net Upgrade Size:      0.00 MiB

:: Proceed with installation? [Y/n] y

Step 3: Start and Enable nfs service

Once the installation is complete, use the instructions following to start and activate the nfs service:

sudo systemctl enable nfs-server.service
sudo systemctl start nfs-server.service

Execute the following command to check if nfs is active and running:

$ systemctl status nfs-server.service
● nfs-server.service - NFS server and services
     Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; preset: disabled)
     Active: active (exited) since Tue 2025-02-25 18:09:18 EAT; 7s ago
 Invocation: 4592dbade27542d482b1f5936b19a9fa
       Docs: man:rpc.nfsd(8)
             man:exportfs(8)
    Process: 8341 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
    Process: 8342 ExecStart=/bin/sh -c /usr/sbin/nfsdctl autostart || /usr/sbin/rpc.nfsd (code=exited, status=0/SUCCESS)
   Main PID: 8342 (code=exited, status=0/SUCCESS)
   Mem peak: 1.7M
        CPU: 16ms

Feb 25 18:09:18 garuda.cloudspinx.com systemd[1]: Starting NFS server and services...
Feb 25 18:09:18 garuda.cloudspinx.com systemd[1]: Finished NFS server and services.

Step 3: Create and Export NFS share

Take a look at the following scenario:

  • /srv/nfs is the NFS root.
  • The destination is /mnt/music, and the export is /srv/nfs/music through a bind mount.

We are going to create a directory nfs under /srv and mount it to /mnt/music via bind mount:

sudo mkdir -p /srv/nfs/music /mnt/music
sudo mount --bind /mnt/music /srv/nfs/music

Nfs shares are defined in /etc/exports as below:

sudo vim /etc/exports

Once you open the /etc/exports file above add the following contents to create nfs shares:

/mnt/music  192.168.1.196(sync,rw)

The remote nfs client in this example is 192.168.1.191 which is a Manjaro (Arch) machine, and it will use the newly formed directory on the nfs server.

In the example above we can obtain the following:

  • Grants can read and write on the nfs share with the rw option.
  • Sync – Requires that any other action be preceded by the writing of modifications to the disk.
  • no_all_squash – Maps all client requests’ UIDs and GIDs to the same UIDs and GIDs on the nfs server.
  • All UIDs and GIDs from client requests are mapped to the anonymous user using all_squash.
  • root_squash – This property translates client-side requests from the root user to an anonymous UID / GID.
  • the nfs root directory is specified by the entry denoted by fsid=0.

Now export the created share with the command below:

$ sudo exportfs -arv
exporting 192.168.1.196:/mnt/music

In the above command:

  •  -a shows that all directories will be exported
  •  -r is for re-exporting all directories while
  • -v displays verbose output.

You may also use the command below to confirm the export list:

$ sudo exportfs -s
/mnt/music  192.168.1.191(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)

Step 5: Configure NFS Client

On the client side we are going to use Arch machine.

The commands following are used to configure the nfs client on Arch:

sudo pacman -Syu
sudo pacman -S nfs-utils

Now, start the installation process:

resolving dependencies...
looking for conflicting packages...

Packages (1) nfs-utils-2.8.2-2

Total Download Size:    0.38 MiB
Total Installed Size:   1.27 MiB
Net Upgrade Size:      -0.32 MiB

:: Proceed with installation? [Y/n] y

After installation is complete, start and enable nfs-client.target:

sudo systemctl start nfs-client.target
sudo systemctl enable nfs-client.target

Now check if nfs-client.target is active and running:

$ systemctl status nfs-client.target
● nfs-client.target - NFS client services
     Loaded: loaded (/usr/lib/systemd/system/nfs-client.target; enabled; preset: disabled)
     Active: active since Tue 2025-02-25 18:59:39 EAT; 13s ago
 Invocation: 08dacdfcff6841fbbb2e9fdbdc83a656

Feb 25 18:59:39 manjaro systemd[1]: Reached target NFS client services.

With the following command, we can now see mount information for the nfs server:

$ showmount -e 192.168.1.196
Export list for 192.168.1.196:
/mnt/music 192.168.1.191

We must now establish a directory in which to mount the exported file share. Use the commands listed below:

sudo mkdir -p ~/mnt/music
sudo mount -t nfs -o vers=4 192.168.1.196:/mnt/music ~/mnt/music

For persistent mount even after reboot, update fstab as below.

Open the /etc/fstab file as follows:

sudo vim /etc/fstab

Add the following contents to the file above:

192.168.1.196:/mnt/music   ~/mnt/music   nfs   defaults,timeo=900,retrans=5,_netdev	0 0

Create a test file in the nfs server share directory and check if the identical file exists on the nfs client to ensure that the nfs share is working. Create a test file on the nfs server like follows:

sudo touch /mnt/music/test.txt
sudo touch /mnt/music/main.py

On the nfs client, check for the file:

$ ls -l ~/mnt/music
total 0
-rw-r--r-- 1 root root 0 Feb 25 19:30 main.py
-rw-r--r-- 1 root root 0 Feb 25 19:33 manjaro.tf
-rw-r--r-- 1 root root 0 Feb 25 19:29 test.txt

Conclusion

That is all about this guide. On Arch | Manjaro | Garuda Linux, you have successfully installed and configured NFS server and client. I hope you found this guide useful.

Below are some other guides that you might find useful:

Your IT Journey Starts Here!

Ready to level up your IT skills? Our new eLearning platform is coming soon to help you master the latest technologies.

Be the first to know when we launch! Join our waitlist now.

Join our Linux and open source community. Subscribe to our newsletter for tips, tricks, and collaboration opportunities!

Recent Post

Leave a Comment

Your email address will not be published. Required fields are marked *

Related Post

GNS3 community is the world’s largest community of network professionals who love building better networks, sharing ideas and making connections […]

In this article we describe how you can remove a Storage Repository (SR) on XenServer / XCP-ng host when the […]

In this guide we will perform an installation of XCP-ng VM or guest tools on Ubuntu | Debian Linux system. […]

Let's Connect

Unleash the full potential of your business with CloudSpinx. Our expert solutions specialists are standing by to answer your questions and tailor a plan that perfectly aligns with your unique needs.
You will get a response from our solutions specialist within 12 hours
We understand emergencies can be stressful. For immediate assistance, chat with us now

Contact CloudSpinx today!

Download CloudSpinx Profile

Discover the full spectrum of our expertise and services by downloading our detailed Company Profile. Simply enter your first name, last name, and email address.