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.1013三端互相ping测试是否能ping通:
板端ping虚拟机,即成功二.虚拟机搭建nfs服务器:
1.1查看是否有nfs功能和rpc功能:
cat /proc/filesystems
rpcinfo -p1.2.安装nfs服务和 rpc
(我这里已经安装过了)
sudo apt install nfs-kernel-server -y1.3启动nfs和npc状态:
$ service rpcbind start或者使用如下命令亦可
$ /bin/systemctl start rpcbind.service
查看 NFS 服务项 rpc 服务器注册的端口列表
$ rpcinfo -p localhost
program vers proto port service100000 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.service2.配置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_kernelclean_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查看是否共享 了该文件夹