Difference between revisions of "Setting up NFS for file sharing"
Tag: Reverted |
Tag: Manual revert |
||
Line 15: | Line 15: | ||
== Install NFS Server == | == Install NFS Server == | ||
* <code>sudo apt install nfs-kernel-server</code> | * <code>sudo apt install nfs-kernel-server</code> | ||
Revision as of 01:42, 16 November 2023
11 (bullseye) | (This includes LMDE5, Proxmox, OMV...) | |
10 | (For the client side anyhow...) | |
A little note about typographic conventions you'll see here |
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 /etc/init.d/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!!!
But, you can force it to start after booting by logging into the machine & telling it:
sudo /etc/init.d/nfs-kernel-server start
Connecting to the NFS Server
From Linux
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
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
Then, you can mount anything listed in fstab but not yet mounted
sudo mount -a
From Windows (Win10)
(Tentative Working Notes)
Enabling NFS
In an Admin Powershell window:
Turn on NFS
Enable-WindowsOptionalFeature -FeatureName ServicesForNFS-ClientOnly, ClientForNFS-Infrastructure -Online -NoRestart
Set up anonymous credentials to match the credentials of a user with full access to the NFS share from a Linux viewpoint...
Make any servers you connect to think you're somebody important
New-ItemProperty HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default -Name AnonymousUID -Value 1000 -PropertyType "DWord"
New-ItemProperty HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default -Name AnonymousGID -Value 1000 -PropertyType "DWord"
The "AnonymousUID" & "AnonymousGID" "Value"s are the UID & GID of a user on the server with appropriate permissions... (In this case, the first user created on the server(s))
Reboot the computer
Mount the drive(s)
In a regular command shell:
mount -o nolock \\TinkerData.tinkernet.ca\home\tinker\Documents D:
mount -o nolock \\Warehouse.tinkernet.ca\mnt\Space_1\Pix P:
EVERY TIME the machine is rebooted, mount the drives... Again...
Make your mount(s) persistant
(Source)
Open the Startup folder by opening the Run tool and entering shell:startup
Create nfsmount.bat
file in that directory with the mount command used above.
This file will be read on startup and will automatically mount the NFS Share.
NFS management From the GUI (sort of...)
Simple NFS GUI for Linux is an option.
Installation can be a bit awkward & it's far from polished tho...
Installing: (On Debian-based systems)
sudo apt install gambas3
- (original instructions attempt to do this via a PPA... Good luck with that...)
wget https://github.com/Philippe734/Simple.NFS.GUI/raw/master/Linux/1.0.17/simple-nfs-gui_1.0.17-0ubuntu1_all.deb -P ~
- To download the package
sudo dpkg -i ~/simple-nfs-gui_1.0.17-0ubuntu1_all.deb
- Then install it
Once it's installed, you need to run it as root:
sudo -H Simple_NFS_GUI
Kind of a guide to using it
Other Options
- Webmin has full support for configuring NFS...
TBD
- Learn what flags do what in /etc/exports
- Look into automounting (including graceful failure modes)
- Work up some instructions for other non-Linux systems. (Synology, Kodi, Mac)