1

The Config

I am running Version 3.13.0 on a Raspberry Pi 4. /etc/export/ looks like this:

/export  *(fsid=root,sync,crossmnt,nohide,no_subtree_check)

# regular directory that can be mounted correctly by client
/export/test  *(sync,crossmnt,no_subtree_check)

# mount point of /dev/sdb1; cannot be mounted by client
/export/drive  *(sync,crossmnt,no_subtree_check)

Initially, I restricted NFS to version 4 and 4.1 in /etc/conf.d/nfs, but I restored everything to default after discovering my problem.

The Problem

I tried mounting a btrfs formatted drive and an ExFat formatted drive to /export/drive. Both worked as expected on the host system.

Mounting on the client system worked correctly both for /export/test and /export, but mounting /export/drive just froze the prompt: No error message, nothing. I waited for several minutes.

When mounting /export, trying to view either the content of /export or the drive sub-directory via ls also froze the prompt, as described above. Listing the content of /export/test worked, though.

I did not specify any options when mounting: mount 10.0.0.20:/drive /mnt/drive

Running exportfs -arv doesn’t report any errors.

The server’s log doesn’t show anything unusual, the (failed) mount attempt of /export/drive produced the same message as successfully mounting /export/test.

What I tried

I tried running rcpdebug -m nfsd -s all (as suggested by this short guide) resulting in this error:

/proc/sys/sunrpc/nfsd_debug: No such file or directory

I also tried adding the mp option, which should only export the specified path if is a mount point. I tried it for both /export/test and drive: Mounting /test has successfully been prevented; mounting /drive was not different from before.

Finally, I replicated the setup on the client system and reversed roles: Setting up my Gentoo system with the same configuration as described above, accessing /export/drive from the Alpine system — it worked!

Update

I also checked nfsstat, where everything looks normal: zero badcalls, badclnt, badauth.

Running nfsstat -m on the client did not print anything after (unsuccessfully) mounting /drive — it gave a result with /test, though.

So I thought that maybe the client could be the problem. With mount localhost:/drive /mnt/drive on both my Alpine and Gentoo system the results did not change: Mounting results in a freeze whenever Alpine acts as server.

Finally, I tried forcing NFS 3 with -o nfsvers=3, leading to the same results as usual (/test works, /drive freezes).

Questions

  • What can I try to make this work on Alpine?
  • Are there any mount options I should consider?
  • How can I make use of rcpdebug?
  • Is there another way to increase verbosity and gain more information?
  • Which kind of information can I provide to ease helping me?
  • Where else can I ask for support?

Any hint is highly appreciated! Thank you!

I initially asked this question on r/AlpineLinux.


Edit

I did not encounter any problems testing the same setup with different operating systems (Gentoo, Raspberry Pi OS Lite). I believe it is a bug with Alpine Linux; I opened an issue: https://gitlab.alpinelinux.org/alpine/aports/-/issues/12360

2
  • What exactly is mounted on the server at /export/drive? I assume it's a filesystem on /dev/sdb1, but you need to provide that detail both here and in the bug report you filed. Jan 29, 2021 at 15:18
  • Yes, you assumed right, but the issue has been resolved. Anyway, thank you for your input!
    – smeikx
    Jan 30, 2021 at 19:59

1 Answer 1

2

fsid was missing. /etc/exports now looks like this:

/export *(fsid=root,sync,no_subtree_check,crossmnt)
/export/test *(sync,no_subtree_check)
/export/drive *(sync,no_subtree_check,fsid=1)

For further context and explanations, check out the now resolved issue.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .