移植NFS到ARM Linux上做服务器端

  • 前言

将ARM做服务器是因为需要与另外一个系统进行对接,这里用VM里的Ubuntu做客户端进行测试,此文章只讲具体的移植过程,不对NFS的理论知识做讲解。

参考:http://www.cnitblog.com/gouzhuang/archive/2010/03/23/nfs_utils.html

  • 硬件平台

ARM 32位系统

  • 准备工作

可以去网上搜索下载

portmap:https://download.csdn.net/download/qq_26601681/12254543

nfs-utils:https://download.csdn.net/download/qq_26601681/12254537

  • 交叉编译

portmap:

将下载好的portmap解压后进入目录,执行以下命令

make clean

make CC=arm-linux--gcc (根据自己的交叉编译链更改,根据情况具体到所在目录)

编译后如图所示:

nfs-utils:

我下载的是2.4.3的版本,参考里面的是1.1.1版本

1.1.1版本:需要在nfs-utils-1.1.1/utils/exportfs/exportfs.c文件中添加#include <sys/stat.h>文件

依次执行命令:./configure --prefix={指定的安装目录} CC={指定的交叉编译工具} --disable-nfsv4 --disable-gss --disable-uuid --disable-mount --without-tcp-wrappers --host=arm-linux 

make 

make install

安装后内容如图:

2.4.3版本

依次执行命令:./configure --prefix={指定的安装目录} CC={指定的交叉编译工具} --disable-nfsv4 --disable-gss --disable-uuid --disable-mount --without-tcp-wrappers --disable-tirpc --host=arm-linux 

make 

make install

安装后如图

  • 板上运行

将portmap文件夹中的portmap,

nfs-utils2.4.3安装目录/sbin下的rpc.statd, rpc.nfsd, rpc.mountd, exportfs

放到板子的/usr/sbin目录下.

在板子的/etc/目录下新建一个exports文件,写入如下

/work 为我共享出去的目录

192.168.1.77为客户端的IP 

括号中的:参考https://blog.csdn.net/u011418530/article/details/89307874

rw表示可读写,ro只读;
sync :同步模式,内存中数据时时写入磁盘;async :不同步,把内存中数据定期写入磁盘中;
no_root_squash :加上这个选项后,root用户就会对共享的目录拥有至高的权限控制,就像是对本机的目录操作一样。不安全,不建议使用;root_squash:和上面的选项对应,root用户对共享目录的权限不高,只有普通用户的权限,即限制了root;all_squash:不管使用NFS的用户是谁,他的身份都会被限定成为一个指定的普通用户身份;
anonuid/anongid :要和root_squash 以及all_squash一同使用,用于指定使用NFS的用户限定后的uid和gid,前提是本机的/etc/passwd中存在这个uid和gid。
fsid=0表示将/work整个目录包装成根目录

 

  • 运行NFS服务器

依次执行 portmap、rpc.statd, rpc.nfsd, rpc.mountd

执行rpcinfo -p 成功运行可以看到

执行./showmount -e 192.168.1.19(此为板子IP),显示如下

  • 运行NFS客户端

客户端在虚拟机中运行

采用桥接网络的模式,利用ping命令验证是否能与ARM板通信

依次执行:

sudo apt-get install nfs-kernel-server

sudo systemctl enable rpcbind.service
sudo systemctl start rpcbind.service

sudo mount -t nfs 192.168.1.19:/work /opt/nfs/
即可在虚拟机的/opt/nfs/目录下看到板子的/work目录下的内容:在/work目录下新建test文件夹  /opt/nfs/下能看到同步

  • 后续

想写一个开机就启动NFS的shell脚本,对语法不熟悉,如果有会的大佬可以给一个!

 

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值