首页 > 解决方案 > NFS 挂载超时

问题描述

像这样,我的服务器端配置/lenge/gnu/aarch64_sysroot_nfs 192.168.137.8(rw,sync,no_subtree_check)在 /etc/exports 中。

[4.995341] Root-NFS:nfsroot=/lenge/gnu/aarch64_sysroot_nfs
[4.999167] NFS:nfs mount opts='vers=2,udp,rsize=4096,wsize=4096,nolock,addr=192.168.137.188'
[5.001094] NFS: 解析 nfs 挂载选项 'vers=2'
[5.002329] NFS: 解析 nfs 挂载选项 'udp'
[5.002843] NFS: 解析 nfs 挂载选项 'rsize=4096'
[5.004294] NFS: 解析 nfs 挂载选项'wsize=4096 '
[5.004996] NFS:解析 nfs 挂载选项 'nolock'
[5.005533] NFS:解析 nfs 挂载选项'addr=192.168.137.188'
[5.008949] NFS:MNTPATH:'/lenge/gnu/aarch64_sysroot_nfs'
[5.010838] NFS:发送MNT 请求 192.168.137。188:/lenge/gnu/aarch64_sysroot_nfs
[5.138789] NFS:MNT 请求成功
[5.139382] NFS:伪造 auth_flavs 列表
[5.144674] NFS:尝试使用 auth flavor 1
[10.357008] NFS:nfs mount opts='vers=2,udp,rsize=4096,wsize= 4096,nolock,addr=192.168.137.188'
[10.357996] NFS: 解析 nfs 挂载选项 'vers=2'
[10.358620] NFS: 解析 nfs 挂载选项 'udp'
[10.359131] NFS: 解析 nfs 挂载选项 'rsize=4096'
[10.359734] NFS:解析 nfs 挂载选项“wsize=4096”
[10.360856] NFS:解析 nfs 挂载选项“nolock”
[10.361537] NFS:解析 nfs 挂载选项“addr=192.168.137.188”
[10.362440] NFS: MNTPATH: '/lenge/gnu/aarch64_sysroot_nfs'
[10.363178] NFS: 发送 MNT 请求 192.168.137.188:/lenge/gnu/aarch64_sysroot_nfs
[10.377199] NFS: MNT 请求成功
NFS: Faking up [10.3776666列表
[10.378161] NFS:尝试使用身份验证风格 1

那么,有什么问题呢?</p>

标签: linux-kernelnfs

解决方案


我也有这个问题。我的 /etc/exports 看起来像你的,但我的问题在于我的 uEnv.txt,特别是我如何告诉内核通过 NFS 挂载 rootfs。请参阅总结问题和解决方案的图像。

问题方案

在 BeagleBoneBlack 的nfsroot.txt内核文档的第 2 节中, 它指出 NFS 设备及其定位需要以下列方式传递给内核:

root=/dev/nfs

这是启用伪 NFS 设备所必需的。请注意,它不是真实设备,而只是告诉内核使用 NFS 而不是真实设备的同义词。

nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]

如果命令行中没有给出 `nfsroot' 参数,将使用默认的“/tftpboot/%s”。

指定 NFS 服务器的 IP 地址。默认地址由“ip”参数确定(见下文)。此参数允许使用不同的服务器进行 IP 自动配置和 NFS。

服务器上要以 root 身份挂载的目录的名称。如果字符串中有“%s”标记,它将被客户端 IP 地址的 ASCII 表示形式替换。

标准 NFS 选项。所有选项都用逗号分隔。使用以下默认值: port = 由服务器端口映射守护程序给出 rsize = 4096 wsize = 4096 timeo = 7 retrans = 3 acregmin = 3 acregmax = 60 acdirmin = 30 acdirmax = 60 flags = hard, nointr, noposix, cto, ac

根据@Sam Protsenko 的建议,我确实将 nfsvers=3 添加到我的 nfs-options 中,但我不确定这是否单独或与上述更改相结合是导致内核挂载 rootfs 的原因。

在我原来的 uEnv.txt 中,'rootwait' & 'rootdelay=5' 似乎已被弃用。NFS 报告在尝试解析时无法识别这些参数,因此我在更新的 uEnv.txt 中删除了它们。

如果这些都对您没有帮助,您可以使用以下方法收集更多信息: NFS 调试工具

这里找到


推荐阅读