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

错误描述:在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可以正常使用