Lesson 5.2: Mount and unmount network file systems using NFS


NFS

Creating two servers

  • server
  • client

Server Configuration

[root@server ~]# hostname 
server
[root@server ~]# hostname -I 
192.168.205.100 192.168.206.41 

Client Configuration

[root@client ~]# hostname 
client
[root@client ~]# hostname -I 
192.168.205.101 192.168.206.17 

Configuring NFS Server to share folders (Not necessary for exams)

Creating files and folders in server

[root@server pis]# tree 
.
├── development
│   └── dev
├── research
│   └── res
├── support
│   └── sup
└── trainingl
    └── trn
 
# Install Required Package if not installed
[root@server pis]# rpm -q nfs-utils 
nfs-utils-2.5.4-25.el9.aarch64
 
# Start the Nfs service and enable 
[root@server pis]# systemctl start nfs-server.service 
[root@server pis]# systemctl enable nfs-server.service 
Created symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service /usr/lib/systemd/system/nfs-server.service.
 
# Allow nfs packets through the firewall 
[root@server pis]# firewall-cmd --permanent  --add-service={nfs,mountd,rpc-bind}
success
[root@server pis]# firewall-cmd --reload 
success
[root@server pis]# firewall-cmd --list-all 
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160
  sources: 
  services: cockpit dhcpv6-client http mountd nfs rpc-bind ssh
  ports: 
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
 
# Share the folders with appropriate permission 
[root@server pis]# cat /etc/exports
# Format
# <Path of the folder to be shared>		<allowed host>(<mount option>)
 
/pis/training	    192.168.205.101(ro)		192.168.205.102(rw)
/pis/support 	    192.168.205.101(rw,root,no_root_squash)
/pis/development    192.168.205.101(rw)
/pis/research	    192.168.205.101(rw)
 
# Here rw is read-write
# Here ro is read-only
# You can add as many hosts giving a space
# To allow all the host in the network class C , 192.168.234.0/24 
# To allow any ipaddress , write *(ro)
 
 
# Restart the service
[root@server pis]# systemctl restart nfs-server.service 
 
# If the folders to be shared are rw , then for the others you have to provide permission 
# You can give permission to others, but is not a good practice 
# A user will be created named 'nobody' when installing nfs-utils in server as well as client
[root@server pis]# grep nobody /etc/passwd
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
 
[root@server pis]# chown nobody /pis/{research,development,support}
[root@server pis]# ls -lh
total 0
drwxr-xr-x. 2 nobody root 17 Sep 30 03:12 development
drwxr-xr-x. 2 nobody root 17 Sep 30 03:12 research
drwxr-xr-x. 2 nobody root 17 Sep 30 03:13 support
drwxr-xr-x. 2 root   root 17 Sep 30 03:13 training
 

Client-Side Configuration [Accessing/Importing the NFS-Shared Folders]

# Installed Required Packages
[root@client ~]# yum -y install nfs-utils 
 
# Display the list of shared folder by NFS server
[root@client ~]# showmount -e 192.168.205.100 
Export list for 192.168.205.100:
/pis/research    192.168.205.101
/pis/development 192.168.205.101
/pis/support     192.168.205.101
/pis/training    192.168.205.102,192.168.205.101
 
# Access/Mount the NFS-Shared Folders
[root@client ~]# showmount -e 192.168.205.100 
Export list for 192.168.205.100:
/pis/research    192.168.205.101
/pis/development 192.168.205.101
/pis/support     192.168.205.101
/pis/training    192.168.205.102,192.168.205.101
 
[root@client ~]# mkdir -p /mnt/nfsdata 
 
# Temporary Mount 
[root@client ~]# mount 192.168.205.100:/pis/support /mnt/nfsdata
[root@client ~]# cd /mnt/nfsdata/
[root@client nfsdata]# ls
sup
[root@client nfsdata]# cat sup 
This is supports file !!
 
# Permanent Mount
# <NFS_Server_IP_or_Hostname>:<NFS_Share>  <Mount_Point>  nfs  defaults  0  0
[root@client ~]# vim /etc/fstab 
[root@client ~]# tail -1 /etc/fstab 
192.168.205.100:/pis/training		/mnt/nfsdata/nfstraining		nfs	defaults	0	0
 
[root@client ~]# systemctl daemon-reload 
[root@client ~]# mount -a
 
[root@client nfstraining]# ls
trn
[root@client nfstraining]# cat trn
This is training file !!
 
All systems normal

© 2025 2023 Sanjeeb KC. All rights reserved.