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
/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.