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. Commented Jan 29, 2021 at 15:18
  • Yes, you assumed right, but the issue has been resolved. Anyway, thank you for your input! Commented 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.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.