
Ich versuche, einen NFS4-Export von einem Ubuntu-Server auf einem Mac-Client zu mounten, der mit dem lokalen Netzwerk verbunden ist. Der Mac-Client kann den NFS-Export mit NFS3 mounten, mit NFS4 scheint dies jedoch nicht möglich zu sein.
Server (Ubuntu)
Das freizugebende Verzeichnis wurde fstab
an gebunden /export/share
und dieses Verzeichnis über exportiert /etc/exports
.
user@<server>:~$ tail -n 2 /etc/exports
/export *(insecure,no_subtree_check,rw,sync,fsid=0)
/export/share *(insecure,no_subtree_check,rw,nohide,sync)
Client (Mac OS 10.11)
Der Client kann beide Exporte vom Server sehen
Macintosh:~ user$ showmount -e <server-ip>
Exports list on <server-ip>:
/export/share *
/export *
Der Client kann das Laufwerk mittels NFS3 mounten (auf einem lokalen Mount-Point ~/NFS/Server_Media/
)
Macintosh:~ user$ sudo mount -t nfs <server-ip>:/export/share NFS/Server_Media/
oder (beide führen zum gleichen Ergebnis)
Macintosh:~ user$ sudo mount -t nfs -o vers=3 <server-ip>:/export/share NFS/Server_Media/
Nachweis von NFS3 (unter den NFS-Parametern: vers=3)
Macintosh:~ user$ nfsstat -m
/Users/user/NFS/Server_Media from <server-ip>:/export/share
-- Original mount options:
General mount flags: 0x0
NFS parameters:
File system locations:
/export/share @ <server-ip> (<server-ip>)
-- Current mount parameters:
General mount flags: 0x4000000 multilabel
NFS parameters: vers=3,tcp,port=2049,nomntudp,hard,nointr,noresvport,negnamecache,callumnt,locks,quota,rsize=32768,wsize=32768,readahead=16,dsize=4096,nordirplus,nodumbtimr,timeo=10,maxgroups=16,acregmin=5,acregmax=60,acdirmin=5,acdirmax=60,nomutejukebox,nonfc,sec=sys
File system locations:
/export/share @ <server-ip> (<server-ip>)
Status flags: 0x0
Der Export wird zum Testen von NFS4 ausgehängt.
Macintosh:~ user$ sudo umount NFS/Server_Media/
Der Client versucht, NFS4 zu mounten.
Macintosh:~ user$ sudo mount -t nfs -o vers=4 <server-ip>:/export/share NFS/Server_Media/
mount_nfs: can't mount /export/share from <server-ip> onto /Users/user/NFS/Server_Media: No such file or directory
Interessanterweise kann die Finder- Connect to Server...
Operation ( Cmd
+ ) eine Verbindung über NFS4 herstellen, indem sie Folgendes eingibt :k
Server Address
nfs://vers=4,<server-ip>:/export/share
Dies lässt sich jedoch ohne Kenntnis der Terminalbefehle nicht automatisieren und führt nur eine Bereitstellung an /Volumes/share/
statt am vorgesehenen Client-Einbindungspunkt durch.
Die Literatur ist überraschend dürftig, wenn es um Mac und NFS4 geht, zumindest soweit ich das beurteilen kann. Jede Hilfe hierzu wäre sehr willkommen!
Antwort1
Nach einigem weiteren Experimentieren und Suchen konnte ich das Problem schließlich lösen.
Wie gefunden indieser Thread(über Fedora, aber nah genug an Mac), es scheint, dass, während nfs3
erlaubt sudo mount <...> <server-ip>:/export/share <...>
, nfs4
scheint zu erfordernsudo mount <...>
<server-ip>:/
<...>
(Mounten des „Stammverzeichnisses“ des Exports, im Gegensatz zum exportierten Verzeichnis selbst). Nachdem ich das korrigiert habe, werden meine Verzeichnisse problemlos gemountet, obwohl es so aussieht, als ob das /export
Verzeichnis angebunden wird, statt des /export/share
Verzeichnisses (wodurch eine weitere Verzeichnisebene hinzugefügt wird). Keine große Sache, aber es ist erwähnenswert, falls es dafür eine Lösung gibt.BEARBEITEN: Ich habe mich geirrt. Es stellt sich heraus, dass Sie das /share
Verzeichnis gezielt exportieren können, indem Siesudo mount <...>
<server-ip>:/share
<...>
, im Grunde wird einfach das Stammverzeichnis des exportierten Verzeichnisses übersprungen.
Eine interessante Randbemerkung: Wenn ich die /etc/export
Zeile auf dem Server von /export/share *(insecure,no_subtree_check,rw,nohide,sync)
in ändere,/export/share *(insecure,
fsid=0
,no_subtree_check,rw,nohide,sync)
, das Zielverzeichnis auf dem Client NFS/Share_Media
scheint aus irgendeinem Grund nach dem Mounten unendlich selbstverschachtelt zu sein. Ich dachte nur, ich würde diese Beobachtung mit einbeziehen, falls jemand aus der Zukunft das gleiche Problem mit seinem fliegenden Auto hat.