nfs服务是实现Linux和Linux之间的文件共享
下载离线安装包
下面为在ubuntu16.04系统中搭建nfs服务
1、安装nfs服务(只需要服务端安装)
sudo apt install nfs-common
sudo apt-get install nfs-kernel-server
2、修改配置文件
sudo vim /etc/exports
添加如下内容:
/opt/NAS *(rw,sync,no_root_squash)
各段表达的意思如下,根据实际进行修改
/etc/exports :共享的目录 * :指定哪些用户可以访问 * 所有可以ping同该主机的用户 192.168.1.* 指定网段,在该网段中的用户可以挂载 192.168.1.12 只有该用户能挂载 (ro,sync,no_root_squash): 权限 ro : 只读 rw : 读写 sync : 同步 no_root_squash: 不降低root用户的权限 其他选项man 5 exports 查看
3、重启nfs服务
sudo /etc/init.d/nfs-kernel-server restart
nfs的服务搭建好了
客户端访问:(无需安装nfs服务)
若有防火墙,则允许此IP访问所有的本机端口(否则无法访问共享目录文件)
sudo ufw allow from 192.168.1.93
1、确保两主机的的网络是否连通(ping命令)
ping + 主机IP
2、查看服务端的共享目录
showmount -e + 主机IP
showmount -e 192.168.1.93 Export list for 192.168.1.93: /home *
3、将该目录挂载到本地
mount 192.168.1.93:/opt/NAS /opt/NAS
4、访问
访问本地的/opt/NAS目录,就可访问服务端共享的目录了
上面介绍的是本地客户端访问NFS服务器的方式,但是在使用linux开发板访问时,若还使用上面的命令的话,会出现如下问题:
svc: failed to register lockdv1 RPC service (errno 111).
mount: mounting 192.168.0.1:/home/hellolinux/rootfs on /mnt/nfs failed: Connection refused
因此不能直接使用mount的指令,需要添加一些东西,如下所示:
mount -t nfs -o nolock 192.168.0.1:/home/hellolinux/nfs /mnt/nfs
说明:mount nfs时,默认选项包括文件锁,依赖于portmap提供的动态端口分配功能,因此需要解锁,因此一般直接在指令中直接加上-o nolock
远程共享挂在需要开通四个端口,可以正常挂载了。
tcp 111 2049 端口
udp 111 4046 端口
强制 umount nfs文件系统
root@ubuntu:/# umount /app/nfs/
umount.nfs: /app/nfs: device is busy
umount.nfs: /app/nfs: device is busy
提示文件系统设置busy
root@ubuntu:/# fuser -km /app/nfs/ 先使用这条命令
/data/nfs/: 8119c
root@ubuntu:/# umount /app/nfs/ 在umount 就可以了