nfs搭建实现linux端和pc端互联

一.实现pc,linux,嵌入式板端互联:
1.1虚拟机网络配置:
开启网卡1和网卡2(一个用于ssh服务,一个用于三端互联)
(这个是桥接本电脑的网卡,才能与电脑在同个局域网,才可以使用ssh服务,且linux也能连接外网)

设置桥接直接通过usb扩展器创建的网卡,才能在同一个局域网。才可以三端ping通

1.2,pc上把虚拟机的ip设置为静态IP:

1.3 linux上把第二个网卡的ip设置为静态ip:
sudo vi /etc/network/interfaces

注意看这个网卡的名字

2板端设置:
2.1 PC端设置其IP:

2.2 板端设置其IP:
ifconfig eth0 192.168.56.101

3三端互相ping测试是否能ping通:
板端ping虚拟机,即成功

二.虚拟机搭建nfs服务器:

1.1查看是否有nfs功能和rpc功能:
cat /proc/filesystems
rpcinfo -p

1.2.安装nfs服务和 rpc

(我这里已经安装过了)
sudo apt install nfs-kernel-server -y

1.3启动nfs和npc状态:
$ service rpcbind start

或者使用如下命令亦可

$ /bin/systemctl start rpcbind.service

查看 NFS 服务项 rpc 服务器注册的端口列表

$ rpcinfo -p localhost
program vers proto port service

100000    4   tcp    111  portmapper
100000    3   tcp    111  portmapper
100000    2   tcp    111  portmapper
100000    4   udp    111  portmapper
100000    3   udp    111  portmapper
100000    2   udp    111  portmapper



注意:此时我们还没有启动 NFS 服务,只监听了 111 端口,接着我们来启动 NFS 服务,再来看下注册的端口列表。

启动 NFS 服务

$ service nfs-kernel-server start

或者使用如下命令亦可

/bin/systemctl start nfs-kernel-server.service

启动 NFS 服务后 rpc 服务已经启用了对 NFS 的端口映射列表

rpcinfo -p localhost

program vers proto port service

100000    4   tcp    111  portmapper
100000    3   tcp    111  portmapper
100000    2   tcp    111  portmapper
100000    4   udp    111  portmapper
100000    3   udp    111  portmapper
100000    2   udp    111  portmapper
100024    1   udp  33745  status
100024    1   tcp  36980  status
100005    1   udp  20048  mountd
100005    1   tcp  20048  mountd
100005    2   udp  20048  mountd
100005    2   tcp  20048  mountd
100005    3   udp  20048  mountd
100005    3   tcp  20048  mountd
100003    3   tcp   2049  nfs
100003    4   tcp   2049  nfs
100227    3   tcp   2049  nfs_acl
100003    3   udp   2049  nfs
100003    4   udp   2049  nfs
100227    3   udp   2049  nfs_acl
100021    1   udp  38960  nlockmgr
100021    3   udp  38960  nlockmgr
100021    4   udp  38960  nlockmgr
100021    1   tcp  38362  nlockmgr
100021    3   tcp  38362  nlockmgr
100021    4   tcp  38362  nlockmgr



1.4查看nfs状态和npc状态:
systemctl status nfs-server.service

(1)exited表示🆗

(2)nfs:running
systemctl status portmap.service

2.配置nfs
(1)创建共享文件夹并给其权限
(2)配置exprots
sudo vim /etc/exports

(这里配了三个,使用最后一个即可)
/home/nfs *(rw,no_root_squash,no_all_squash,sync)

/home/nfs:指定分享文件名。
*:所有网段都可以读写
rw:读写权限
sync:资料同步写入到内存与硬盘中
no_root_squash:root用户具有挂载目录的全部操作操作权限
(3)更新exports配置并重启NFS
sudo exportfs -arv
service nfs-kernel-server restart
该命令的参数说明如下:
• -a:全部 mount 或 umount 文件/etc/exports 中的内容。
• -r:重新 mount 文件/etc/exports 中的共享内容。
• -u:umount 目录。
• -v:在 exportfs 的时候,将详细的信息输出到屏幕上。

(4)查看NFS共享情况
showmount -e

这样表示共享成功

三.嵌入式板端安装nfs服务(这里以cvitek平台为例)
参考教程链接:https://blog.csdn.net/weixin_40673765/article/details/88062930
source build/cvisetup.sh
defconfig cv1821_wevb_0005b_spinor
menuconfig_kernel

clean_kernel
build_kernel
烧录boot.spinor

四.嵌入式端挂载nfs文件:
mount -t nfs -o nolock -o tcp -o rsize=32768,wsize=32768 192.168.56.102:/home/pluto_fyy/nfs /mnt/nfs/

192.168.56.102:虚拟机ip,即nfs服务端ip
/home/pluto_fyy/nfs :nfs共享的文件夹
/mnt/nfs/ 挂载在板端的文件夹位置

报错问题集合:
这种情况nfs服务端的共享文件夹没共享成功,或者没给权限。
可以通过showmount -e查看是否共享 了该文件夹


添加新评论