配置
我在 Raspberry Pi 4 上运行版本 3.13.0。/etc/export/
看起来像这样:
/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)
最初,我将 NFS 限制为版本 4 和 4.1 /etc/conf.d/nfs
,但在发现问题后我将所有内容恢复为默认值。
问题
我尝试将 btrfs 格式的驱动器和 ExFat 格式的驱动器安装到/export/drive
.两者都在主机系统上按预期工作。
在客户端系统上安装对于/export/test
和都可以正常工作/export
,但是安装/export/drive
只是冻结了提示:没有错误消息,什么也没有。我等了几分钟。
安装时/export
,尝试通过查看内容/export
或drive
子目录ls
也会冻结提示,如上所述。不过,列出工作内容/export/test
。
我在安装时没有指定任何选项:mount 10.0.0.20:/drive /mnt/drive
运行exportfs -arv
不会报任何错误。
服务器的日志没有显示任何异常,(失败的)安装尝试/export/drive
产生了与成功安装相同的消息/export/test
。
我尝试过的
我尝试跑步rcpdebug -m nfsd -s all
(按照建议这个简短的指南)导致此错误:
/proc/sys/sunrpc/nfsd_debug: No such file or directory
我还尝试添加该mp
选项,该选项仅导出指定的路径(如果是安装点)。我对两者/export/test
都进行了尝试drive
:安装/test
已成功被阻止;安装/drive
与以前没有什么不同。
最后,我在客户端系统上复制了设置并颠倒了角色:使用与上述相同的配置设置我的 Gentoo 系统,访问/export/drive
从阿尔卑斯系统——有效!
更新
我还检查了nfsstat
,一切看起来正常:零badcalls、badclnt、badauth。
在客户端上运行nfsstat -m
(失败)安装后没有打印任何内容/drive
- 但它给出了结果/test
。
所以我想也许客户是问题所在。在mount localhost:/drive /mnt/drive
我的 Alpine 和 Gentoo 系统上,结果都没有改变:只要 Alpine 作为服务器,安装就会导致冻结。
最后,我尝试使用 强制 NFS 3 -o nfsvers=3
,导致与平常相同的结果(/test
有效,/drive
冻结)。
问题
- 我可以尝试什么才能使这项功能在 Alpine 上运行?
- 我应该考虑任何安装选项吗?
- 我该如何利用
rcpdebug
? - 是否有其他方法可以增加冗长性并获取更多信息?
- 我可以提供哪些信息来方便地帮助我?
- 我还可以在哪里寻求支持?
任何提示非常感谢!谢谢你!
我最初问这个问题r/AlpineLinux。
编辑
我在不同操作系统(Gentoo、Raspberry Pi OS Lite)上测试相同的设置时没有遇到任何问题。我相信这是 Alpine Linux 的一个错误;我开了一个问题:https://gitlab.alpinelinux.org/alpine/aports/-/issues/12360
答案1
fsid
失踪。/etc/exports
现在看起来像这样:
/export *(fsid=root,sync,no_subtree_check,crossmnt)
/export/test *(sync,no_subtree_check)
/export/drive *(sync,no_subtree_check,fsid=1)
有关更多上下文和解释,请查看现在问题已解决。