Ubuntu22.04 NFS服务挂载到开发板的时遇到的BUG
错误一:即使关闭了防火墙,连接依旧超时
错误描述:在Ubuntu设置好NFS服务后进行挂载,发现即使关闭了防火墙,也不起作用
显示:
错误来源:开发板安装的NFS服务版本过低,Ubuntu22.04下载的NFS版本高,默认情况下不支持较低版本NFS挂载服务,需要我们手动对配置进行修改。
解决方法:
1.输入代码cat /proc/fs/nfsd/versions查看当前NFS服务所支持的版本,输出结果如果为

可以看见其他数字前面都是+号,唯独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)。

可以看见目前已经支持了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查看编译器版本

gcc可以正常使用


