J'ai un problème que je recherche sur Google depuis au moins 6 heures 28 heures sans chance. Chaque fois que j'essaie de monter un répertoire, l'erreur suivante apparaît (version détaillée à la fin):
mount.nfs: accès refusé par le serveur lors du montage:
Au départ, j'utilisais computer1
comme serveur nfs, mais je l'ai déplacé vers computer2
et j'essaie de monter sur computers3-8
. De plus, computer2
agit maintenant comme routeur dhcp pour tous les autres ordinateurs (même computer1
), mais je suis presque certain que le problème concerne les paramètres nfs de computer2
car j'ai essayé ce qui suit:
computer1
d'origine sur l'un des clients computers3-8
- SUCCESS.computer1
d'origine sur le nouveau serveur computer2
- SUCCESS.computer2
sur l’un des clients computers3-8
- FAILUREcomputer2
sur l’ancien serveur computer1
- FAILUREcomputer2
- FAILUREcomputer2
- SUCCESSDe plus, j'ai vérifié que les parties pertinentes du fichier /etc/exports
ne contenaient aucune erreur. Par conséquent, je suis presque absolument certain qu'il ne s'agit pas d'un problème d'autorisation.
Question: Étant donné qu'il ne s'agit pas d'une erreur de réseau, quelqu'un peut-il me dire comment lancer le débogage de ce problème?.
Sortie verbeuse:
mount: proc already mounted on /proc
mount: /dev/mmcblk0p5 already mounted on /boot
mount: tmpfs already mounted on /var/tmp
mount: tmpfs already mounted on /var/log
mount.nfs: timeout set for Fri Nov 15 07:27:02 2013
mount.nfs: trying text-based options 'vers=3,rsize=8192,wsize=8192,nolock,addr=192.168.7.1'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 192.168.7.1 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: trying 192.168.7.1 prog 100005 vers 3 prot UDP port 37300
mount.nfs: mount(2): Permission denied
mount.nfs: access denied by server while mounting 192.168.7.1:/home/raspi/Documents/raspi/raspi
Sortie verbeuse 2:
Voici une approche plus directe qui isole le montage sur le seul répertoire en question ici:
$ Sudo mount -v -o "vers=3" 192.168.7.1:/home/raspi/Documents/raspi/raspi /home/raspi/test
mount: no type was given - I'll assume nfs because of the colon
mount.nfs: timeout set for Fri Nov 15 07:47:38 2013
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
J'avais déjà rencontré cette erreur rpc.statd is not running but is required for remote locking
auparavant, mais toutes les recherches sur Google du monde ne m'ont pas aidée du tout ...
EDIT:
Chaos m'a demandé d'exécuter les commandes suivantes et d'afficher les résultats:
D'abord sur le serveur:
SERVER$ Sudo exportfs -rv
exporting raspi1:/home/raspi/Documents/raspi/raspi
exporting raspi2:/home/raspi/Documents/raspi/raspi
exporting raspi3:/home/raspi/Documents/raspi/raspi
exporting raspi4:/home/raspi/Documents/raspi/raspi
exporting raspi5:/home/raspi/Documents/raspi/raspi
exporting raspi6:/home/raspi/Documents/raspi/raspi
exporting raspi7:/home/raspi/Documents/raspi/raspi
exporting raspi8:/home/raspi/Documents/raspi/raspi
exporting raspi9:/home/raspi/Documents/raspi/raspi
exporting raspi10:/home/raspi/Documents/raspi/raspi
exporting raspi11:/home/raspi/Documents/raspi/raspi
exporting raspi12:/home/raspi/Documents/raspi/raspi
exporting raspi13:/home/raspi/Documents/raspi/raspi
exporting raspi14:/home/raspi/Documents/raspi/raspi
exporting raspi15:/home/raspi/Documents/raspi/raspi
exporting raspi16:/home/raspi/Documents/raspi/raspi
exporting raspi17:/home/raspi/Documents/raspi/raspi
exporting raspi18:/home/raspi/Documents/raspi/raspi
exporting raspi19:/home/raspi/Documents/raspi/raspi
exporting raspi20:/home/raspi/Documents/raspi/raspi
exporting raspi21:/home/raspi/Documents/raspi/raspi
exporting raspi22:/home/raspi/Documents/raspi/raspi
exporting raspi23:/home/raspi/Documents/raspi/raspi
exporting raspi24:/home/raspi/Documents/raspi/raspi
exporting raspi25:/home/raspi/Documents/raspi/raspi
exporting raspi26:/home/raspi/Documents/raspi/raspi
exporting raspi27:/home/raspi/Documents/raspi/raspi
exporting raspi28:/home/raspi/Documents/raspi/raspi
exporting raspi29:/home/raspi/Documents/raspi/raspi
exporting raspi30:/home/raspi/Documents/raspi/raspi
exporting raspi5:/home/raspi/Downloads
exporting 192.168.7.105:/home/raspi/Documents/raspi
Et puis sur le client
CLIENT$ showmount -e 192.168.7.1
Export list for 192.168.7.1:
/home/raspi/Documents/raspi 192.168.7.105
/home/raspi/Documents/raspi/raspi raspi30,raspi29,raspi28,raspi27,raspi26,raspi25,raspi24,raspi23,raspi22,raspi21,raspi20,raspi19,raspi18,raspi17,raspi16,raspi15,raspi14,raspi13,raspi12,raspi11,raspi10,raspi9,raspi8,raspi7,raspi6,raspi5,raspi4,raspi3,raspi2,raspi1
/home/raspi/Downloads raspi5
CLIENT$ Sudo mount -a
mount.nfs: access denied by server while mounting 192.168.7.1:/home/raspi/Documents/raspi/raspi
CLIENT$ Sudo tail -f /var/log/daemon.log 2>&1
Nov 15 21:35:55 raspi5 dhclient: bound to 192.168.7.105 -- renewal in 250 seconds.
Nov 15 21:40:05 raspi5 dhclient: DHCPREQUEST on eth0 to 192.168.7.1 port 67
Nov 15 21:40:05 raspi5 dhclient: DHCPACK from 192.168.7.1
Nov 15 21:40:05 raspi5 dhclient: bound to 192.168.7.105 -- renewal in 294 seconds.
Nov 15 21:44:59 raspi5 dhclient: DHCPREQUEST on eth0 to 192.168.7.1 port 67
Nov 15 21:44:59 raspi5 dhclient: DHCPACK from 192.168.7.1
Nov 15 21:44:59 raspi5 dhclient: bound to 192.168.7.105 -- renewal in 262 seconds.
Nov 15 21:49:21 raspi5 dhclient: DHCPREQUEST on eth0 to 192.168.7.1 port 67
Nov 15 21:49:21 raspi5 dhclient: DHCPACK from 192.168.7.1
Nov 15 21:49:21 raspi5 dhclient: bound to 192.168.7.105 -- renewal in 273 seconds.
EDIT 2 :
Chaos m'a demandé de poursuivre l'exécution des commandes suivantes et d'afficher les résultats:
SERVER$ ping raspi5
PING raspi5 (192.168.7.105) 56(84) bytes of data.
64 bytes from raspi5 (192.168.7.105): icmp_seq=1 ttl=64 time=0.699 ms
64 bytes from raspi5 (192.168.7.105): icmp_seq=2 ttl=64 time=0.683 ms
SERVER$ Sudo tail -f /var/log/daemon.log
tail: cannot open ‘/var/log/daemon.log’ for reading: No such file or directory
Voici mon fichier /etc/exports
sur le serveur. Comme vous pouvez le constater, j'essaie d'utiliser son nom tel que défini dans /etc/hosts
, son adresse IP, et j'essaie également d'exporter différents dossiers. Toutes les autres lignes que j'ai omises car elles ne sont que des doublons de la dernière ligne, elles sont simplement redirigées vers différents raspis.
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/home/raspi/Downloads raspi5(rw,sync,no_subtree_check,no_root_squash)
/home/raspi/Documents/raspi/ 192.168.7.105(rw,sync,no_subtree_check,no_root_squash,fsid=0)
/home/raspi/Documents/raspi/raspi raspi5(rw,sync,no_subtree_check,no_root_squash,fsid=0)
Voici mon fichier /etc/fstab
sur mon client raspi5
proc /proc proc defaults 0 0
/dev/mmcblk0p5 /boot vfat defaults 0 2
/dev/mmcblk0p6 / ext4 defaults,noatime 0 1
# a swapfile is not a swap partition, so no using swapon|off from here on, use dphys-swapfile swap[on|off] for that
#automatically mount the shared raspi folder(s)
# Remember that NFS4 is AIDS, so use NFS3
192.168.7.1:/home/raspi/Documents/raspi/raspi /home/raspi/ nfs nfsvers=3,rsize=8192,wsize=8192,rw,auto,nolock 0 0
# Move highly used directories to RAM
tmpfs /var/tmp tmpfs nodev,nosuid,size=50M 0 0
tmpfs /var/log tmpfs nodev,nosuid,size=50M 0 0
EDIT 3:
Suite à certains conseils ici J'ai également défini le drapeau insecure
dans les exportations, mais en vain, et voici la sortie de rpcinfo -p
sur le client et le serveur:
CLIENT$ Sudo 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 53553 status
100024 1 tcp 60026 status
SERVER$ 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 42430 status
100024 1 tcp 49377 status
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 2 tcp 2049
100227 3 tcp 2049
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 2 udp 2049
100227 3 udp 2049
100021 1 udp 33106 nlockmgr
100021 3 udp 33106 nlockmgr
100021 4 udp 33106 nlockmgr
100021 1 tcp 47922 nlockmgr
100021 3 tcp 47922 nlockmgr
100021 4 tcp 47922 nlockmgr
100005 1 udp 50875 mountd
100005 1 tcp 53329 mountd
100005 2 udp 53583 mountd
100005 2 tcp 42062 mountd
100005 3 udp 36556 mountd
100005 3 tcp 39984 mountd
EDIT 4:
En suivant quelques conseils ici J'ai les journaux de débogage suivants:
[ 2233.803852] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[ 2233.803885] NFSD: starting 90-second grace period (net ffffffff81cd29c0)
[ 3261.750455] nfsd: last server has exited, flushing export cache
[ 3262.912654] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[ 3262.912688] NFSD: starting 90-second grace period (net ffffffff81cd29c0)
[ 5231.798334] nfsd: last server has exited, flushing export cache
[ 5232.956633] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[ 5232.956668] NFSD: starting 90-second grace period (net ffffffff81cd29c0)
[ 5350.889640] nfsd: last server has exited, flushing export cache
[ 5352.023534] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[ 5352.023577] NFSD: starting 90-second grace period (net ffffffff81cd29c0)
[ 5517.837425] nfsd: last server has exited, flushing export cache
[ 5518.987793] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[ 5518.987826] NFSD: starting 90-second grace period (net ffffffff81cd29c0)
[56604.080162] Netfilter messages via NETLINK v0.30.
[56707.453535] nfsd: last server has exited, flushing export cache
[56708.605020] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[56708.605057] NFSD: starting 90-second grace period (net ffffffff81cd29c0)
[57338.926093] NFSD: laundromat service - starting
[57338.926105] NFSD: laundromat_main - sleeping for 90 seconds
[57363.216188] nfsd: freeing readahead buffers.
[57363.216244] nfsd: last server has exited, flushing export cache
[57364.351041] set_max_drc nfsd_drc_max_mem 6008832
[57364.354764] nfsd: creating service
[57364.354771] nfsd: allocating 32 readahead buffers.
[57364.356023] nfsd4_umh_cltrack_upcall: cltrack_prog is disabled
[57364.356040] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[57364.356072] NFSD: starting 90-second grace period (net ffffffff81cd29c0)
[57364.369688] nfsd_dispatch: vers 3 proc 0
[57372.738225] nfsd_dispatch: vers 4 proc 0
[57372.753507] nfsd_dispatch: vers 4 proc 1
[57372.753521] nfsv4 compound op #1/3: 24 (OP_PUTROOTFH)
[57372.755550] exp_export: export of invalid fs type.
[57372.755679] found domain 192.168.7.105,raspi5
[57372.755685] found fsidtype 1
[57372.755690] found fsid length 4
[57372.755695] Path seems to be <>
[57372.755722] nfsv4 compound op ffff8801a47ec080 opcnt 3 #1: 24: status 2
[57372.755731] nfsv4 compound returned 2
[57372.779429] nfsd_dispatch: vers 3 proc 0
[57372.792595] exp_export: export of invalid fs type.
EDIT 5:
J'ai fait des progrès et en ai déduit ce qui suit
telnet 192.168.7.1 2049
nfs-kernel-server 1:1.2.4-1
alors que le nouveau serveur qui ne prend pas en charge le montage exécute nfs-kernel-server 1:1.2.8-2
Sudo /etc/init.d/portmap restart
fonctionne sur l'ancien serveur, mais pas sur le nouveau serveur, ce qui m'indique que portmap est manquant sur le nouveau serveur. Cependant, lorsque j'essaie de l'installer via Sudo apt-get install portmap
, il me dit que Note, selecting 'rpcbind' instead of 'portmap', and that
rpcbind est déjà la version la plus récente`Éditer 6:
Voici la sortie de iptables -L
sur mon serveur:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
LOG all -- anywhere anywhere LOG level warning
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
et les ports corrects sont ouverts:
CLIENT$ nmap -P0 192.168.7.1
Starting Nmap 6.00 ( http://nmap.org ) at 2013-11-16 06:44 UTC
Nmap scan report for raspiserver (192.168.7.1)
Host is up (0.0095s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
2049/tcp open nfs
Nmap done: 1 IP address (1 Host up) scanned in 1.55 seconds
J'ai eu le même problème que l'OP. Cela fonctionnait pour moi, mais après une mise à jour, cela ne fonctionnait pas. La solution consistait à ajouter l'option "nfsvers = 3".
Mes deux collègues au travail viennent de résoudre un problème similaire au sein de Vagrant. AppArmor était le coupable, une solution peut être trouvée ici , citant:
mount: cannot mount block device /some/path read-only
et dmesg montre:
[ 6944.194280] type=1400 audit(1385049795.420:32): apparmor="DENIED" operation="mount" info="failed type match" error=-13 parent=6631 profile="lxc-container-default" name="/some/other/path" pid=6632 comm="mount" srcname="/some/path" flags="rw, bind"
AppArmor bloque mount -o bind à l'intérieur du conteneur LXC.
Pour activer l'identifiant, ajoutez /etc/apparmor.d/lxc/lxc-default
:
profile lxc-container-default flags=(attach_disconnected,mediate_deleted) {
...
mount options=(rw, bind),
...
Recharger apparmor:
# /etc/init.d/apparmor reload
Tout d'abord, l'erreur rpc.statd se produit car le démon n'est pas en cours d'exécution. Démarrez le démon en:
Sudo service statd start
Deuxièmement, l'option de montage vers=3
est fausse, alors qu'elle devrait l'être
nfsvers=3
Si le serveur ne monte pas sur localhost, le problème ne vient pas du réseau.
Jetez un coup d’œil à /etc/hosts.deny et à /etc/hosts.allow.
Seulement pour d'autres problèmes ...: J'ai joué ces jours avec une ancienne version de NFS. J'avais un commutateur intermédiaire entre deux hôtes qui autorisait toutes les communications TCP et UDP à partir de ServerIP <-> ClientIP. Telnet fonctionnait sur tous les ports ... mais pas rpcinfo -p.
Nous avons constaté que le commutateur avait une fonctionnalité appelée "inspecter" qui inspectait tous les paquets "sunrpc" et, si la version ne figurait pas dans les versions "autorisées", supprimait les paquets sans rien enregistrer. C'est ce qu'on appelle "Inspection de protocole de couche d'application". http://www.Cisco.com/c/en/us/td/docs/security/fwsm/fwsm31/configuration/guide/fwsm_cfg/inspct_f.html#wp1349924
Après cela, nous avons également constaté que nous devions configurer des ports statiques pour le pare-feu, mais c’est un autre problème.
Il peut être intéressant de mentionner (même si ce n'est probablement pas le cas ici) que si vous obtenez soudainement cette erreur après avoir renommé un dossier ou tenté d'accéder à un nouveau, vous avez peut-être oublié que vous devez spécifier le côté serveur. les dossiers sont partagés et ce qui ne se trouve pas dans /etc/exports
- c'était le problème dans mon cas.
Après avoir modifié ce fichier, vous devez également procéder à Sudo service nfs-kernel-server restart