Java教程

番外篇一——Ubuntu20.04和uboot之间nfs设置

本文主要是介绍番外篇一——Ubuntu20.04和uboot之间nfs设置,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

在搞nfs的时候卡了比较久,现在把调试过程列下来:

首先,安装nfs服务是直接通过apt-get安装的,安装版本可以通过下面的命令查看

sudo cat /proc/fs/nfsd/versions 

由于我修改过配置文件,这里从网上截个图

 

 

可以看出来支持的版本。

创建两个新文件夹

sudo mkdir -p /opt/nfsv4/data
sudo mkdir -p /data/nfs

第二个文件夹主要用来测试第一个路径的挂载效果的。为了方便,修改两个文件夹的权限,给777,过程略。

修改/etc/fastab,加上最后一行命令

 

 在/opt/nfsv4/data里随便新建一个文件,里面打些字符串,挂载试一下

sudo mount -a

 

 这样就可以发现挂载是没问题的。下面修改共享目录/etc/exports

 

主要是下面两行,/home那一行是用来和uboot通讯的,先不管,修改完成后重启服务

sudo service nfs-kernel-server restart

新启用个设备(我用的是树莓派),新建个文件夹后直接用下面的命令挂载

sudo mkdir nfsdata
sudo chmod -R 777 nfsdata
sudo mount 192.168.3.114:/opt/nfsv4/data

这个时候一直报错,提示的是连接超时。在网上查的原因是防火墙的作用,关闭防火墙以后就OK了。

这个时候重新挂载,OK

 

 挂载完成也可以卸载

 但是这个方法在Ubuntu重启后好像就不行了,需要重新关闭防火墙。并且也不太安全。可以绑定端口

这里按理说直接用sudo vim就可以了,但是一直提示无法保存,所以新建个文件夹

sudo mkdir -p /etc/sysconfig
vim /etc/sysconfig/nfs

添加下面的内容

RQUOTAD_PORT=30001
LOCKD_TCPPORT=30002
LOCKD_UDPPORT=30002
MOUNTD_PORT=30003
STATD_PORT=30004

这样重启以后就可以直接使用了。

 但是在uboot里测试会报错

 

 查了一下原因,因为uboot里使用的NFS版本为V2,而我们用的NFS版本是不支持V2的。要修改相应配置

sudo vim /etc/default/nfs-kernel-server

 

 要注释并修改第3、14、21行(我是直接复制粘贴上一行然后注释掉,然后粘贴以后修改)

重启服务

sudo service nfs-kernel-server restart

搞定

 

这篇关于番外篇一——Ubuntu20.04和uboot之间nfs设置的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!