Link to home
Start Free TrialLog in
Avatar of J.R. Sitman
J.R. SitmanFlag for United States of America

asked on

How do I connect my Linux Desktop to my Linux server

I want to map a drive from the server to the desktop.   How do I connect the two together?
Avatar of Seth Simmons
Seth Simmons
Flag of United States of America image

in linux, you don't map drives as you would in windows; there are mount points
the share of the server is 'mounted' to an empty folder on the client - similar to a mount point in windows with a local volume mounted to an empty folder in disk management

here is a good article that discusses it

How To Set Up an NFS Mount on Ubuntu 20.04

https://www.digitalocean.com/community/tutorials/how-to-set-up-an-nfs-mount-on-ubuntu-20-04
Avatar of J.R. Sitman

ASKER

In reading the article it states to create a line for each directory and use the client IP.   When I ran IP addr show on both the server and client (which I cloned from the server) they both have the same IP.

I am presuming I need to change the IP of the cloned server?   How?
When I ran IP addr show on both the server and client (which I cloned from the server) they both have the same IP.

ok...need to take a step back here
you have 2 machines with the same IP address?  that is problem #1
what version of ubuntu are we working with and are they both desktop versions?
you initially said client and server which tells me you have an Ubuntu client (with gui desktop) and an Ubuntu server (no desktop)
first make sure nfsd is running along with rpcd and statd

more /etc/exportfs
to see what you are "sharing"

then on the client side
you would use
mount -t nfs ipofserver:/sharename /local/mount/point

If this is needed for server, you could look at autofs auto.master etc. to setup the mounting of the correct share based on the user login.

Are the systems centrally managed by NIS, OpenLDAP?
Also, I do not understand what I need to do here?

We’ll need to create a line for each of the directories that we plan to share. Be sure to change the client_ip placeholder shown here to your actual IP address:

/var/nfs/general    client_ip(rw,sync,no_subtree_check)
/home               client_ip(rw,sync,no_root_squash,no_subtree_check)
Running Ubuntu 20.04.

I have a Server installed, I cloned that server for testing.   I then cloned that one and called it Server Client

I also, have a Desktop installed.

Also please note this is my first experience with Linux.    I have a job interview next week and I just need to know the basics.   Then I can tell them I took the initiative to learn the basics and I am will to learn in more detail.
I ran /etc/exportfs and it states no file or directory
in /etc/exportfs

/home 10.0.0.12(rw,sync,no_root_squash,no_subtree_check)

This says the server shares /home with a system that has IP 10.0.0.12 the maping will have read-write rights. ROOT is  permitted to load/access it will not check the subtree

This may help
https://www.golinuxcloud.com/unix-linux-nfs-mount-options-example/#:~:text=root_squash%20vs%20no_root_squash%201%20If%20you%20read%20the,privileges%20on%20remote%20NFS-mounted%20volumes.%20More%20items...%20

you can also define an IP segment by leaving

lets try it another way. provide an example of what you need to share and with whom.


note the NFS is enforced based on UID's and GIDs

such that if you do not have a central management directory

on the server
someuser UID=1024, GID=1234
while the client has
anotheruser UID=1024 GID=1234

anotheruser will appear on the server as someuser when accessing an NFS share.
/etc/exports is a file it is not a command
exportfs -a is the common to update the nfsd server for changes related to the NFS name space.


what system are you using on the server and on the desktop?
So you understand I am a Windows IT Director.    This is my first attempt at Linux.

I installed the servers and desktop using VirtualBox.

What I am trying to accomplish is lie we do in Windows to map a drive on the Desktop so it can access files on the Server.
which linux OS did you install? Ubuntu, centos, linuxmint?

Do you access via virtual box as a console login?
is it graphical like your windows, or is it a command line similar to a dos window like interface?
posted answer to the wrong question
Ubuntu.
Via Virtualbox

I did install the GUI.

Also, thanks for your patience
ok. first thing lets confirm the two are on the same network.
on each one. in a terminal window
ifconfig -a
on each.
they likely are on a private network among the host virtual box and the VMs.

The following deals with setting up the server
https://www.tecmint.com/install-nfs-server-on-ubuntu/#:~:text=Installing%20and%20configuring%20NFS%20Server%20on%20Ubuntu%201,...%205%20Allow%20NFS%20Access%20through%20the%20Firewall

makes sure the required components are installed and configured to run.

The following might be a more apt example that goes and sets up  for both server and client

https://linuxize.com/post/how-to-install-and-configure-an-nfs-server-on-ubuntu-20-04/
They are both on  192.168 network
Also ifconfig does not work.   I used IP address
please consider looking at the last link provided it deals likely with the version you installed, 20.10 The instructions while referencing a 20.04 version the general guide should apply.

this will help you deal with the server, which is the one you choose to share the resources.
Then it deals with authorizing the client explicitly then following the other and using the setup to access the resource.

in the example
you can share /home but a user can only access their portion of the shared space .

using the guide may help as well if you run into an issue, there is a common reference on whose basis you are trying to setup.
Sorry not being complete, ifconfig is an administrative and might not be in the path. not as familiar with which GUI tools, I think it is part of settings.
sudo ifconfig -a

sudo is the tool to elevate your rights to the administrator user, root.
Thanks.   I will go through it this weekend.

Take care
I tried that.   An article I read said ifconfig was replaced with IP
Simple solution is to use sshfs.

I avoid NFS/AFS/DFS like the plague.

echo "$pass" | sshfs user@$host:/ -o password_stdin -o StrictHostKeyChecking=no -o ServerAliveInterval=5 -o workaround=rename /mnt/$host

Open in new window


Just setup an ssh login, either with a key + passphrase, or empty passphrase, or a normal Linux user/pass.
Let me get through the NFS server, first
1) In reading the article it states to create a line for each directory and use the client IP.

Er... bad article... This is exactly backwards...

You have a server, with files.

Then clients (or other servers, which are acting as clients) mount the server files, in the case above using sshfs.

2) When I ran IP addr show on both the server and client (which I cloned from the server) they both have the same IP.

This will likely require another question, as "cloned" is not the correct way to install a any client or server.

You'll do a fresh install of the OS, doing setup of networking, based on the installation wizard prompting for input.

3) I am presuming I need to change the IP of the cloned server?   How?

Better to do a fresh install, so IP setting occurs through prompts.
Before starting with NFS, do a fresh install on your "cloned" machine first.

Otherwise, you run the possibility of fighting with many subtle problems which will effect NFS + have nothing to do with NFS (no amount of NFS debugging will help).
When I get to the bind portion it states.    "mount /srv/nfs4/backups: special device /opt/backups does not exist"

First create the root directory and the share mount points:

sudo mkdir -p /srv/nfs4/backups
sudo mkdir -p /srv/nfs4/www
CopyCopy
Bind mount the directories to the share mount points:

sudo mount --bind /opt/backups /srv/nfs4/backups
sudo mount --bind /var/www /srv/nfs4/www

In this example, we’ll set the /srv/nfs4 directory as NFS root. To better explain how the NFS mounts can be configured, we’re going to share two directories (/var/www and /opt/backups) with different configuration settings. The /var/www/ is owned by the user www-data, and /opt/backups is owned by root.

First create the root directory and the share mount points:

sudo mkdir -p /srv/nfs4/backups
sudo mkdir -p /srv/nfs4/www
CopyCopy
Bind mount the directories to the share mount points:

sudo mount --bind /opt/backups /srv/nfs4/backups
sudo mount --bind /var/www /srv/nfs4/www
Thanks for the advice I did do a fresh install. And I deleted the old server.

On the directors did I create it. Do they automatically become shared like they do in windows? Because what I tried To Vine them it says if they don't exist. When I use the ls command I concede that the directories are thereThey need to be shared
Excuse the titles on my phone I am talking about directories not directors
here is a way to answer your question.

if you shared a folder and then create new folders within, they are accessible based on the primary
i.e.

/home *(rw,no_root_squash)

mount -t nfs serverIP:/home /mnt
the user will have /home and anything within.
note that the remote Server is the enforcer of access rights based on the UID/GID of the user on the local system.
usera UID/GID 1234/501

now you on the server, in /home create several folder with permissions
myuserfolder usera UID/GID 1345/501 permissions drwxrwx---
myotheruser userb UID/GID 1234/502 permissions drwxr-x---
yetanotheruser userc UID/GID 1528/501 permissions drwx------

now back to the client
userA will be allowed access to the myuserfolder and myotheruser folder.
the first is because of groupmembership and the second because of the owner, GID 1234.

This is akin to having a peer to peer network where you have to go to each system and make sure it has a usera with password passwordA on the client system where the user logs in as well as on the system designated as the server such that the server will have all users in the environment while the individual system might only have one user that uses it.

if you create a folder outside the /home path, /work you would have to add it separately to the exportfs file in the same way on windows you would have to share it individually.

you may need to add detail to your question if the above is not what you asked or not helpful to what you have in mind.
Here is how I created the shared directory

sudo mkdir -p /srv/nfsa/

Whatever method I use to mount the directories states that they do not exist.   "can't find in /etc/fstab

I tried yours mount -t nfs 192.168.0.178:/home /srv

When I run pwd and them ls, I can see all the directories I created.  srv, nfs4, backups, opt, www

I think I am asking the correct questions

Thanks for helping
The /srv location must exists before you can mount over it.

The mount does not auto-create the mounting point.
I.e. You have to put the nail in the wall before you can mount a picture at the location.

On the client
sudo mkdir /srv
sudo mount -t NFS 192.168.0.178:/hone /srv
Should now work.
The access enforcement is on the NFS server.
If you see in my post I listed all directories that I can see. I can see them all I just can't mount them
where are you mounting them from?
please post the exportfs file
as well as the output to

ps -ef | grep nfsd

the other possibility is that you have the linux firewall enabled  and it is blocking the access.

on the client what error do you get?
on the client side when you run
mount -t nfs 192.168.0.178:/shared_directory_name /mount_point_reference_which_must_exist
if it mounts but you are getting an error when trying to
cd /mount_ppoint_reference_which_must_exist
what error, access denied?
At which point you are getting an error?
after you mount the NFS share, the permissions might be the issue
ls -l / | grep srv
if this is the mount point you are still using. what are the permissions there? does it only have owner drwx------ with root as the owner of the mount point?

There are many possibilities, but only you can provide visibility to what you have in order to determine the next step that may help address the issue.

can you from the client ping the 192.168.0.178 can you from the server ping the client system ip?
I cannot find the exportfs file.
output.jpg
often it is in /etc/exports

sorry, typoed the file should be /etc/exports

the issue at times deals with formating.
/home<tab>*(rw)

at it does not work well with space, or other spacing issues
on the server run, exportfs
it should report out what is being shared and with which systems.
Sorry did not mean to post the last one.

I have tried mounting from the Filer server I made and from the Desktop.  When trying to mount from either error is exactly the same.  See attached.

See attached screenshot fstab

This command does not work.   However, I am not sure exactly what characters they are?   Letter I, letter l.   Please advised.  ls -l / | grep srv

I can ping the server from the desktop and from the server I can ping the desktop

I cannot find the exportfs file.  I did find export.   see attached

Output attached

User generated image
User generated image
User generated image
User generated image
Cannot find exportfs
the file is /etc/exports
exportfs is a command that is run in the terminal to report what is being shared
and exportfs -a to update NFSD following a change to the /etc/exports file

The exports file needs to be from the server not the client/desktop
In windows equivalent you would run net share on the server side to list the shares the system is sharing
this is the equivalent to exportfs on the server.


/etc/fstab is the system drive/partition loading information.

You need a space between the NFS part and the mount point.


mount -t nfs 192.168.0.178:/home /srv

without the space, it seems it tries to match the reference from /etc/fstab to determine where to mount it.
The export files was attached.

There is a space between nfs and the mount point.

See attached

User generated image
your image reflects no separation between the source and the mount point. what are you sharing

# is a comment, anything that follows is ignored.
the image of /etc/exports whose image you posted is technicallly blank all I see are commented lines.

list contents ls
option in list format -l small l.
the separator is a pipe verticle | shift+\
same thing as in windows when you want to pass output from one command as input data to the next one.
I copied and pasted your mount command and it still gets the same error.   can't find in etc/fstab.

I understand that the export file is "blank".   I'm trying to figure out why.   What am I doing incorrectly?

Attached are the results from the grep command

User generated image
I tried to edit the fstab file and got permission denied.   Maybe that is the issue?   See the permissions for the etc folder

User generated image
Why are you searching for etc?
The question is whether in the client side you have srv available as a mount point.
I thought all the available mounts were stored in the fstab file
fstab is the permanent information the system mounts when it boots up.
after you confirm your client/server setup you can add the NFS mount into fstab to be loaded at bootup.
the point is that until you make sure the NFS server is setup and the client can access it. adding it into fstab will cause you a delayed boot
it will hang until the timeout is reached to give up on trying to mount the NFS share.

in the fstab
192.168.0.178:/home/  /srv  NFS  options_soft_hard...


IMHO, lets complete one thing first. Setup the server for NFS shares and access of that share from the client.

Then you can add it to the fstab
and test the next thing with nfs.
Good morning:

I 100% agree with you that NFS shares should be the first step.    Exactly what do you want me to do?
Hi,

On the server
run the command exportfs

does it reflect a line indicating that /home is being shared and the parameters underwhich it is sharing it i.e.

/home          192.168.0.a(rw,no_root_squash)

this indicates that /home is available for a system that has an IP of 192.168.0.a with read-write access including root user if the no_root_squash option is not included, while root is permitted to mount the share, it will not be authorized to access any data from the client side/remotely (similar to having an explicit denial of access to Administrators on a share settings view)


once that is done.

on the client side that has the IP 192.168.0.a, we try to access this share
server IP 192.168.0.178
to be sure that we have the mount point
sudo mkdir /srv
sudo mount -t nfs 192.168.0.178:/home /src  
df -k
does it list /srv in the results from the above command?
if it does, it confirms that the NFS share from the server is mounted on the client.
This clears the initial two configuration settings of the NFS server and authorization for access by the client.

the next step step is whether the non-root user that you are loged in with on the client is able to access data within the /srv chain
list directory (lower case all LS -L | GREP SRV )
needs to see what it has
drwx..    <owner> <grooup> mount_points size srv

if it is not permitted
id <username>

noting the UID and GID reported for the username on the client side
and then comparing whether the UID/GID is authorized on the server side.
does a user with this exist UID and similary GID
The link I posted earlier that has both the server and client setup guides/referemce....
Is it used or you are trying to use another guide?
When I run exportfs nothing happens?
that means you have not shared anything in the file /etc/exports on the server

this is where you need to add
/home *(rw,no_root_squash, no_suptree_check)

once you save the file, run exports -a
then run exportfs to confirm the above line is listed.
if it is listed, the NFS server has a path that is being shared.

try access on the client and see whether we are getting further
I added the line.   changed you typo from suptree to subtree.

When I type sudo exports -a it states command does not exist
sudo exportfs -a
sudo exportfs
should return the line item
sudo exports returns   /home <world>.

Attached is a screenshot of the exports file

User generated image
The screen grab cuts off on the left side. but I think I see the top right end to the slash.

ok, now you have to tell NFS server that a change has been made to the exports file by running sudo exportfs -a
then you run sudo exportfs
to see whether it reflects the shared /home entry you added.
after running sudo exportfs is shows /home  <world>
ok, now lets test the access from the client side.

sudo mkdir /srv
sudo mount -t nfs 192.168.0.178:/home /srv

df -k

to see if there is a  /srv listed there (this confirm NFS server function and ability of the client to load NFS resources)

all small letter and spaces between groupings
LS -L     /srv

what do you see?
if you have folders seen, change to one no matter which
cd /srv/<somefoldername>
see what happens
do you get an error access denied?
I just want to make sure talking about the same thing will you say client side your talking about the server that I made as a file server not the desktop Linux correct
Client is the desktop where you want to access the share made available by the server.

Are you considering doing a mapping
On the server map a new drive j: as \\thesameserver\sharename?
Mapping a drive sounds like a great idea created let's get through this 1st section. I'm out right now so to be a couple hours or maybe tomorrow before I could check it
when I run df -k I do not see /srv
When I run ls -l I get total 0
On the desktop Linux that is not the one where we were working before.
Ip other than 192.168.0.178

sudo mkdir /srv
sudo mount -t nfs 192.168.0.178:/home /srv
Provided no errors you now mounted the remote share on the location of /srv

The equivalent is adding an extrnal storage instead of as a drive letter g:, you use a path such as d:\an_external_drive


cd /srv
Now you are in the server share space and see what you can access.
Sorry, I do not know what you want me to do?
You gave two systems in virtualbox we are working with.
1) your designated server that hosts the NFS share (task completed)
2)?the desktop Linux environment where you want to access a share from the server. (Next step)

Now on the 2nd desktop Linux system the goal is to see whether the NFS share is accessible.

In a terminal window we need to prep the client's filesystem structure to meet the need for mounting the share
1) create a mount point /srv
      sudo mkdir /srv
2) mount the server's NFS share over a point referenced in 1 of this section.
       sudo mount -t nfs192.168.0.178:/home /srv
3) now is the time to see whether the permissions on the local mount point post attaching the share. Using command to list directory contents.
This tests navigation and rights
Then you can try creating a file or reading an existing file. This will test NF/ server rights for the user based on the local uid/gid of the user and whether this uid/gid exists and is authorized on the server for this NFS share.
Not dissimilar how you would troubleshoot access to a shared resource in Windows where you can map a drive.
But then you can not write/create file (sharing settings) or you can not read files, access  denied (security settings for your user)
Good morning:

I did #1.   #2  states "can't find in /etc/fstab/"
Ok,

add the following to /etc/fstab
The space is a tab
192.168.0.178:/home /srv. NFS defaults
Save
Run mount -a
then run mount


You know, run
alias mount
Trying to see whether it mount translates to something else

Or try
sudo /bin/mount -t nfs 192.168.0.178:/hone /srv

One of these should work.

Make sure to comment out the entry in /etc/fstab by placing # as the first character on the NFS line)
When I add the 192.168.0.178 to the fstab file it fails.   I used the UUID instead.

When I added /home/srv it states that it does not exist.    So I just added /srv and it works with mount -a then mount

I guess I added /srv to the root instead of /home.

So it looks like we are making progress.

Let's proceed.
Note from the client (desktop) I cannot mount the directory.
If I use mount -a instead of mount -t I get no errors.  So I believe it is mounted.
you can confirm by looking whether /srv is accessible, available.

UUID from where?

the NFS share

please repost the /etc/fstab text as well as the output of mount
df -k

mount is the command to attach a resource to the filesystem.
mount -a tells mount to load all entries in /etc/fstab
mount -t is a specific individual command to load a specific type of data from a source for use until the system is rebooted.
-t secifies the type of data in your case nfs tells it that the data is NFS share. the -t can be omitted an mount will try to geustimate what is the type of the data and act accordingly
-t ext2 ext3 to indicate which datatime is being access.....

unfortunately, no equivalent in MS as it determines the underlying datatype when attaching an external source.
i.e. fat32, ntfs, exfat, etc. when a USB/CDrom, DVDrom are inserted.


are you able to use the file tool on the desktop to access the /srv location and contents?
Screenshots attached.   UUID from fstab file



From the "files" on the desktop client, I cannot see the folders created on the server
Please identify which is the file server (where the /.etc/exports files are) and which is the Desktop linux.

What I am seing is that / /home and /srv are

mounting file by UUID it looks as you mounted the same resource four different times

entries in /etc/fstab are used on bootup (system startup) to access the resources available to the system.

I do not understand why you are adding the same resource three additional times at different mount point /home /srv /home/Executive

it would be the same of having a single HD included as C: D: and E: drives (if it were possible)


Comment out the entries in fstab below the swap space definition.

once exportfs on the File server is reflecting that it is sharing /home
we are done with that system until we can determine whether the client Desktop linux environment can access the NFS share, or get errors that may help point to what is wrong.

.
Files server.  /dev/sda2: UUID="51b4df53-3fc3-4560-a346-a7f045aaafbd" TYPE="ext4" PARTUUID="e839c7b0-1231-40d0-af03-002da905bf21"
192.168.0.178

Desktop
/dev/sda5: UUID="51db9c77-6fa0-4599-aa3a-52047cc1af1f" TYPE="ext4" PARTUUID="0f9da0cc-05.
192.168.0.106"

I am trying to learn.   I only show the mounts listed once each.   one for /home/Executive and one for /srv
I have commented out all lines below swap.

When I run exportfs nothing happens
After changing /etc/fstab and running mount -a and them mount, it still shows /home/Executive and /srv in the mount
changing /etc/fstab and running mount -a is a one way to mount what is missing.

it is not a process to dismount

to dismountunmount
umount /srv
umount /home/Executive
ok they are unmounted
are you now using the Linux desktop designated as the client

and try to have the NFS remotely mounted?

on the system other than the server

either add the entry
/home /srv NFS defaults
and then run sudo mount -a

or use the mount command,
sudo mount -t nfs 192.168.0.178:/home  /srv

and see where you are with this process.
Add where?

either add the entry
/home /srv NFS defaults
and then run sudo mount -a

When I use the mount -a command from the client I believe it is successful.   How do I test it?
on the VM you assigned as the Desktop Linux /Client system.

/etc/fstab
It states NFS mount point does not exist
run
sudo mkdir /srv

and try again.
could you post the command you are running or theentries you have made and the error.
these are text if you can copy and paste versus images....
The directory /srv already exists on both machines.

From every article I've read you have to put the mount entry in the /etc/fstab on the server.   I did put them in and then you told me to comment them out.

You do not realize this is my first time I've tried to learn Linux.   When you give me instructions you need to be specific.

I am running the command exactly as you give them to me.

I appreciate all your help but it seems like we are getting nowhere.
I am not sure which articles you are covering

entries go into /etc/fstab are permanent storage resources that are mounted

usually you can mount a resource temporarily.
using mount

the mount point need only exist on the system where it will be used.
I tried to be as specific as possible by limiting which system we are talking about.

Thus my prior request for you to identify which or how you refer and distinguish between the system you designated as the file server where the NFS share is
and the Desktop linux that will be trying to access that share. as the client.

The system that shares a resource is the Server
the System that accesses and uses the resource is the client.

Any system can be both a client and a server
server for ItemA
and a Client for Category B

Lets try this way:
what is the name of the system that has the IP 192.168.0.178?
What is the IP and name of the other system?
file server is ubuntufile

desktop is ubuntudesktop 192.168.0.106
ok. so to confirm we have the NFS server setup and ready to share /home
on the ubuntufile
run sudo exportfs
to confirm the /home share

now on the client, ubuntudesktop
sudo mkdir /srv
sudo mount -t nfs 192.168.0.178:/home /srv
what happens after this is run?
df -k
does an entry with /srv reflected there?
or post the output of df -k from the ubuntudesktop
I do not think /home is shared anymore.

I ran sudo mount -t  /home

Then I ran sudo exportfs and nothing happens

I ran sudo gvfs-mount -1 and /home is not there
Please be specific where you are running what.
on the ubuntufile
run sudo exportfs

ps -ef | grep nfs
just to confirm nfsd is running on the system in the event it is not running by default
what is being reported there?
if the above reports /home all(rw...)

on the ubuntudesktop
run
sudo mkdir /srv
sudo mount -t nfs 192.168..0.178:/home /srv

what do you get in response

The scenario we are testing is: You are adding a new server to share a sharename somespace with client
net share will report the available shares on the system this is the equivalent of sudo exportfs on the ubuntufile side.

You then go to the client, and attempt to map a drive to that server\somespace. the net use is a way to list the mapped drive or UNC

this is the equivalent on the ubuntudesktop df -k to see list of mounted storage space.
what you are looking for is the  /srv entry
I ran exportfs again and got this.

exportfs: could not open /var/lib/nfs/.etab.lock for locking: errno 13 (Permission denied)
when you are logging in with a standard user (not using root)
you need to prefix the command with sudo to elevate your rights
sudo exportfs
Sorry I forgot that ill try later
Ok I ran sudo exportfs and nothing happens
You ran sudo exportfs on the ubuntufile and it return no info info, it did not show that /hone is NFS shared?
Pkease on the ubuntufile check whether nfsd is running.
Please look on ubuntufile /etc/exports to make sure the entry
/home *(rw,no_root_squash,no_subtree_check)

If it is there, run
sudo exportfs -a
sudo exportfs
To make sure the entry is reflected.

Then try the steps to mount the share on the ubuntudesktop system (use sudo mount -t NFS 192.168.0.178:/hone /srv)
when I run nfsstat -s I get  

calls      badcalls   badfmt     badauth    badclnt
0          0          0          0          0      

I also ran this.

root@ubuntufile:~# dpkg -la | grep nfs

ii  libnfs13:amd64                        4.0.0-1                             amd64        NFS client library (shared library)
ii  libnfsidmap2:amd64                    0.25-5.1ubuntu1                     amd64        NFS idmapping library
ii  nfs-common                            1:1.3.4-2.5ubuntu3.3                amd64        NFS support files common to client and server
ii  nfs-kernel-server                     1:1.3.4-2.5ubuntu3.3                amd64        support for NFS kernel server
root@ubuntufile:~#

Is this what you need?
have you tried connecting the client, ubuntudesktop to the share?
dpkg is the equivalent of openting prorgrams and features to get a list of installed apps.

I provided the commands whose outputs I was interested in.
sudo exportfs
to see whether the NFS share is reflected in the output
the example we set was the simplest, option no complication from NFS3/4

on the client, ubuntudesktop
sudo mkdir /srv
sudo mount -t nfs 192.168.0.178:/home /srv

df -k
that is all the output I am looking for and the response from running the commands.
I ran sudo exportfs again.  it "does not" show /home is shared.   It displays nothing
check on ubuntufile contents of /etc/exports

confirm nfsd is running by running in all lower case verticle line is the PIPE shift+\
PS -EF | GREP NFS
ran the command and got

jrsitman@ubuntufile:/root$ ps -ef | grep nfs

jrsitman    2311    2168  0 18:11 pts/0    00:00:00 grep --color=auto nfs

# /etc/exports: the access control list for filesystems which may be exported
#               to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
#
/home *(rw,no_root_squash,no_subtree_check)
/Executive *(rw,no_root_squash,no_subtree_check)
your NFSD daemon is not running ubuntufile

to enable nfsd to run when the system starts
sudo systemctl enable --now nfs-server
run ps -ef | grep nfs
to confirm it is running.
sudo exportfs
to confirm the two folders are listed

then try the access on ubuntudesktop

you can then on the ubuntufile run the nfsstat -s to see whether your attempts from the ubuntudesktop are reflected in the reported stats.
see below

jrsitman@ubuntufile:/root$ sudo systemctl enable --now nfs-server

[sudo] password for jrsitman:
Job for nfs-server.service canceled.
jrsitman@ubuntufile:/root$
sudo seeks to confirm

start fsd
jrsitman@ubuntufile:~$ sudo service fsd start

Failed to start fsd.service: Unit fsd.service not found.
jrsitman@ubuntufile:~$
did you see my last post?
sorry, did not notice the typo. you need nfsd running. the prior post you ran ps -ef | grep nfs and it found none.

unless nfsd is running, the share is not made available.
OK I will try later
failed  I do not think the service is installed.   See below which lists all the services running.

jrsitman@ubuntufile:~$ sudo service nfsd start

[sudo] password for jrsitman:
Failed to start nfsd.service: Unit nfsd.service not found.
jrsitman@ubuntufile:~$

jrsitman@ubuntufile:~$ sudo start fsd
[sudo] password for jrsitman:
Sorry, try again.
[sudo] password for jrsitman:
Sorry, try again.
[sudo] password for jrsitman:
sudo: start: command not found
jrsitman@ubuntufile:~$ sudo fsd start
sudo: fsd: command not found
jrsitman@ubuntufile:~$ sudo service fsd start
Failed to start fsd.service: Unit fsd.service not found.
jrsitman@ubuntufile:~$ sudo systemctl status
[sudo] password for jrsitman:
● ubuntufile
    State: degraded
     Jobs: 0 queued
   Failed: 1 units
    Since: Tue 2021-04-20 19:06:13 UTC; 1h 59min ago
   CGroup: /
           ├─user.slice
           │ └─user-1000.slice
           │   ├─user@1000.service …
           │   │ ├─gvfs-goa-volume-monitor.service
           │   │ │ └─1400 /usr/libexec/gvfs-goa-volume-monitor
           │   │ ├─pulseaudio.service
           │   │ │ └─1078 /usr/bin/pulseaudio --daemonize=no --log-target=journ>
           │   │ ├─gvfs-daemon.service
           │   │ │ ├─1206 /usr/libexec/gvfsd
           │   │ │ ├─1211 /usr/libexec/gvfsd-fuse /run/user/1000/gvfs -f -o big>
           │   │ │ ├─1412 /usr/libexec/gvfsd-trash --spawner :1.13 /org/gtk/gvf>
           │   │ │ ├─1453 /usr/libexec/gvfsd-network --spawner :1.13 /org/gtk/g>
           │   │ │ └─1466 /usr/libexec/gvfsd-dnssd --spawner :1.13 /org/gtk/gvf>
           │   │ ├─gvfs-udisks2-volume-monitor.service
           │   │ │ └─1386 /usr/libexec/gvfs-udisks2-volume-monitor
           │   │ ├─xfce4-notifyd.service
           │   │ │ └─1283 /usr/lib/x86_64-linux-gnu/xfce4/notifyd/xfce4-notifyd
lines 1-23
























● ubuntufile
    State: degraded
     Jobs: 0 queued
   Failed: 1 units
    Since: Tue 2021-04-20 19:06:13 UTC; 1h 59min ago
   CGroup: /
           ├─user.slice
           │ └─user-1000.slice
           │   ├─user@1000.service …
           │   │ ├─gvfs-goa-volume-monitor.service
           │   │ │ └─1400 /usr/libexec/gvfs-goa-volume-monitor
           │   │ ├─pulseaudio.service
           │   │ │ └─1078 /usr/bin/pulseaudio --daemonize=no --log-target=jour>
           │   │ ├─gvfs-daemon.service
           │   │ │ ├─1206 /usr/libexec/gvfsd
           │   │ │ ├─1211 /usr/libexec/gvfsd-fuse /run/user/1000/gvfs -f -o bi>
           │   │ │ ├─1412 /usr/libexec/gvfsd-trash --spawner :1.13 /org/gtk/gv>
           │   │ │ ├─1453 /usr/libexec/gvfsd-network --spawner :1.13 /org/gtk/>
           │   │ │ └─1466 /usr/libexec/gvfsd-dnssd --spawner :1.13 /org/gtk/gv>
           │   │ ├─gvfs-udisks2-volume-monitor.service
           │   │ │ └─1386 /usr/libexec/gvfs-udisks2-volume-monitor
           │   │ ├─xfce4-notifyd.service
           │   │ │ └─1283 /usr/lib/x86_64-linux-gnu/xfce4/notifyd/xfce4-notifyd
lines 1-23
























● ubuntufile
    State: degraded
     Jobs: 0 queued
   Failed: 1 units
    Since: Tue 2021-04-20 19:06:13 UTC; 1h 59min ago
   CGroup: /
           ├─user.slice
           │ └─user-1000.slice
           │   ├─user@1000.service …
           │   │ ├─gvfs-goa-volume-monitor.service
           │   │ │ └─1400 /usr/libexec/gvfs-goa-volume-monitor
           │   │ ├─pulseaudio.service
           │   │ │ └─1078 /usr/bin/pulseaudio --daemonize=no --log-target=journ>
           │   │ ├─gvfs-daemon.service
           │   │ │ ├─1206 /usr/libexec/gvfsd
           │   │ │ ├─1211 /usr/libexec/gvfsd-fuse /run/user/1000/gvfs -f -o big>
           │   │ │ ├─1412 /usr/libexec/gvfsd-trash --spawner :1.13 /org/gtk/gvf>
           │   │ │ ├─1453 /usr/libexec/gvfsd-network --spawner :1.13 /org/gtk/g>
           │   │ │ └─1466 /usr/libexec/gvfsd-dnssd --spawner :1.13 /org/gtk/gvf>
           │   │ ├─gvfs-udisks2-volume-monitor.service
           │   │ │ └─1386 /usr/libexec/gvfs-udisks2-volume-monitor
           │   │ ├─xfce4-notifyd.service
           │   │ │ └─1283 /usr/lib/x86_64-linux-gnu/xfce4/notifyd/xfce4-notifyd
           │   │ ├─init.scope
           │   │ │ ├─1072 /lib/systemd/systemd --user
           │   │ │ └─1073 (sd-pam)
           │   │ ├─gvfs-gphoto2-volume-monitor.service
           │   │ │ └─1405 /usr/libexec/gvfs-gphoto2-volume-monitor
           │   │ ├─obex.service
           │   │ │ └─1366 /usr/lib/bluetooth/obexd
           │   │ ├─at-spi-dbus-bus.service
           │   │ │ ├─1184 /usr/libexec/at-spi-bus-launcher
           │   │ │ ├─1189 /usr/bin/dbus-daemon --config-file=/usr/share/default>
           │   │ │ └─1199 /usr/libexec/at-spi2-registryd --use-gnome-session
           │   │ ├─indicator-messages.service
           │   │ │ └─1287 /usr/lib/x86_64-linux-gnu/indicator-messages/indicato>
           │   │ ├─gvfs-metadata.service
           │   │ │ └─1418 /usr/libexec/gvfsd-metadata
           │   │ ├─dbus.service
           │   │ │ ├─1085 /usr/bin/dbus-daemon --session --address=systemd: --n>
           │   │ │ ├─1193 /usr/lib/x86_64-linux-gnu/xfce4/xfconf/xfconfd
           │   │ │ └─1203 /usr/bin/xfce4-screensaver --no-daemon
           │   │ ├─gvfs-mtp-volume-monitor.service
           │   │ │ └─1396 /usr/libexec/gvfs-mtp-volume-monitor
           │   │ └─gvfs-afc-volume-monitor.service
           │   │   └─1391 /usr/libexec/gvfs-afc-volume-monitor
           │   └─session-c2.scope
           │     ├─1044 lightdm --session-child 12 19
           │     ├─1081 /usr/bin/gnome-keyring-daemon --daemonize --login
           │     ├─1084 xfce4-session
           │     ├─1166 /usr/bin/ssh-agent /usr/bin/im-launch startxfce4
           │     ├─1223 xfwm4 --replace
           │     ├─1231 xfsettingsd
           │     ├─1232 xfce4-panel
           │     ├─1247 Thunar --daemon
           │     ├─1252 /usr/lib/x86_64-linux-gnu/xfce4/panel/wrapper-2.0 /usr/>
           │     ├─1253 xfdesktop
           │     ├─1256 /usr/lib/x86_64-linux-gnu/xfce4/panel/wrapper-2.0 /usr/>
           │     ├─1257 /usr/lib/x86_64-linux-gnu/xfce4/panel/wrapper-2.0 /usr/>
           │     ├─1258 /usr/lib/x86_64-linux-gnu/xfce4/panel/wrapper-2.0 /usr/>
           │     ├─1261 /usr/lib/x86_64-linux-gnu/xfce4/panel/wrapper-2.0 /usr/>
           │     ├─1262 /usr/lib/x86_64-linux-gnu/xfce4/panel/wrapper-2.0 /usr/>
           │     ├─1263 /usr/lib/x86_64-linux-gnu/xfce4/panel/wrapper-2.0 /usr/>
           │     ├─1298 update-notifier
           │     ├─1302 /usr/bin/python3 /usr/bin/blueman-applet
           │     ├─1325 nm-applet
           │     ├─1333 xiccd
           │     ├─1345 /usr/bin/python3 /usr/share/system-config-printer/apple>
           │     ├─1347 /usr/lib/policykit-1-gnome/polkit-gnome-authentication->
           │     ├─1351 xfce4-power-manager
           │     ├─1362 /usr/bin/python3 /usr/bin/blueman-tray
           │     ├─1588 /usr/bin/xfce4-terminal
           │     ├─1592 bash
           │     ├─1638 /usr/lib/firefox/firefox
           │     ├─1713 /usr/lib/firefox/firefox -contentproc -childID 1 -isFor>
           │     ├─1751 /usr/lib/firefox/firefox -contentproc -childID 2 -isFor>
           │     ├─1779 /usr/lib/firefox/firefox -contentproc -childID 3 -isFor>
           │     ├─1825 /usr/lib/firefox/firefox -contentproc -childID 4 -isFor>
           │     ├─1986 sudo systemctl status
           │     ├─1987 systemctl status
           │     └─1988 pager
           ├─init.scope
           │ └─1 /sbin/init maybe-ubiquity
           └─system.slice
             ├─systemd-networkd.service
             │ └─654 /lib/systemd/systemd-networkd
             ├─systemd-udevd.service
             │ └─389 /lib/systemd/systemd-udevd
             ├─whoopsie.service
             │ └─822 /usr/bin/whoopsie -f
             ├─cron.service
             │ └─812 /usr/sbin/cron -f
             ├─polkit.service
             │ └─699 /usr/lib/policykit-1/polkitd --no-debug
             ├─networkd-dispatcher.service
             │ └─698 /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startu>
             ├─rtkit-daemon.service
             │ └─999 /usr/libexec/rtkit-daemon
             ├─multipathd.service
             │ └─559 /sbin/multipathd -d -s
             ├─accounts-daemon.service
             │ └─678 /usr/lib/accountsservice/accounts-daemon
             ├─wpa_supplicant.service
             │ └─707 /sbin/wpa_supplicant -u -s -O /run/wpa_supplicant
             ├─lightdm.service
             │ ├─846 /usr/sbin/lightdm
             │ └─863 /usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/run/lig>
             ├─ModemManager.service
             │ └─769 /usr/sbin/ModemManager --filter-policy=strict
             ├─systemd-journald.service
             │ └─350 /lib/systemd/systemd-journald
             ├─atd.service
             │ └─823 /usr/sbin/atd -f
             ├─unattended-upgrades.service
             │ └─760 /usr/bin/python3 /usr/share/unattended-upgrades/unattended>
             ├─colord.service
             │ └─1346 /usr/libexec/colord
             ├─NetworkManager.service
             │ └─686 /usr/sbin/NetworkManager --no-daemon
             ├─snapd.service
             │ └─702 /usr/lib/snapd/snapd
             ├─nfs-blkmap.service
             │ └─373 /usr/sbin/blkmapd
             ├─rsyslog.service
             │ └─701 /usr/sbin/rsyslogd -n -iNONE
             ├─rpcbind.service
             │ └─599 /sbin/rpcbind -f -w
             ├─kerneloops.service
             │ ├─832 /usr/sbin/kerneloops --test
             │ └─839 /usr/sbin/kerneloops
             ├─cups-browsed.service
             │ └─755 /usr/sbin/cups-browsed
             ├─cups.service
             │ ├─684 /usr/sbin/cupsd -l
             │ └─761 /usr/lib/cups/notifier/dbus dbus://
             ├─upower.service
             │ └─1235 /usr/lib/upower/upowerd
             ├─systemd-resolved.service
             │ └─667 /lib/systemd/systemd-resolved
             ├─udisks2.service
             │ └─706 /usr/lib/udisks2/udisksd
             ├─acpid.service
             │ └─679 /usr/sbin/acpid
             ├─dbus.service
             │ └─685 /usr/bin/dbus-daemon --system --address=systemd: --nofork >
             ├─systemd-timesyncd.service
             │ └─600 /lib/systemd/systemd-timesyncd
             ├─system-getty.slice
             │ └─getty@tty1.service
             │   └─845 /sbin/agetty -o -p -- \u --noclear tty1 linux
             ├─avahi-daemon.service
             │ ├─682 avahi-daemon: running [ubuntufile.local]
             │ └─709 avahi-daemon: chroot helper
             └─systemd-logind.service
               └─703 /lib/systemd/systemd-logind
jrsitman@ubuntufile:~$
jrsitman@ubuntufile:~$ sudo systemctl status fsd
Unit fsd.service could not be found.
jrsitman@ubuntufile:~$ sudo apt install fsd
Reading package lists... Done
Building dependency tree      
Reading state information... Done
E: Unable to locate package fsd
jrsitman@ubuntufile:~$ sudo apt install nfsd
Reading package lists... Done
Building dependency tree      
Reading state information... Done
E: Unable to locate package nfsd
jrsitman@ubuntufile:~$ sudo service nfsd start
[sudo] password for jrsitman:
Failed to start nfsd.service: Unit nfsd.service not found.
jrsitman@ubuntufile:~$ sudo systemctl status
● ubuntufile
    State: degraded
     Jobs: 0 queued
   Failed: 1 units
    Since: Tue 2021-04-20 19:06:13 UTC; 5h 51min ago
   CGroup: /
           ├─user.slice
           │ └─user-1000.slice
           │   ├─user@1000.service …
           │   │ ├─gvfs-goa-volume-monitor.service
           │   │ │ └─1400 /usr/libexec/gvfs-goa-volume-monitor
           │   │ ├─pulseaudio.service
           │   │ │ └─1078 /usr/bin/pulseaudio --daemonize=no --log-target=journ>
           │   │ ├─gvfs-daemon.service
           │   │ │ ├─1206 /usr/libexec/gvfsd
           │   │ │ ├─1211 /usr/libexec/gvfsd-fuse /run/user/1000/gvfs -f -o big>
           │   │ │ ├─1412 /usr/libexec/gvfsd-trash --spawner :1.13 /org/gtk/gvf>
           │   │ │ ├─1453 /usr/libexec/gvfsd-network --spawner :1.13 /org/gtk/g>
           │   │ │ └─1466 /usr/libexec/gvfsd-dnssd --spawner :1.13 /org/gtk/gvf>
           │   │ ├─gvfs-udisks2-volume-monitor.service
           │   │ │ └─1386 /usr/libexec/gvfs-udisks2-volume-monitor
           │   │ ├─xfce4-notifyd.service
           │   │ │ └─1283 /usr/lib/x86_64-linux-gnu/xfce4/notifyd/xfce4-notifyd
           │   │ ├─init.scope
           │   │ │ ├─1072 /lib/systemd/systemd --user
           │   │ │ └─1073 (sd-pam)
           │   │ ├─gvfs-gphoto2-volume-monitor.service
           │   │ │ └─1405 /usr/libexec/gvfs-gphoto2-volume-monitor
           │   │ ├─obex.service
           │   │ │ └─1366 /usr/lib/bluetooth/obexd
           │   │ ├─at-spi-dbus-bus.service
           │   │ │ ├─1184 /usr/libexec/at-spi-bus-launcher
           │   │ │ ├─1189 /usr/bin/dbus-daemon --config-file=/usr/share/default>
           │   │ │ └─1199 /usr/libexec/at-spi2-registryd --use-gnome-session
           │   │ ├─indicator-messages.service
           │   │ │ └─1287 /usr/lib/x86_64-linux-gnu/indicator-messages/indicato>
           │   │ ├─gvfs-metadata.service
           │   │ │ └─1418 /usr/libexec/gvfsd-metadata
           │   │ ├─dbus.service
           │   │ │ ├─1085 /usr/bin/dbus-daemon --session --address=systemd: --n>
           │   │ │ ├─1193 /usr/lib/x86_64-linux-gnu/xfce4/xfconf/xfconfd
           │   │ │ ├─1203 /usr/bin/xfce4-screensaver --no-daemon
           │   │ │ └─2687 /usr/libexec/dconf-service
           │   │ ├─gvfs-mtp-volume-monitor.service
           │   │ │ └─1396 /usr/libexec/gvfs-mtp-volume-monitor
           │   │ └─gvfs-afc-volume-monitor.service
           │   │   └─1391 /usr/libexec/gvfs-afc-volume-monitor
           │   └─session-c2.scope
           │     ├─1044 lightdm --session-child 12 19
           │     ├─1081 /usr/bin/gnome-keyring-daemon --daemonize --login
           │     ├─1084 xfce4-session
           │     ├─1166 /usr/bin/ssh-agent /usr/bin/im-launch startxfce4
           │     ├─1223 xfwm4 --replace
           │     ├─1231 xfsettingsd
           │     ├─1232 xfce4-panel
           │     ├─1247 Thunar --daemon
           │     ├─1252 /usr/lib/x86_64-linux-gnu/xfce4/panel/wrapper-2.0 /usr/>
           │     ├─1253 xfdesktop
           │     ├─1256 /usr/lib/x86_64-linux-gnu/xfce4/panel/wrapper-2.0 /usr/>
           │     ├─1257 /usr/lib/x86_64-linux-gnu/xfce4/panel/wrapper-2.0 /usr/>
           │     ├─1258 /usr/lib/x86_64-linux-gnu/xfce4/panel/wrapper-2.0 /usr/>
           │     ├─1261 /usr/lib/x86_64-linux-gnu/xfce4/panel/wrapper-2.0 /usr/>
           │     ├─1262 /usr/lib/x86_64-linux-gnu/xfce4/panel/wrapper-2.0 /usr/>
           │     ├─1263 /usr/lib/x86_64-linux-gnu/xfce4/panel/wrapper-2.0 /usr/>
           │     ├─1298 update-notifier
           │     ├─1302 /usr/bin/python3 /usr/bin/blueman-applet
           │     ├─1325 nm-applet
           │     ├─1333 xiccd
           │     ├─1345 /usr/bin/python3 /usr/share/system-config-printer/apple>
           │     ├─1347 /usr/lib/policykit-1-gnome/polkit-gnome-authentication->
           │     ├─1351 xfce4-power-manager
           │     ├─1362 /usr/bin/python3 /usr/bin/blueman-tray
           │     ├─1588 /usr/bin/xfce4-terminal
           │     ├─1592 bash
           │     ├─1638 /usr/lib/firefox/firefox
           │     ├─1713 /usr/lib/firefox/firefox -contentproc -childID 1 -isFor>
           │     ├─1751 /usr/lib/firefox/firefox -contentproc -childID 2 -isFor>
           │     ├─1779 /usr/lib/firefox/firefox -contentproc -childID 3 -isFor>
           │     ├─1825 /usr/lib/firefox/firefox -contentproc -childID 4 -isFor>
           │     ├─2945 sudo systemctl status
           │     ├─2946 systemctl status
           │     └─2947 pager
           ├─init.scope
           │ └─1 /sbin/init maybe-ubiquity
           └─system.slice
             ├─systemd-networkd.service
             │ └─654 /lib/systemd/systemd-networkd
             ├─systemd-udevd.service
             │ └─389 /lib/systemd/systemd-udevd
             ├─whoopsie.service
             │ └─822 /usr/bin/whoopsie -f
             ├─cron.service
             │ └─812 /usr/sbin/cron -f
             ├─polkit.service
             │ └─699 /usr/lib/policykit-1/polkitd --no-debug
             ├─networkd-dispatcher.service
             │ └─698 /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startu>
             ├─rtkit-daemon.service
             │ └─999 /usr/libexec/rtkit-daemon
             ├─multipathd.service
             │ └─559 /sbin/multipathd -d -s
             ├─accounts-daemon.service
             │ └─678 /usr/lib/accountsservice/accounts-daemon
             ├─wpa_supplicant.service
             │ └─707 /sbin/wpa_supplicant -u -s -O /run/wpa_supplicant
             ├─lightdm.service
             │ ├─846 /usr/sbin/lightdm
             │ └─863 /usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/run/lig>
             ├─ModemManager.service
             │ └─769 /usr/sbin/ModemManager --filter-policy=strict
             ├─systemd-journald.service
             │ └─350 /lib/systemd/systemd-journald
             ├─atd.service
             │ └─823 /usr/sbin/atd -f
             ├─unattended-upgrades.service
             │ └─760 /usr/bin/python3 /usr/share/unattended-upgrades/unattended>
             ├─colord.service
             │ └─1346 /usr/libexec/colord
             ├─NetworkManager.service
             │ └─686 /usr/sbin/NetworkManager --no-daemon
             ├─snapd.service
             │ └─702 /usr/lib/snapd/snapd
             ├─nfs-blkmap.service
             │ └─373 /usr/sbin/blkmapd
             ├─rsyslog.service
             │ └─701 /usr/sbin/rsyslogd -n -iNONE
             ├─rpcbind.service
             │ └─599 /sbin/rpcbind -f -w
             ├─kerneloops.service
             │ ├─832 /usr/sbin/kerneloops --test
             │ └─839 /usr/sbin/kerneloops
             ├─cups-browsed.service
             │ └─2808 /usr/sbin/cups-browsed
             ├─cups.service
             │ └─2807 /usr/sbin/cupsd -l
             ├─upower.service
             │ └─1235 /usr/lib/upower/upowerd
             ├─systemd-resolved.service
             │ └─667 /lib/systemd/systemd-resolved
             ├─udisks2.service
             │ └─706 /usr/lib/udisks2/udisksd
             ├─acpid.service
             │ └─679 /usr/sbin/acpid
             ├─dbus.service
             │ └─685 /usr/bin/dbus-daemon --system --address=systemd: --nofork >
             ├─systemd-timesyncd.service
             │ └─600 /lib/systemd/systemd-timesyncd
             ├─system-getty.slice
             │ └─getty@tty1.service
             │   └─845 /sbin/agetty -o -p -- \u --noclear tty1 linux
             ├─avahi-daemon.service
             │ ├─682 avahi-daemon: running [ubuntufile.local]
             │ └─709 avahi-daemon: chroot helper
             └─systemd-logind.service
               └─703 /lib/systemd/systemd-logind
lines 133-155/155 (END)
you had the service running in the image in Your comment from a while back
what changed?
you listed the installed nfs
dpgs -i | grep nfs

sudo systemctl enable --now nfs-server

were you making changes to installed packages on ubuntufile?
Good morning:

I am so confused on what has been done.   I cannot honestly say what has changed.  

I did not make any changes to installed packages that I am aware of.

What do you want me to do?
on the ubuntufile, server
sudo systemctl start nfs-kernel-server
what happens?
sudo systemctl status nfs-kernel-server
what happens?
ps -ef | grep nfs
what do you see
sudo exportfs
what do you see
if you see /home advertised.
confirm server IP is 192.168.0.178
sudo ip

leave well enough alone, go the ubuntudesktop, client system.
dpkg -la | grep nfs
to confirm it has the NFS packages
confirm the IP of the client, sudo ip

ping 192.168.0.178
to confirm the system is responsive (if not, this will confirm the software firewall, ufw/sfw is enabled, possibly disabling it )
sudo ufw status
sudo sfw status
one of them might be right.

now that we confirmed that we have an IP on the client on the same iP segment as the server.
sudo mkdir /srv
just to be sure the mount point exists.
sudo mount -t nfs 192.168.0.178:/home /srv
Lets let mount use the default options to mount it.
What do you get in response to the above command? Does it error out any hiccup?
(list contents of folder  all lower case L's ) ls -l /srv what happens?
see below

jrsitman@ubuntufile:~$ sudo systemctl start nfs-kernel-server

[sudo] password for jrsitman:
Job for nfs-server.service canceled.
jrsitman@ubuntufile:~$
on the ubuntufile
ps -ef | grep nfs?
when was the system rebooted?
command:  uptime
I provided a slew of commands to run.
responding with a single one  ..
sudo dpkg -la | grep nfs

something happened between the time when you listed the NFS was running and when now it does not want to start. make sure your /etc/exports file only has an entry for /home nothing else.
look at the log,
sudo tail -20 /var/log/messages
this will grab the last 20 lines from the system log.
then try
sudo systemctl status nfs-kernal-server
jrsitman@ubuntufile:~$ ps -ef | grep nfs

jrsitman    5220    1592  0 15:36 pts/0    00:00:00 grep --color=auto nfs
jrsitman@ubuntufile:~$

jrsitman@ubuntufile:~$ sudo dpkg -la | grep nfs

[sudo] password for jrsitman:
ii  libnfs13:amd64                        4.0.0-1                             amd64        NFS client library (shared library)
ii  libnfsidmap2:amd64                    0.25-5.1ubuntu1                     amd64        NFS idmapping library
ii  nfs-common                            1:1.3.4-2.5ubuntu3.3                amd64        NFS support files common to client and server
ii  nfs-kernel-server                     1:1.3.4-2.5ubuntu3.3                amd64        support for NFS kernel server
jrsitman@ubuntufile:~$

When I run sudo exportfs nothing happens
exportfs is a refresher for NFS to tell it to reread /etc/exports

if the server, nfsd  is not running, exportfs has no service to communicate with.

reboot the ubuntufles and after login, run ps -ef | grep nfs is it running?
jrsitman@ubuntufile:~$ ps -ef | grep nfs

jrsitman    1508    1487  0 16:09 pts/0    00:00:00 grep --color=auto nfs
jrsitman@ubuntufile:~$
what is in /etc/exports?
if it is installed and is setup to run at boot, only an error would cause it to term.

do you have any errors in the log
sudo grep -i 'nfs' /var/log/messages

If possible, when multiple data points are in cluded in a comment, I think it is better to provide responses to as many as possible versus responding to one suggestion out of 10.
can you cneck whether you have nfs running on your ubuntudesktop system, client?
jrsitman@ubuntufile:~$ ps -ef | grep nfs

jrsitman    1508    1487  0 16:09 pts/0    00:00:00 grep --color=auto nfs
jrsitman@ubuntufile:~$

jrsitman@ubuntufile:/$ sudo tail-20/var/log/messages

sudo: tail-20/var/log/messages: command not found

jrsitman@ubuntufile:/$ sudo grep -i 'nfs' /var/log/messages

grep: /var/log/messages: No such file or directory
jrsitman@ubuntufile:/$
jrsitman@ubuntufile:/$ sudo systemctl status nfs-kernel-server
● nfs-server.service - NFS server and services
     Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor pr>
    Drop-In: /run/systemd/generator/nfs-server.service.d
             └─order-with-mounts.conf
     Active: failed (Result: exit-code) since Wed 2021-04-21 15:49:07 UTC; 1h 4>
    Process: 758 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=1/FAIL>
    Process: 759 ExecStopPost=/usr/sbin/exportfs -au (code=exited, status=0/SUC>
    Process: 760 ExecStopPost=/usr/sbin/exportfs -f (code=exited, status=0/SUCC>

Apr 21 15:49:07 ubuntufile systemd[1]: Starting NFS server and services...
Apr 21 15:49:07 ubuntufile exportfs[758]: exportfs: Failed to stat /Executive: >
Apr 21 15:49:07 ubuntufile systemd[1]: nfs-server.service: Control process exit>
Apr 21 15:49:07 ubuntufile systemd[1]: nfs-server.service: Failed with result '>
Apr 21 15:49:07 ubuntufile systemd[1]: Stopped NFS server and services.
please note that space separtes items in a command.

sudo tail -10 [space] /var/log/messages

please look at what you have in /etc/exports

you should not have empty lines there.
delete any empty lines
I do not always try all the commands you send because if the first one fails, I did not think it made sense to run the others.
I will run all of them from now on.

jrsitman@ubuntufile:/$ sudo tail -20 /var/log/messages
tail: cannot open '/var/log/messages' for reading: No such file or directory
jrsitman@ubuntufile:/$

I did post the /etc/exports text earlier.   See below.

# /etc/exports: the access control list for filesystems which may be exported
#               to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
#
/home *(rw,no_root_squash,no_subtree_check)
/Executive *(rw,no_root_squash,no_subtree_check)

~                                                                              
~                                                                              
~                                                                              
~                                                                              
~                                                                              
~                                                                              
~                                                                              
~                                                                              
~
delete all the empty lines in the /etc/exports
after the /Execuutive also please confirm whether your ubuntufle system has /Executive

if memory serves, /etc/exports should not have any blank lines.

I gather you are using VIM as your editor, hitting d key twice deletes the line. or holding down shift + d will delete the line as well.

You have two extra blank lines. I think the nFS start errors might be caused by those.

Main point at this time is to get nfs server running on the ubuntufile system.
Yes I am using VIM.   I cannot figure out how to delete those lines.  I tried putting the cursor on a line but it won't let me.

yes the Executive directory exists.

jrsitman@ubuntufile:/home$ cd Executive
jrsitman@ubuntufile:/home/Executive$
Why don't we rename /etc/exports create a new one and copy/paste the info we need?
while you are in operating mode (not insert/open), (hit escape key to be sure)
a hit on the d key twice will delete the line you are on.
hit the escape key
press the colon key :
type help
this will provide you with options use.

the extra spaces are likely what causes the issue when exportfs -r tries to read in the directives.
items starting with # are comments and are skippped
the entries without a comma are read in. blank lines are likely the issue.
I will try
I could not get your suggestion to work.   I renamed /etc/exports and then created a new /etc/exports.  As soon as I open the new file it had all the blank spaces with no data.   I pasted the date from the original file into the new file and the new file looks the same as the original.

I have built a few servers for testing.   When I logged on to one I have "never" used and edited the n/etc/exports file it has the exact same blank lines in it.    So I am presuming those are not the problem.

If you want I can build a new NSF server to start from scratch?

Going to bed.   Thanks for all your help
Completely up to you in building a new VM from scratch. When configuring make sure to select the functions apps for NFS.
Make sure after install confirm NFS is running
os -ef | grep nfs
I build it
Meant "I'll build it"
ok. update when ready to work on the system that will function as the NFS server
sole purpose is to add an entry in /etc/exports to identify the NFS share.
Ok
your command did not work.  os -ef | grep nfs.   It states os not found.

I ran systemctl status nfs-server and it shows Active.   See screenshot.

How do we proceed?

User generated image
Should be ps -ef


Add the entry of the path to what you want to share in /etc/exports
/home[tab]*(rw,no_root_squash,no_subtree_check)
Once the entry is added, run exportfs -a
exportfs
To confirm.

Ip to identify the ip of this server.


With this information in hand.
Login into ubuntudesktop

And try
sudo mkdir /srv
sudo mount -t nfs ip_of_new_server:/home /srv

What happens?
list contents of roo seRching for srv
ls -l / | grep srv

List contents of srv
ks -l /srv
Let me start by updating you.   The video I watched to create the NFS server had me mkdir /home/fromubuntu.   So as you are helping me lets use that directory.

I added /home *(rw,no_root__squash,no_subtree_check).   I ran exportfs -a and then exportfs and it did show the /home/fromubuntu.

The IP of the server is 192.168.0.172

from the Desktop I used mkdir /fromubuntu
from the Desktop I then did sudo mount -t nfs 192.168.0.172:/home /fromubuntu
It states can't find in /etc/fstab
ok the fromubuntu on the server is merely a directory reference that is part of the NFS share presented.

presumably, the exportfs on the server reports /home being shared, correct?

on the desktop/ubuntudesktop


try,
mount -t nfs 192.168.0.172:/home/frombuntu      /fromubuntu

Could you run dpkg -la | grep nfs to see whether you have the NFS libraries on the ubuntu
to make sure it can handle NFS mounts...

Try the following everything on the client only
https://computingforgeeks.com/how-to-configure-nfs-client-on-ubuntu-debian-linux/
yes the share is present.  The results are below.

jrsitman@jrsitman-VirtualBox:~/Desktop$ sudo mount -t nfs 192.168.0.172:/home/fromubuntu /fromubuntu
[sudo] password for jrsitman:
mount: /fromubuntu: bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program.
jrsitman@jrsitman-VirtualBox:~/Desktop$ sudo mount -t nfs 192.168.0.172:/home/fromubuntu
mount: 192.168.0.172:/home/fromubuntu: can't find in /etc/fstab.
jrsitman@jrsitman-VirtualBox:~/Desktop$
you are missing the NFS client components on the client,  ubuntudesktop

apt-get install nfs-common
I installed NFS on the client (desktop).   I ran the mount command again and from the desktop it still states can't find in /etc/fstab
on the client, ubuntudesktop

do you have /sbin/mount.nfs?


try apt-get search nfs
what do you get reported back?
yes I have that /sbin/mount.nfs

When I run the command I get "invalid operation search"
did you see my last post?
I did was waiting for the apt-get search nfs response.
dpkg -la | egrep -i nfs

not sure what you ran with mount.nfs

mount -t nfs -o nfscvers=3 192.168.0.172:/home /fromubuntu

something is missing, but I can not place my finger on what that might be.

could you confirm that ubuntu firewall is not running on either system.


lets try it this way, on the server,
please confirm nfs, rpc.statd and lockd are running.
for some reason I cannot get the mouse on the server to drag over text so I can copy it and show you.   I can do it on the desktop.    Any ideas?




From the desktop
jrsitman@jrsitman-VirtualBox:~/Desktop$ sudo mount -t nfs -o nfscvers=3 192.168.0.172:/home/fromubuntu
[sudo] password for jrsitman:
mount: 192.168.0.172:/home/fromubuntu: can't find in /etc/fstab.
jrsitman@jrsitman-VirtualBox:~/Desktop$

I'll send another post with a new screenshot
ps command
ps-aux.jpg
the ps you are searching under your user account, the services will run under the system, root ...have to spin up two ubuntu systems to confirm what issues you are running into and why.
I have several systems that we can use to test.  

Let me know what you want to check

User generated image
I am trying to determine why the commonly straightforward; setup system A as NFS server, and then use server B as client to mount the NFS share.
RPC..statd, lockd and nfsd running
But the client rubs into a buzzsaw while failing
I wish I had the answer.   Let me know if you think of anything and you want me to test
ASKER CERTIFIED SOLUTION
Avatar of arnold
arnold
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Sorry for the delay.

I will work on this over the weekend.
I started from scratch with your instructions and it worked.    

thank you for all the help.