Difference between revisions of "Setting up NFS for file sharing"

From Da Nerd Mage Wiki
Jump to navigation Jump to search
Line 13: Line 13:
* <code>sudo apt install nfs-kernel-server</code>
* <code>sudo apt install nfs-kernel-server</code>


==Configure NFS Server==
== Configure NFS Server ==


* <code>sudo vi /etc/exports</code>
* <code>sudo vi /etc/exports</code>
Add/edit:
Add/edit:


  '''/path/to/be/shared''' *(rw,async,no_root_squash,no_subtree_check)
  '''/path/to/be/shared''' *(rw,async,no_root_squash,no_subtree_check)
For the changes to take effect, export and start NFS service.
For the changes to take effect, export and start NFS service.
* <code>sudo exportfs -a</code>
* <code>sudo exportfs -a</code>
* <code>sudo /etc/init.d/nfs-kernel-server start</code>
* <code>sudo /etc/init.d/nfs-kernel-server start</code>
Pretty simple...
Pretty simple...


===A bit about re-sharing===
=== A bit about re-sharing ===
Sometimes, you may want to share something that you've actually mounted from an NFS share on another machine...
Sometimes, you may want to share something that you've actually mounted from an NFS share on another machine...


Line 35: Line 32:


* <code>sudo vi nfs-kernel-server</code>
* <code>sudo vi nfs-kernel-server</code>
and add:
and add:


  ##########################
   
##########################
  echo "Starting out by making sure EVERYTHING is mounted..."
  echo "Starting out by making sure EVERYTHING is mounted..."
  /usr/bin/mount -a
  /usr/bin/mount -a
Line 45: Line 42:
  echo "But, init.d kinda sucks..."
  echo "But, init.d kinda sucks..."
  ##########################
  ##########################
right near the start.
right near the start.


Line 51: Line 47:


  '''/path/to/be/shared''' *(rw,async,no_root_squash,no_subtree_check''',fsid=1010''')
  '''/path/to/be/shared''' *(rw,async,no_root_squash,no_subtree_check''',fsid=1010''')
 
<span style="color: rgb(186, 55, 42); font-size: 14pt;" >'''AND''' it '''STILL''' doesn't start at boot!!!</span>
'''AND''' it '''STILL''' doesn't start at boot!!!


==Connecting to the NFS Server==
==Connecting to the NFS Server==

Revision as of 15:34, 5 June 2022

Proven on:
Logo Debian.png
11 (bullseye)


Install NFS Server

  • sudo apt install nfs-kernel-server

Configure NFS Server

  • sudo vi /etc/exports

Add/edit:

/path/to/be/shared *(rw,async,no_root_squash,no_subtree_check)

For the changes to take effect, export and start NFS service.

  • sudo exportfs -a
  • sudo /etc/init.d/nfs-kernel-server start

Pretty simple...

A bit about re-sharing

Sometimes, you may want to share something that you've actually mounted from an NFS share on another machine...

A couple of things are different in this case.

First, you need to ensure that the mounts are done BEFORE you start the NFS server.

  • sudo vi nfs-kernel-server

and add:


echo "Starting out by making sure EVERYTHING is mounted..."
/usr/bin/mount -a
echo "Really..."
echo "This is NOT the right place to do this..."
echo "But, init.d kinda sucks..."
##########################

right near the start.

Then you need to provide an fsid entry (with a unique number) for each export.

/path/to/be/shared *(rw,async,no_root_squash,no_subtree_check,fsid=1010)

AND it STILL doesn't start at boot!!!

Connecting to the NFS Server

You'll need NFS installed

  • sudo apt install nfs-common

or

  • sudo apt install nfs-kernel-server

Then you can check what's shared from any particular machine:

  • showmount -e [ServerName or Address]
    • (requires sudo on Debian...)

will show you what's shared from a machine

Setting up & mounting a share

  • sudo mkdir -p /path/to/mount/share
  • sudo mount [ServerName or Address]:/path/to/be/shared /path/to/mount/share

Better yet tho...

  • sudo vi /etc/fstab

& add an entry:

[ServerName or Address]:/path/to/be/shared /path/to/mount/share nfs rw,user,exec 0 0

TBD

  • Learn what flags do what in /etc/exports
  • Browsing in the GUI would be nice...
  • Look into automounting (including graceful failure modes)

Some Links