原理分析
NFS原理是在主机上建立一个NFS服务,将主机上的共享文件夹共享给别的客户端,主机与其他客户端之间通过网络连接传输数据,客户端通过挂载NFS文件夹访问主机文件夹,就像访问本地文件夹一样。
前提条件
- 网络互通
主机与开发板相互ping通。 - 主机可以安装NFS
主机可以访问外网
搭建参数
- 主机IP:192.168.0.175
- 主机共享文件夹:/home/book/arm/imx6ull/eth_file
- 开发板IP:192.168.0.111
- 开发板挂载文件夹:/home/root/eth_file
搭建NFS-主机端
安装NFS服务
sudo apt-get install nfs-kernel-server
查看用户ID
$ id
uid=1000(book) gid=1000(book) 组=1000(book),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare)
配置NFS
$ sudo vim /etc/exports
exports文件编辑如下:
1 # /etc/exports: the access control list for filesystems which may be exported
2 # to NFS clients. See exports(5).
3 #
4 # Example for NFSv2 and NFSv3:
5 # /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
6 #
7 # Example for NFSv4:
8 # /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
9 # /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
10 #
11 /home/book/arm/imx6ull/eth_file 192.168.0.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000,no_subtree_check)
- /home/book/arm/imx6ull/eth_file :主机共享文件夹
- 192.168.0.0/24 :配置可以访问的用户范围,其中的/24 是掩码,此处表示 24 个 1,11111111.11111111.11111111.00000000 , 即 掩 码 是 255.255.255.0 。 结 合 前 面192.168.0.0 表示此处配置 IP 为 192.168.0.* 的主机均可以访问该目录,即局域网上的所有主机。
- rw :访问用户的权限,可读写
- sync:资料同步写入内存与硬盘中
- anonuid=1000 :将访问用户映射为本地用户ID的用户
- anongid=1000 :将访问用户映射为本地用户组ID
- no_subtree_check :不检查子目录权限,默认配置
更新exports配置
$ sudo exportfs -arv
exporting 192.168.0.0/24:/home/book/arm/imx6ull/eth_file
- -a :全部mount或mount文件/etc/exports中的内容
- -r :重新mount文件/etc/exports中的内容
- -u :umount目录
- -v :在exports时,将信息输出
查看NFS共享情况
$ showmount -e
Export list for book-virtual-machine:
/home/book/arm/imx6ull/eth_file 192.168.0.0/24
至此,NFS主机端搭建完成,下面搭建用户端
搭建NFS-用户端
创建挂载点
在开发板上创建文件夹:
$ mkdir /home/root/eth_file
临时挂载NFS文件系统
$ mount -o vers=4 192.168.0.175:/home/book/arm/imx6ull/eth_file /home/root/eth_file
测试
- 在主机共享目录中新建文件1.txt,会发现开发板挂载文件夹下出现1.txt文件
- 在开发板挂载文件夹下新建2.txt,会在主机共享文件夹下发现2.txt文件。
取消挂载
先退回家目录~,在执行以下指令。
$ umount /home/root/eth_file