ubuntu 20.04和linux开发板配置nfs服务器

ubuntu 20.04和linux开发板配置nfs服务器

1、ubuntu配置nfs服务器

1.1 安装nfs服务器

sudo apt-get install nfs-kernel-server

1.2 配置nfs

  1. 打开配置文件:
    sudo vim /etc/exports

  2. 修改配置如下:
    /home/nfs_test *(rw,sync,no_root_squash,no_subtree_check)
    说明:

    /home/arkinux/nfs_test  - 要挂载的目录,这里请修改为自己的目录。
    *  	 					- 指定可访问 NFS 服务的客户端 IP 地址,这里 “*” 表示所有可以 ping 该主机的用户都可以访问。
    rw                      - 读/写权限,只读权限的参数为 ro。
    sync                    - 数据同步写入内存和硬盘,也可以使用 async,此时数据会先暂存于内存中,而不立即写入硬盘。
    no_root_squash          - NFS 服务器共享目录用户的属性,如果用户是 root,那么对于这个共享目录来说就具有 root 的权限。
    no_subtree_check        - 不检查父目录的权限
    
  3. 修改完成之后,保存并退出。输入以下命令使配置文件生效:
    sudo exportfs -r

  4. 重启 NFS 服务:

    sudo /etc/init.d/nfs-kernel-server restart
    [ ok ] Restarting nfs-kernel-server (via systemctl): nfs-kernel-server.service.
    

2、开发板打开nfs客户端

2.1 开发板打开nfs客户端挂载

一些开发板的kernel会默认没打开nfs客户端,需要在编译kernel的时候执行make menuconfig里面配置下。配置项如下:

配置完保存然后编译、烧录即可。

  1. 开发板nfs客户端挂载ubuntu20.04服务端的共享文件夹
    mount -t nfs -o nolock 192.168.31.75:/home/nfs_test /mnt
    说明
    192.168.31.75			//是我的ubuntu20.04系统的ip地址
    /home/nfs_test			//是nfs服务器的共享文件夹
    /mnt					//是开发板挂载的文件夹
    
  2. 如果开发板通过ifconfig查看ip地址和ubuntu系统ip不在同一个网段,可以通过以下指令修改开发板ip地址:
    ifconfig eth0 192.168.31.20

2.2 开发板打开nfs客户端取消挂载

umount /mnt

2.3 查看共享文件夹

showmount -e

2.4查询nfs服务器运行状态

sudo /etc/init.d/nfs-kernel-server status

3、nfs常见问题

3.1开发板挂载时提示协议不支持,具体错误如下:

mount: mounting 192.168.31.75:/home/why/SSD202_Project on /mnt failed: Protocol not supported
解决方法:由于ubuntu 20.04 nfs默认支持协议3和协议4,但是开发板uboot默认启动的是协议2,若想要求 nfs 支持协议2。需要在ubuntu系统

  1. 打开文件
    vim /etc/default/nfs-kernel-server
  2. 在文件中末尾增加内容
    RPCNFSDOPTS="--nfs-version 2,3,4 --debug --syslog"
  3. 保存重启下nfs,重启指令
    sudo /etc/init.d/nfs-kernel-server restart

3.2 开发板挂载时提示超时:

rpcbind: server localhost not responding, timed out
解决办法:加上“-o nolock”参数
mount -t nfs -o nolock 192.168.31.75:/home/nfs_test /mnt

3.3 如果nfs服务器是window端,开发板挂载时提示连接超时:

切记看一下是否关闭了window的防火墙。需要全部关闭才行

3.4 如果nfs服务器是ubuntu端,开发板挂载时提示连接超时:

同样需要关闭ubuntu的防火墙

  • 查看防火墙状态
    • sudo ufw status
  • 关闭防火墙
    • sudo ufw disable
posted @ 2021-11-26 11:22  长不胖的小鱼  阅读(1061)  评论(0编辑  收藏  举报