nfs网络系统搭建
时间:10-02
整理:3721RD
点击:
NFS也就是网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
1. 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
2. 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。
3. 一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。
NFS需要两个部分的配合,服务器和客户端
服务器端:
安装nfs服务包
sudo apt-get installnfs-kernel-server
安装成功如下图所示

nfs 允许挂载的目录和权限需要在文件"/etc/exports"中进行定义。使用以下命令打开/etc 目录下的 nfs 配置文件 exports:
sudo gedit /etc/exports在文件最后加入如下内容:/home/eac/ (rw,sync,no_root_squash)修改完成如下图所示:

保存并退出编辑,下面解释一下设置的含义其中:
/home/eac: 共享目录
*: 允许所有的网络段访问
rw: 访问者具有可读写权限
sync: 资料同步写入内存和硬盘
no_root_squash: nfs 共享目录访问者具有 root 权限
nfs常用参数
ro: 只读访问
rw: 读写访问 sync 所有数据在请求时写入共享
asyncnfs: 在写入数据前可以响应请求
secure nfs: 通过 1024 以下的安全 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_squas root: 用户具有根目录的完全管理访问权限
anonuid=xxx
开发板挂载 nfs 服务器共享目录
开发板和 Windows 主机先通过直连网线插到路由器,这样 Winsows 主机、虚拟机、开发板就相当于在同一个局域网了。若没有路由器,也可以通过交叉网线将开发板和Windows 主机互联。
开发板上电,进入开发板系统后设置 IP 的前三个字段和 Windows 主机的一样,最后一个字段务必不能相同,同时设置子网掩码为一致。只有前三个在字段和子网掩码相同,Windows 主机、 Ubuntu 虚拟机、开发板三者之间才能互相 ping 通。例如,针对 Windows主机的 IP:192.168.0.101,子网掩码:255.255.255.0,可以设置开发板的 IP 地址为:192.168.0.8,子网掩码: 255.255.255.0。
在开发板执行以下命令在根目录下建立 nfs 挂载目录:
mkdir -p /nfs在开发板中当前执行以下命令挂载 nfs 服务器共享目录到开发板的/nfs 目录:
Target# mount -t nfs -o nolock 192.168.0.101:/home/eac /nfs
-t nfs: 挂载类型( type)是 nfs。
-o nolock: 不加文件锁, nfs mount 默认选项包括文件锁( lock),依赖于 portmap 提供的动态端口分配功能。
192.168.0.101:/home/eac: 虚拟机的 IP 地址是 192.168.0.101,共享目录是虚拟机的"/home/eac"。
截图如下所示:

这样就可以通过开发板的串口来操作虚拟机里面的文件了。
1. 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
2. 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。
3. 一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。
NFS需要两个部分的配合,服务器和客户端
服务器端:
安装nfs服务包
sudo apt-get installnfs-kernel-server
安装成功如下图所示

nfs 允许挂载的目录和权限需要在文件"/etc/exports"中进行定义。使用以下命令打开/etc 目录下的 nfs 配置文件 exports:
sudo gedit /etc/exports在文件最后加入如下内容:/home/eac/ (rw,sync,no_root_squash)修改完成如下图所示:

保存并退出编辑,下面解释一下设置的含义其中:
/home/eac: 共享目录
*: 允许所有的网络段访问
rw: 访问者具有可读写权限
sync: 资料同步写入内存和硬盘
no_root_squash: nfs 共享目录访问者具有 root 权限
nfs常用参数
ro: 只读访问
rw: 读写访问 sync 所有数据在请求时写入共享
asyncnfs: 在写入数据前可以响应请求
secure nfs: 通过 1024 以下的安全 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_squas root: 用户具有根目录的完全管理访问权限
anonuid=xxx
开发板挂载 nfs 服务器共享目录
开发板和 Windows 主机先通过直连网线插到路由器,这样 Winsows 主机、虚拟机、开发板就相当于在同一个局域网了。若没有路由器,也可以通过交叉网线将开发板和Windows 主机互联。
开发板上电,进入开发板系统后设置 IP 的前三个字段和 Windows 主机的一样,最后一个字段务必不能相同,同时设置子网掩码为一致。只有前三个在字段和子网掩码相同,Windows 主机、 Ubuntu 虚拟机、开发板三者之间才能互相 ping 通。例如,针对 Windows主机的 IP:192.168.0.101,子网掩码:255.255.255.0,可以设置开发板的 IP 地址为:192.168.0.8,子网掩码: 255.255.255.0。
在开发板执行以下命令在根目录下建立 nfs 挂载目录:
mkdir -p /nfs在开发板中当前执行以下命令挂载 nfs 服务器共享目录到开发板的/nfs 目录:
Target# mount -t nfs -o nolock 192.168.0.101:/home/eac /nfs
-t nfs: 挂载类型( type)是 nfs。
-o nolock: 不加文件锁, nfs mount 默认选项包括文件锁( lock),依赖于 portmap 提供的动态端口分配功能。
192.168.0.101:/home/eac: 虚拟机的 IP 地址是 192.168.0.101,共享目录是虚拟机的"/home/eac"。
截图如下所示:

这样就可以通过开发板的串口来操作虚拟机里面的文件了。
不错哦
