Ubuntu22.04 NFS服务挂载到开发板的时遇到的BUG

542 阅读2分钟

文章同时发布于个人博客:www.shui2000.top/posts/6416c…

在Ubuntu22.04虚拟机开启NFS服务后,使用开发板挂载时遇见的几个问题

错误一:即使关闭了防火墙,连接依旧超时

错误描述: 在Ubuntu设置好NFS服务后进行挂载,发现即使关闭了防火墙,也不起作用

显示:

微信图片_20230310135006.png 错误来源:开发板安装的NFS服务版本过低,Ubuntu22.04下载的NFS版本高,默认情况下不支持较低版本NFS挂载服务,需要我们手动对配置进行修改。

解决方法:

1.输入代码cat /proc/fs/nfsd/versions查看当前NFS服务所支持的版本,输出结果如果为

微信图片_20230310135112.png

可以看见其他数字前面都是+号,唯独2前面是-号,说明此时NFS服务不支持NFS2版本进行挂载服务,从而出现了连接超时。

2.修改虚拟机的nfs配置,vim /etc/default/nfs-kernel-server,修改三个参数为

RPCNFSDCOUNT="-V 2 8";RPCMOUNTDOPTS="-V 2 --manage-gids";RPCSVCGSSDOPTS="--nfs-version 2,3,4 --debug --syslog";

3.输入RPCSVCGSSDOPTS="--nfs-version 2,3,4 --debug --syslog",修改两个参数

udp=y;vers2=y

4.重启nfs服务(sudo /etc/init.d/portmap restart;sudo /etc/init.d/**nfs**-kernel-server restart),再查看现在支持的nfs版本(cat /proc/fs/nfsd/versions)。

微信图片_20230310140318.png

可以看见目前已经支持了nfs2,可以正常进行挂载服务

此方法学习自门牙会稍息

错误二:成功挂载后,双方文件夹不互相同步

错误来源: 假设Ubuntu为A,开发板为B,我们想将A:/home/nfs挂载至B:/mnt文件夹,挂载时A正处于/home/nfsB正处于B:/mnt路径下,问题原因我尚未理解。

解决办法: 先解决开发板的挂载状态,再返回根目录后进行挂载

错误三:安装交叉编译环境时,配置好环境后输入arm-linux-gcc -v提示command not founnd

错误原因: 有可能安装了32位版本的编译器,而我们的Ubuntu是64位的

解决办法: 安装32位依赖包,输入apt install lib32z1,再输入arm-linux-gcc -v查看编译器版本

image-20230310142124403.png gcc可以正常使用