Ausführen von CentOS 8
server side: /etc/exports:
/home/share *(ro)
/home und /home/share sind Eigentum von root.root und verfügen über 755 Berechtigungen für Verzeichnisse und 644 Berechtigungen für Dateien.
client side:
mount -t nfs4 server:/ /sharefolder
Wie mounte ich /home/share direkt in /sharefolder, anstatt das Stammverzeichnis des FS zu mounten? Wenn ich „mount -t nfs4 server:/home/share /sharefolder“ versuche, erhalte ich die Fehlermeldung „Operation nicht zulässig“.
Antwort1
mount -t nfs4 server:/home/share /sharefolder
sieht aus wie ein korrekter Befehl auf der Clientseite, und Ihr Setup funktioniert für mich, da ich es gerade getestet habe.
Natürlich müssen Sie den Befehl als Root eingeben oder sudo
ihn verwenden. Die Fehlermeldung „Vorgang nicht zulässig“ deutet darauf hin, dass Sie den Befehl möglicherweise versehentlich als Nicht-Root-Benutzer ausgeführt oder den Freigabenamen falsch eingegeben haben.
server:/home/share
Beachten Sie, dass der NFSv4-Server auch dann automatisch generieren muss, wenn Sie nur exportieren und mountenvirtuelle Exportefür /
und /home
. Dies sind jedoch nicht die echten /
oder /home
, sondern virtuelle schreibgeschützte Verzeichnisse, die nur die minimal notwendigen Unterverzeichnisse enthalten, um die tatsächlich exportierten Verzeichnisse zu erreichen. Sobald die Freigabe gemountet wurde, können Sie dies auf /proc/fs/nfsd/exports
dem NFS-Server sehen:
cat /proc/fs/nfsd/exports
# Version 1.1
# Path Client(Flags) # IPs
/home *(ro,insecure,no_root_squash,sync,no_wdelay,no_subtree_check,v4root,uuid=e4c0fcd4:00b94db3:b63bd9a8:0e705e29,sec=390003:390004:390005:1)
/home/share *(ro,root_squash,sync,wdelay,no_subtree_check,uuid=e4c0fcd4:00b94db3:b63bd9a8:0e705e29,sec=1)
/ *(ro,insecure,no_root_squash,sync,no_wdelay,no_subtree_check,v4root,fsid=0,uuid=e4c0fcd4:00b94db3:b63bd9a8:0e705e29,sec=390003:390004:390005:1)
Antwort2
Nach einigen Tests konnte ich Ihr Problem reproduzieren und es stellte sich heraus, dass es sich um ein Firewall-Problem handelte. Bitte stellen Sie sicher, dass die Firewall deaktiviert ist und überprüfen Sie nfs
anschließend, ob Ihre Freigabe funktioniert.
Angenommen, Sie verwenden firewalld
:
sudo systemctl stop firewalld
Sobald Sie festgestellt haben, dass nfs
wie erwartet funktioniert, sollten Sie Ihre Firewall-Konfiguration ändern.
nfs
basiert auf anderen Daemon-Prozessen. Damit also nfs
korrekt funktioniert, müssen Sie nicht nur durchlassen nfs
, sondern auch mountd
undrpc-bind
sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --permanent --add-service=mountd
sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --reload
Sie können auch eine Zone angeben, wenn Sie diese Dienste nur für eine bestimmte Zone zulassen möchten, indem Sie Folgendes hinzufügen:--zone=nfszone
Ich habe diese Lösung nicht gründlich getestet und Sie müssen möglicherweise einen zusätzlichen Port öffnen, damit alle Funktionen funktionieren (z. B. Dateisperre). Siehehttps://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/storage_administration_guide/s2-nfs-nfs-firewall-config