Ubuntu安装NFS,实现网络文件共享

Ubuntu安装NFS,实现网络文件共享

NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

嵌入式应用中就是用网线将主机与开发板连接起来。在主机开启nfs服务后,就可以像ftp一样传文件到开发板了,有的人会问,不如直接用ftp好了,但是nfs还可以挂载根文件系统啊!这样开发板直接可以用PC上的文件系统去启动了。

以下配置主要思路是在PC的Linux端开启NFS服务器端,共享一个文件夹,通过配置文件允许网络上的其他设备去挂载使用。

  1. 安装:sudo apt-get install nfs-kernel-server

  2. 启动:sudo /etc/init.d/nfs-kernel-server restart 或 sudo service nfs-kernel-server start

  3. 查看状态:sudo service nfs-kernel-server status

状态/启动/关闭/重启:sudo service nfs-kernel-server status|start|stop|restart

  1. 建立共享网络文件夹:sudo mkdir /home/nfs

  2. 设置目录和权限:

打开/etc/exports文件,在末尾添加:

/home/nfs *(rw,sync,no_root_squash)

/home/nfs 表示 nfs 共享目录,它可以作为开发板的根文件系统通过 nfs 挂接
* 表示所有的客户机都可以挂接此目录
rw 表示挂接此目录的客户机对该目录有读写的权力
no_root_squash 表示允许挂接此目录的客户机享有该主机的 root 身份

  1. 重启NFS:sudo service nfs-kernel-server restart

  2. 测试NFS:将共享文件夹挂在到本机的一个文件/home/test下:

sudo mount -t nfs -o nolock localhost:/home/nfs /home/test

如果test下目录变得和nfs目录下一致则说明挂载成功。

  1. ARM开发板挂载本机文件夹

串口登陆ARM,挂载: mount -t nfs -o nolock 192.168.15.124:/home/nfs /mnt

192.168.15.124是本机的IP地址,ARM开发板的IP地址是192.168.15.95。进入/mnt下查看,成功挂载本机下的文件夹。

如果报错,出现:mount: wrong fs type, bad option, bad superblock on 125.64.41.244

是因为没有安装 mount.nfs了,我们只要安装mount.nfs就不会有wrong fs type, bad option, bad superblock错误提示了哦。

apt-get update

apt-get install nfs-common

  1. umount卸载

在不需要挂载的时候需要umount卸载掉,比如sudo umont /mnt。卸载的时候有时候会因为进程在运行,提示无法卸载“umount: /mnt: device is busy”,这时需要sudo umount -l /mnt在空闲的时候卸载。或查找到进程,强制删除进程后卸载fuser -km /mnt,详情参考fuser用法,在查询文件或套接字被占用和杀死进程的时候经常会用到。

  1. 说明:ARM开发板可以将根文件系统挂载到网络文件系统(NFS)上,启动的时候从NFS上启动。这样在开发调试阶段就很方便,不需要用SD卡或其他方式启动。而且ARM的存储空间也变得大得多,因为存储挂载到其他大容量的设备上了,比如PC。此功能没有实际运行,后期再尝试应用。

You must be logged in to post a comment