失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 嵌入式linux搭建nfs服务器(portmap+nfs-utils)

嵌入式linux搭建nfs服务器(portmap+nfs-utils)

时间:2018-08-10 23:28:15

相关推荐

嵌入式linux搭建nfs服务器(portmap+nfs-utils)

使用portmap+nfs-utils的工具在hi3531d的linux系统上搭建nfs服务器,使用VM虚拟机中的ubuntu作为客户端挂载,进行文件的读写。

1.首先对linux内核进行修改,让linux内核支持nfs服务器的功能,修改方式是在内核目录arch/arm/configs目录下的hi3531d_defconfig文件添加如下图所示,再进行内核编译,并将内核下载板卡上。

图1 内核配置文件添加nfs文件系统支持

2.Portmap和nfs-utils的下载,其中portmap的下载地址为:/linux/misc/portmap-6.0.tar.bz2;

图2 protmap下载链接

nfs-utils的下载地址为:Index of /pub/linux/utils/nfs-utils/1.3.3/

图3 nfs-utils下载链接

3.portmap的解压、修改与编译

图4 拷贝portmap压缩包到工作目录

图5 解压portmap到工作目录

图6 交叉编译环境编译portmap

图7 编译输出portmap(后续拷贝到板卡的/sbin目录)

4.nfs-utils的解压、修改与编译

图8 nfs-utils拷贝与解压

图9 nfs-utils新建安装目录

./configure --build=arm-hisiv500-linux --host=arm-linux --disable-nfsv4 --disable-gss --disable-uuid --disable-mount --disable-tirpc --disable-ipv6 --without-tcp-wrappers CC=arm-hisiv500-linux-gcc

图10 配置nfs-utils的编译环境

图11 nfs-utils的编译

5.将编译后的文件安装到/home/alinx/work/hi3531d_BK/nfs-utils目录下,如下图流程

make DESTDIR=/home/alinx/work/hi3531d_BK/nfs-utils install -strip

图12 安装到nfs-utils目录

6.进入安装目录nfs-utils/sbin的文件如下图所示:

图13 nfs-utils编译生成的文件

7.将编译好的portmap、 rpc.statd、 rpc.nfsd、rpc.mountd和exportfs文件拷贝到hi3531d板卡上。其中 portmap 放到 /sbin下,其余的放到 /usr/sbin下。注意以上5个文件拷贝到hi3531d板卡上,使用chmod +x 给每个文件赋予执行权限。

图14 hi3531d板卡的/usr/sbin目录

图15 hi3531d板卡的/sbin目录

8.在hi3531d板卡的/etc/init.d目录下新建S60nfs脚本文件,添加如下内容:

#!/bin/sh## nfs This shell script takes care of starting and stopping#the NFS services. Stolen from RedHat FC5.[ -x /sbin/portmap ] || exit 0[ -x /usr/sbin/rpc.statd ] || exit 0[ -x /usr/sbin/rpc.nfsd ] || exit 0[ -x /usr/sbin/rpc.mountd ] || exit 0[ -x /usr/sbin/exportfs ] || exit 0# Don't fail if /etc/exports doesn't exist; create a bare-bones version and continue.[ -r /etc/exports ] || \{ touch /etc/exports && chmod u+rw,g+r,o+r /etc/exports ; } || \{ echo "/etc/exports does not exist" ; exit 0 ; }# The /var/lib/nfs directory is actually on a tmpfs filesystem.mkdir -p /var/lib/nfs/smmkdir -p /var/lib/nfs/sm.baktouch /var/lib/nfs/etabtouch /var/lib/nfs/rmtabtouch /var/lib/nfs/statetouch /var/lib/nfs/xtabstart() {# Start daemons.echo -n "Starting port mapper: "portmapecho "done" echo -n "Starting NFS statd: "rpc.statdtouch /var/lock/subsys/nfslockecho "done"echo -n "Starting NFS services: "/usr/sbin/exportfs -rrpc.statdecho "done"echo -n "Starting NFS daemon: "rpc.nfsd 2echo "done"echo -n "Starting NFS mountd: "rpc.mountdecho "done"touch /var/lock/subsys/nfs}stop() {# Stop daemons.echo -n "Shutting down NFS mountd: "killall -q rpc.mountdecho "done"echo "Shutting down NFS daemon: "kill -9 `pidof nfsd` 2>/dev/nullecho "done"echo -n "Shutting down NFS services: "/usr/sbin/exportfs -aurm -f /var/lock/subsys/nfskillall -q rpc.statdecho "done"echo -n "Stopping NFS statd: "killall -q rpc.statdecho "done"rm -f /var/lock/subsys/nfslockecho -n "Stopping port mapper: "killall -q portmapecho "done"}# See how we were called.case "$1" instart)start;;stop)stop;;restart)stopstart;;reload)/usr/sbin/exportfs -rtouch /var/lock/subsys/nfs;;*)echo "Usage: nfs {start|stop|reload}"exit 1esacexit 0

9.在hi3531d板卡的/etc目录下,添加exports文件,如下图所示:

图16 /etc/exports文件内容

10.在hi3531d板卡的/etc目录下,在servers文件中添加nfsd的支持,如下图所示:

图17 servers文件中添加nfsd的端口支持

11.在hi3531d板卡的linux系统中开启nfs的服务,如下图所示:

/etc/init.d/S60nfs restart

图18 开启nfs服务

如果觉得《嵌入式linux搭建nfs服务器(portmap+nfs-utils)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。