1.1 搭建环境介绍
硬件环境:
一台PC。
一块 iTOP-RK3568开发板。
网络环境:
PC、开发板通过网线连接到路由器,虚拟机为桥接模式。
1.2 搭建NFS服务器
这里选择虚拟机 Ubuntu 作为主机。首先在虚拟机Ubuntu 上安装NFS 服务,这是一个软件包,可以使用 apt 命令下载(要保证虚拟机可以上网)。 在虚拟机Ubuntu 的root 用户下输入以下命令安装 Ubuntu NFS 服务:
apt-get install nfs-kernel-server
如下图所示:
由于作者已经安装好了,所以这里显示零更新、零新安装,安装成功之后继续搭建 NFS 服务器。
使用以下命令对exports文件进行内容的修改,
vim /etc/exports
在最后一行添加以下内容,添加完成如下图所示:
/home/nfs/ *(rw,sync,no_root_squash)
下面讲解一下上面输入的内容都代表什么意思:
/home/nfs/:要共享的目录;“/home/nfs/ ”目录需要自己建,默认Ubuntu 中是没有的。
*:代表允许所有的网络段访问;
rw:是可读写权限;
sync:是资料同步写入内存和硬盘;
no_root_squash:是 Ubuntu nfs 客户端分享目录使用者的权限,如果客户端使用的是 root 用户,那么对于该共享目录而言,该客户端就具有 root 权限;
其他 Ubuntu nfs 常用的参数有:
ro:只读访问
async :nfs 在写入数据前可以相应请求
secure: nfs 通过以下的安全 TCP/IP 端口发送
insecure: nfs 通过 1024 以上的端口发送
wdelay:如果多个用户要写入 NFS 目录,则归组(默认)
no_wdelay:如果多个用户要写入 NFS 目录,则立即写入,当使用 async 时,无需此设置
hide:在 nfs 共享目录中不共享妻子目录
no_hide:共享 nfs 目录的子目录
subtree_check:如果共享/usr/bin 之类的子目录时,强制 nfs 检查父目录的权限(默认)
no_subtree_check:和上面相对,不检查父目录权限
all_squash:共享文件的 UID 和 GID 映射匿名用户 anonymous,适合公用目录
no_all_squash:保留共享文件的 UID 和 GID(默认)
root_squash root:用户的所有请求映射成如 anonymous 用户一样的权限(默认)
no_root_squash root:用户具有根目录的完全管理访问权限
anonuid=xxx:指定 nfs 服务器/etc/passwd 文件中匿名用户多的 UID
anongid=xxx:指定 nfs 服务器/etc/passwd 文件中匿名用户的 GID
接下来使用以下命令重启 rpcbind 服务,运行结果如下图:
/etc/init.d/rpcbind restart
然后输入以下命令重启 nfs 服务
/etc/init.d/nfs-kernel-server restart
运行结果如下图
:
使用以下命令,查看是否成功挂载nfs目录(这里也可能要重启ubuntu才会又挂载目录),如下图所示:
showmount -e
至此,Ubuntu nfs 服务器端的配置完成。