mount.nfs: określono niepoprawną opcję montowania

12

Próbuję zamontować wolumin NFS na serwerze centos 7.2:

Gdy próbuję zamontować punkt udostępniania NFS, otrzymuję odpowiedź:

[root@web1:~] #mount -t nfs nfs1.example.com:/var/nfs/home /home
mount.nfs: an incorrect mount option was specified

Sprawdziłem i nfs-utils-1.3.0-0.21.el7.x86_64zainstalowałem na obu komputerach. Zarówno klient nfs, jak i system operacyjny serwera nfs to Centos 7.2

Aby rozwiązać ten problem, zmniejszyłem listę w pliku / etc / export na serwerze NFS do następujących elementów:

/var/nfs/home web1.example.com(rw,sync,no_root_squash,no_all_squash)

Jeśli zrobię showmountz serwera, na którym próbuję zamontować udział nfs, oto co widzę:

[root@web1:~] #showmount -e nfs1.example.com
Export list for nfs1.example.com:
/var/nfs/home web1.example.com

Jeśli mount -vto zrobię, otrzymam to:

[root@web1:~] #mount -v -t nfs nfs1.example.com:/var/nfs/home /home
mount.nfs: timeout set for Fri Jan 13 11:04:19 2017 mount.nfs: trying text-based options 'vers=4,addr=162.xxx.xxx..94,clientaddr=162.xxx.xxx.6'
mount.nfs: mount(2): Invalid argument mount.nfs: an incorrect mount option was specified

W dmesg znajduję:

[44428.405419] nfsd: last server has exited, flushing export cache

Widzę to w dmesg:

[ 7.373186] FS-Cache: Netfs 'nfs' registered for caching
[ 7.422181] Key type dns_resolver registered
[ 7.456581] NFS: Registering the id_resolver key type
[ 7.462309] Key type id_resolver registered
[ 7.462386] Key type id_legacy registered
[ 7.514441] SELinux: initialized (dev 0:40, type nfs4), uses genfs_contexts
[ 8.474503] NFSD: starting 90-second grace period (net ffffffff819a29c0) –
[ 16.952180] perf samples too long (2623 > 2500), lowering kernel.perf_event_max_sample_rate to 50000
[ 24.429251] SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
[ 38.368207] perf samples too long (5162 > 5000), lowering kernel.perf_event_max_sample_rate to 25000
[ 38.427323]

Brak określenia -t nfsw poleceniu daje ten sam wynik:

[root@nfs1:~] #mount nfs1.example.com:/var/nfs/home /home
mount.nfs: an incorrect mount option was specified

Są to systemy plików nfs, które posiadam:

[root@nfs1:~] #grep nfs /proc/filesystems
nodev   nfsd
nodev   nfs
nodev   nfs4

Oto moduły załadowane do NFS:

[root@nfs1:~] #lsmod | grep ^nfs
nfsv4                 474203  0
nfs                   241266  1 nfsv4
nfsd                  284378  13
nfs_acl                12837  1 nfsd

To nie jest problem zapory ogniowej, ponieważ dostaję dokładnie taką samą awarię, gdy uruchamiam polecenie montowania z samego serwera NFS. Otrzymuje ten sam błąd co klienci.

Powinienem podkreślić, że to kiedyś działało dobrze. Ale teraz jest zepsuty do tego stopnia, że ​​nie można go użyć.

Czy ktoś może mi pomóc w rozwiązaniu tego problemu? Naprawdę utknąłem w tym momencie.

użytkownik99201
źródło
Przyszło mi do głowy, że twój problem może być związany z regułami zapory. Czy możesz opublikować dane wyjściowe firewall-cmd --query-service=nfs --query-service=mountd --query-service=rpc-bindz serwera NFS?
virtex
1
Ściśle mówiąc „Permissive” nie jest wyłączone i nadal będzie generować komunikaty SELinuksa - ale SELinux niczego nie zaprzeczy w Permissive. W tym trybie możesz zignorować wszelkie odmowy w logach.
Jason Martin
Jason Martin to zrozumiał! Dzięki za wskazówkę na temat SELinuksa.
user99201,
3
Proszę uruchomić rpcdebug -m nfs -s mountponownie Remount następnie wydrukować, co wychodzi z dmesg. Potem biegnij rpcdebug -m nfs -c mount. To brzmi jak błąd parsowania, prawdopodobnie z powodu złych przesłonięć w nfsmount.conf - powinien się jednak pojawić, jeśli zrobisz to w dmesg jądra.
Matthew Ife,
Czy masz rpcbindzainstalowany na komputerze, który zapewnia udział?
13dimitar

Odpowiedzi:

5

Hit ten sam problem dzisiaj. Natknąłem się na opcję nfsvers, szukając wyjaśnienia. Montaż pracował z nfsvers=3i nfsvers=4. Z przyjemnością przedstawię bardziej szczegółowe wyjaśnienia.

root@localhost:~# uname -rm
4.1.15 armv7l
root@localhost:~# mount -t nfs 10.0.0.5:/srv/nfs tmp
mount.nfs: an incorrect mount option was specified
root@localhost:~# mount -t nfs -o nfsvers=1 10.0.0.5:/srv/nfs tmp
mount.nfs: mount system call failed
root@localhost:~# mount -t nfs -o nfsvers=2 10.0.0.5:/srv/nfs tmp
mount.nfs: requested NFS version or transport protocol is not supported
root@localhost:~# mount -t nfs -o nfsvers=3 10.0.0.5:/srv/nfs tmp
root@localhost:~# mount -t nfs -o nfsvers=4 10.0.0.5:/srv/nfs tmp
root@localhost:~#

Ostatnie dwa polecenia powiodły się.

woky
źródło
1

Znalazłem ten problem dzisiaj w Tiny Core Linux, okazało się, że usługa klienta nfs nie została uruchomiona. Po uruchomieniu tej usługi ( /usr/local/etc/init.d/nfs-client start) eksport NFS został zamontowany bez problemu.

Aaron Mason
źródło
1
/usr/local/etcwygląda na niepoprawną instalację klienta nfs, ponieważ plik powinien znajdować się /etc/init.di być powiązany z odpowiednim /etc/rc? .daby rozpocząć automatycznie.
Jan Hudec
@JHHecec tak, w normalnej dystrybucji, ale architektura Tiny Core nie pozwala na to. Możemy dyskutować o standardach, dopóki krowy nie wrócą do domu, ale JeOS leci wbrew normom.
Aaron Mason