Installation NFS Network File System

Analog zur FreeBSD Installation, hier die Anleitung unter Ubuntu.

Installation

Hier der Link zum offiziellen Ubuntu Manual.

NFS Server

Der Daemon wird auf dem Server installiert, der die Harddisks sharen möchte.

sudo apt-get install nfs-kernel-server 

Anmerkung zum /etc/exports File

Unter Ubuntu existiert die maproot=root Option nicht. Was unter FreeBSD so aussieht:

/backup -maproot=root -alldirs 10.0.0.2 10.0.0.3 10.0.0.4

sieht unter Ubuntu so aus:

/backup 10.0.0.2(rw,sync,no_root_squash,no_subtree_check) 10.0.0.3(rw,sync,no_root_squash,no_subtree_check) 10.0.0.4(rw,sync,no_root_squash,no_subtree_check)

Wichtig: zwischen IP Adresse und der Klammer „(“ darf kein Abstand/Space sein.

Nachdem der NFS Server wie gewünscht konfiguriert wurde, diesen neu starten.

sudo exportfs -ra

Nun werden die konfigurierten Shares auf den remoten Maschinen mit

showmount -e <serveradresse>

angezeigt.

NFS Client

Der Client wird bei der NFS Server Installation automatisch mitinstalliert. Soll die Maschine aber nur als Client eingerichtet werden, kann man den Client einzeln installieren:

sudo apt-get install nfs-common 

Schon kann man loslegen und die Partitionen der Remote Server mounten.
-> Analog zum FreeBSD Tutorial.

Fehlermeldungen

rpc.statd is not running but is required for remote locking.

sudo mount violet:/backup /backup_global
mount.nfs: rpc.statd is not running but is required for remote locking.
mount.nfs: Either use '-o nolock' to keep locks local, or start statd.
mount.nfs: an incorrect mount option was specified

Lösung:

Im /etc/hosts.allow File vom Client musste nach der IP Adresse jeweils noch die Localhost IP (127.0.0.1) stehen – dann klappts!

$ cat /etc/hosts.allow 


sendmail: all
# /etc/hosts.allow: list of hosts that are allowed to access the system.
# See the manual pages hosts_access(5) and hosts_options(5).
#
# Example: ALL: LOCAL @some_netgroup
# ALL: .foobar.edu EXCEPT terminalserver.foobar.edu
#
# If you're going to protect the portmapper use the name "rpcbind" for the
# daemon name. See rpcbind(8) and rpc.mountd(8) for further information.
#
rpcbind : 10.0.0.1 127.0.0.1 : allow
rpcbind : 10.0.0.2 127.0.0.1 : allow
rpcbind : 10.0.0.3 127.0.0.1 : allow
rpcbind : 10.0.0.4 127.0.0.1 : allow
rpcbind : ALL : deny

RPC: Program not registered

Fehler:

$ showmount -e patsy
RPC: Program not registered

In dem Fall als erstes prüfen, ob der NFS Server überhaupt läuft mit rpcinfo -p :

$ rpcinfo -p 
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 40292 status
100024 1 tcp 36683 status
100021 1 udp 49318 nlockmgr
100021 3 udp 49318 nlockmgr
100021 4 udp 49318 nlockmgr
100021 1 tcp 38697 nlockmgr
100021 3 tcp 38697 nlockmgr
100021 4 tcp 38697 nlockmgr

Es müssten hier mindestens portmapper, nfs und mountd aufgelistet sein. Ist dies nicht der Fall, starte den NFS Server neu:

sudo /etc/init.d/nfs-kernel-server start

Nun müsste der Output von rpcinfo -p die fehlenden Services auflisten:

$ rpcinfo -p 
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 40292 status
100024 1 tcp 36683 status
100021 1 udp 49318 nlockmgr
100021 3 udp 49318 nlockmgr
100021 4 udp 49318 nlockmgr
100021 1 tcp 38697 nlockmgr
100021 3 tcp 38697 nlockmgr
100021 4 tcp 38697 nlockmgr
100005 1 udp 34536 mountd
100005 1 tcp 60529 mountd
100005 2 udp 43840 mountd
100005 2 tcp 34175 mountd
100005 3 udp 43592 mountd
100005 3 tcp 39509 mountd
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049
100003 3 udp 2049 nfs
100227 3 udp 2049

Nun funktioniert auch der showmount:

$ showmount -e patsy
Exports list on patsy:
/backup_local/share tesla corky violet

Sollte es weiterhin nicht klappen, prüfe noch /var/log/messages

 

nach oben