Problems with NFS and OpenSuse 13.2

I just upgraded from OpenSuse 12.3 to 13.2.

Now I have a problem with NFS, which I did not have before. I have here my NFS-Server with the following line in /etc/exports:

/data/mobotix  192.168.0.9(no_root_squash,no_all_squash,no_acl,no_subtree_check,async,rw,wdelay,insecure)

And in /var/log/messages I see lines like this:

Dec 26 18:21:19 somename rpc.mountd[13183]: authenticated mount request from 192.168.0.9:769 for /data/mobotix (/data/mobotix)

/etc/sysconfig/nfs looks like this:

grep "^^#]" /etc/sysconfig/nfs
USE_KERNEL_NFSD_NUMBER="4"
MOUNTD_PORT=""
NFS_SECURITY_GSS="no"
NFS4_SUPPORT="no"
SM_NOTIFY_OPTIONS=""
NFS_START_SERVICES=""
NFS3_SERVER_SUPPORT="yes"
STATD_OPTIONS=""
NFSV4LEASETIME=""
RPC_PIPEFS_DIR=""
SVCGSSD_OPTIONS=""
NFSD_OPTIONS=""
GSSD_OPTIONS=""
NFS4_SERVER_MINOR_VERSION="0"
MOUNTD_OPTIONS=""
NFS_GSSD_AVOID_DNS="no"

Of course /data/mobotix exists, it has 777 permissions, so all should be fine.

And on the other side, the client side, I have a Mobotix Webcam. It is some embedded Linux, but sorry no shell available. The only thing I see there is this one:

18:21:19        STORAGE         init[349]       mount failed! 
18:21:19        STORAGE         init[349]       mount: wrong fs type, bad option, bad superblock on 192.168.0.128:/data/mobotix,
18:21:19        STORAGE         init[349]       or too many mounted file systems 

The mobotix shows a small help text and suggests the following:

In order to grant access to camera 192.168.0.9

on server 192.168.0.128 via NFS, do

the following:

1. As root user, add the following line to the file

/etc/exports at server 192.168.0.128 (e.g. linux):

/data/mobotix 192.168.0.9(rw,async,no_root_squash)

2. As root user, grant write access to user 65534 and group 0:

mkdir -p /data/mobotix
chown -R 65534:0 /data/mobotix
chmod 755 /data/mobotix

3. Make sure that the NFS service on the server runs on the

server system.

The commands depend on your system. Example:

/etc/init.d/nfsserver restart

Well, that worked a long time ago, with Suse 10 (as I remember) starting with OpenSuse 11 (or 12, not sure, too long ago) I had to add a few more options to /etc/exports, and I had to turn on NFS 3 support in the kernel. However, the line in /etc/exports (quoted above) worked with OpenSuse 12.3, I have also tried changing a few others, but see no difference in the messages on the server and the client.

Any ideas? Thanks!

My conf for comparison:

henk@boven:~> grep "^^#]" /etc/sysconfig/nfs
USE_KERNEL_NFSD_NUMBER="4"
MOUNTD_PORT=""
NFS_SECURITY_GSS="no"
NFS3_SERVER_SUPPORT="yes"
NFS4_SUPPORT="no"
NFS4_SERVER_MINOR_VERSION="0"
SM_NOTIFY_OPTIONS=""
NFS_START_SERVICES="yes"
STATD_OPTIONS=""
NFSV4LEASETIME=""
RPC_PIPEFS_DIR=""
SVCGSSD_OPTIONS=""
NFSD_OPTIONS=""
GSSD_OPTIONS=""
MOUNTD_OPTIONS=""
NFS_GSSD_AVOID_DNS="no"
henk@boven:~

If I see it, only NFS_START_SERVICES=“yes” is different rom yours.

Als, did you check if portmap, mountd, etc is running?

Either use YaST > Network Services > NFS server and/or YaST > System > Services Manager (nfsserver should be Enabled and Active) to check (and/or start them).

Thanks, but did not help :frowning:

portmap listens on port 111,

# netstat -tpln| grep 111
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           
tcp        0      0 :::111                  :::*                    LISTEN      1/systemd

And with my really little knowledge of systemd, it seems it is running

# systemctl status rpcbind
rpcbind.service - RPC Bind
   Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; enabled)
   Active: active (running) since Fri 2014-12-26 14:54:43 CET; 6h ago

I add a tcpdump of one of the tries the Mobotix does to access the NFS-server, maybe someone can see the problem?

# tcpdump -vvv -i br0 host 192.168.0.9
tcpdump: listening on br0, link-type EN10MB (Ethernet), capture size 262144 bytes
21:23:38.314460 IP (tos 0x0, ttl 64, id 15426, offset 0, flags [none], proto UDP (17), length 84)
    mobotix.807 > somename.home.netz.sunrpc: [udp sum ok] UDP, length 56
21:23:38.314744 IP (tos 0x0, ttl 64, id 6302, offset 0, flags [DF], proto UDP (17), length 56)
    somename.home.netz.sunrpc > mobotix.807: [bad udp cksum 0x820f -> 0x5b7e!] UDP, length 28
21:23:38.409994 IP (tos 0x0, ttl 64, id 15427, offset 0, flags [DF], proto TCP (6), length 60)
    mobotix.808 > somename.home.netz.mountd: Flags [S], cksum 0x1d1b (correct), seq 18958293, win 16060, options [mss 1460,sackOK,TS val 1363923 ecr 0,nop,wscale 0], length 0
21:23:38.410048 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 60)
    somename.home.netz.mountd > mobotix.808: Flags [S.], cksum 0x8208 (incorrect -> 0xce93), seq 1411918344, ack 18958294, win 28960, options [mss 1460,sackOK,TS val 23043195 ecr 1363923,nop,wscale 7], length 0
21:23:38.410458 IP (tos 0x0, ttl 64, id 15428, offset 0, flags [DF], proto TCP (6), length 52)
    mobotix.808 > somename.home.netz.mountd: Flags .], cksum 0x2fc4 (correct), seq 1, ack 1, win 16060, options [nop,nop,TS val 1363923 ecr 23043195], length 0
21:23:38.411509 IP (tos 0x0, ttl 64, id 15429, offset 0, flags [DF], proto TCP (6), length 144)
    mobotix.808 > somename.home.netz.mountd: Flags [P.], cksum 0x29ef (correct), seq 1:93, ack 1, win 16060, options [nop,nop,TS val 1363923 ecr 23043195], length 92
21:23:38.411523 IP (tos 0x0, ttl 64, id 46706, offset 0, flags [DF], proto TCP (6), length 52)
    somename.home.netz.mountd > mobotix.808: Flags .], cksum 0x8200 (incorrect -> 0x6d40), seq 1, ack 93, win 227, options [nop,nop,TS val 23043196 ecr 1363923], length 0
21:23:38.411917 IP (tos 0x0, ttl 64, id 46707, offset 0, flags [DF], proto TCP (6), length 116)
    somename.home.netz.mountd > mobotix.808: Flags [P.], cksum 0x8240 (incorrect -> 0x60df), seq 1:65, ack 93, win 227, options [nop,nop,TS val 23043197 ecr 1363923], length 64
21:23:38.412386 IP (tos 0x0, ttl 64, id 15430, offset 0, flags [DF], proto TCP (6), length 52)
    mobotix.808 > somename.home.netz.mountd: Flags .], cksum 0x2f26 (correct), seq 93, ack 65, win 16060, options [nop,nop,TS val 1363923 ecr 23043197], length 0
21:23:38.413264 IP (tos 0x0, ttl 64, id 15431, offset 0, flags [none], proto UDP (17), length 84)
    mobotix.fcp-udp > somename.home.netz.sunrpc: [udp sum ok] UDP, length 56
21:23:38.413418 IP (tos 0x0, ttl 64, id 6366, offset 0, flags [DF], proto UDP (17), length 56)
    somename.home.netz.sunrpc > mobotix.fcp-udp: [bad udp cksum 0x820f -> 0x63fc!] UDP, length 28
21:23:38.414209 IP (tos 0x0, ttl 64, id 15432, offset 0, flags [DF], proto TCP (6), length 52)
    mobotix.808 > somename.home.netz.mountd: Flags [F.], cksum 0x2f25 (correct), seq 93, ack 65, win 16060, options [nop,nop,TS val 1363923 ecr 23043197], length 0
21:23:38.414236 IP (tos 0x0, ttl 64, id 46708, offset 0, flags [DF], proto TCP (6), length 52)
    somename.home.netz.mountd > mobotix.808: Flags [F.], cksum 0x8200 (incorrect -> 0x6cfb), seq 65, ack 94, win 227, options [nop,nop,TS val 23043199 ecr 1363923], length 0
21:23:38.414630 IP (tos 0x0, ttl 64, id 15433, offset 0, flags [DF], proto TCP (6), length 52)
    mobotix.808 > somename.home.netz.mountd: Flags .], cksum 0x2f22 (correct), seq 94, ack 66, win 16060, options [nop,nop,TS val 1363923 ecr 23043199], length 0
21:23:38.599283 IP (tos 0x0, ttl 64, id 15434, offset 0, flags [none], proto UDP (17), length 128)
    mobotix.mdbs-daemon > somename.home.netz.nfs: NFS request xid 288745944 100 getattr fh Unknown/0100010001000000000000000000000000000000000000000000000000000000
21:23:38.599383 IP (tos 0x0, ttl 64, id 6500, offset 0, flags [DF], proto UDP (17), length 60)
    somename.home.netz.nfs > mobotix.mdbs-daemon: NFS reply xid 288745944 reply ok 32 getattr PROG_MISMATCH
21:23:38.600008 IP (tos 0x0, ttl 64, id 15435, offset 0, flags [none], proto UDP (17), length 128)
    mobotix.mdbs-daemon > somename.home.netz.nfs: NFS request xid 288745944 100 getattr fh Unknown/0100010001000000000000000000000000000000000000000000000000000000
21:23:38.600029 IP (tos 0x0, ttl 64, id 6501, offset 0, flags [DF], proto UDP (17), length 60)
    somename.home.netz.nfs > mobotix.mdbs-daemon: NFS reply xid 288745944 reply ok 32 getattr PROG_MISMATCH
21:23:38.607053 IP (tos 0x0, ttl 64, id 15436, offset 0, flags [none], proto UDP (17), length 128)
    mobotix.mdbs-daemon > somename.home.netz.nfs: NFS request xid 288745944 100 getattr fh Unknown/0100010001000000000000000000000000000000000000000000000000000000
21:23:38.607104 IP (tos 0x0, ttl 64, id 6507, offset 0, flags [DF], proto UDP (17), length 60)
    somename.home.netz.nfs > mobotix.mdbs-daemon: NFS reply xid 288745944 reply ok 32 getattr PROG_MISMATCH

BTW: The Mobotix webcam is running kernel 2.2.9 … almost old I bought it 9 years ago and a long time ago I did one single update.

Now this one is getting weird!

In the Linux kernel, I find an option “noacl” (without underscore!)

somename:/usr/src/linux/fs/nfs # grep -rw noacl .
./Kconfig:        extension.  You can choose N here or specify the "noacl" mount
./super.c:      { Opt_noacl, "noacl" },
./super.c:              { NFS_MOUNT_NOACL, ",noacl", "" },

But adding “noacl” (without underscore) to /etc/exports causes exportfs -a to report an error

exportfs -a
exportfs: /etc/exports:1: unknown keyword "noacl"

However, adding that unliked noacl to /etc/exports causes a different error in my message log.

Dec 27 12:49:06 somename rpc.mountd[22676]: refused mount request from 192.168.0.9 for /data/mobotix (/data/mobotix): unmatched host

Still investigating …

On 2014-12-26 18:46, Wurgl1 wrote:
>
> I just upgraded from OpenSuse 12.3 to 13.2.

I assume you upgraded the server.

What upgrade method did you use?

> Now I have a problem with NFS, which I did not have before. I have here
> my NFS-Server with the following line in /etc/exports:

The first step is to mount it on localhost. The next would be to import
it on another machine running a Linux you can control - if that is not
available, create a virtual machine.

> And on the other side, the client side, I have a Mobotix Webcam. It is
> some embedded Linux, but sorry no shell available. The only thing I see
> there is this one:
>
> Code:
> --------------------
> 18:21:19 STORAGE init[349] mount failed!
> 18:21:19 STORAGE init[349] mount: wrong fs type, bad option, bad superblock on 192.168.0.128:/data/mobotix,
> 18:21:19 STORAGE init[349] or too many mounted file systems
> --------------------

Perhaps you reformatted /data/mobotix on the server?


Cheers / Saludos,

Carlos E. R.
(from 13.1 x86_64 “Bottle” at Telcontar)

Removed the dust from my good old Debian 4.0 with Kernel 2.4.27 (Argh! AMD K5-233) and found that this machine can mount sucessfully. Tried that with multiple different entries in /etc/exports. It never failed (as long as I did not make a typo like noacl instead of no_acl or similar). So NFS in general works.

How I upgraded can be seen here, and yes there was a typo and I fixed that, refreshed that repository, updated, … and all that. Did not help :frowning:
https://forums.opensuse.org/showthread.php/503854-Nasty-Yast2-message-how-to-get-rid-of-it?p=2685526#post2685526

Yes.

    mobotix.mdbs-daemon > somename.home.netz.nfs: NFS request xid 288745944 100 getattr fh Unknown/0100010001000000000000000000000000000000000000000000000000000000
    somename.home.netz.nfs > mobotix.mdbs-daemon: NFS reply xid 288745944 reply ok 32 getattr PROG_MISMATCH

BTW: The Mobotix webcam is running kernel 2.2.9 … almost old I bought it 9 years ago and a long time ago I did one single update.

PROG_MISMATCH hints at incorrect NFS version. Are you sure your client does not attempt NFSv2? Could you make a capture with size 1500 - so to get full packets - and make binary file available?

exportfs -a
exportfs: /etc/exports:1: unknown keyword “noacl”

“noacl” is client side option.

Before:

# cat /proc/fs/nfsd/versions 
-2 +3 -4 -4.1 -4.2

Hacking /etc/init.d/nfsserver, added VERSION_PARAMS=“$VERSION_PARAMS --nfs-version 2”

I did not see the needed line in /etc/sysconfig/nfs :frowning:

Now:

# cat /proc/fs/nfsd/versions 
+2 +3 -4 -4.1 -4.2

Works!

Thanks!

Hello Wurgl1, can you tell “what the hack” you did in /etc/init.d/nfsserver ?
Trying to put an else around line 234 VERSION_PARAMS= was in vain.
Tracing shows also “reply ok 32 fsstat PROG_MISMATCH” be it that instead of getattr, my trace shows fsstat .
Before 13.2 it worked well with eComstation (OS/2) and Opensuse 13.1 on this machine and it still does work well with another 13.1 machine.
Please let me know, thanks in advance.

[QUOTE=pa0hwn;2705690]Hello Wurgl1, can you tell “what the hack” you did in /etc/init.d/nfsserver ?
/QUOTE]

Brute force :wink:


***************
*** 218,223 ****
--- 218,224 ----
        if  "$NFS4_SERVER_MINOR_VERSION" != "0" ]; then
         VERSION_PARAMS="$VERSION_PARAMS --nfs-version 4 --nfs-version 4.$NFS4_SERVER_MINOR_VERSION"
        fi
+       VERSION_PARAMS="$VERSION_PARAMS --nfs-version 2"
        for fl in /proc/fs/nfsd/nfsv4leasetime /proc/fs/nfsd/nfsv4gracetime /proc/sys/fs/nfs/nlm_grace_period
        do
            if  -n "$NFSV4LEASETIME" -a -f $fl ]; then

Hope that helps ;^)

[QUOTE=wurgl1;Brute force :wink:
/QUOTE]

Well the force is with you!!

Thank you very much!!