linux-kernel - 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>
解决方案
我也有这个问题。我的 /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 中删除了它们。
在这里找到
推荐阅读
- bash - 在 Bash 中使用带有 ANSI 转义和较长初始文本的提示获取用户输入时出现问题
- php - 数据库 ORM 原则 Symfony 4
- python - 用于将大数的相邻数字相乘并找到最大可能乘积的 Python 代码,但未给出所需结果
- java - Spring数据jpa存储库检索多个计数
- javascript - 如何从 iFrame 中获取文本值
- firebase - 使用 Admin SDK 发送超过 1000 条通知 - Firebase Cloud Messaging
- python - 如何使用 opencv 将 Monospace 字体插入图像中?
- c++ - 使用stl和没有节点c ++的霍夫曼编码
- sqlite - AnKo SQLite:从数据库异步填充列表视图?
- r - Syuzhet 与 SentimentR 的否定词和修饰符用于 R 中的情绪分析