Openwrt移植nfs服务器
选择nfs服务器
#make menuconfig
->Network
-> Filesystem
<*> nfs-kernel-server..............................Kernel NFS server support
<*> nfs-kernel-server-utils.................................NFS server utils
->Kernel modules
-> Filesystems
-*-kmod-fs-nfs.......................................NFSfilesystem support
-*-kmod-fs-nfs-common.........................CommonNFS filesystem modules
-*-kmod-fs-nfsd................................... NFS kernel server support
挂载nfs文件系统
Base system->
<*> busybox --->
->Linux System Utilities
[*] Support mounting NFS file systems
注意:1)不要选择其他项。在openwrt中,NFS v2,v3和v4版本之间有冲突,rpcbind服务拒绝。
2)不要make kernel_menuconfig,如果进入,不要选择与nfs相关的。
选择好以后,执行make V=s进行编译。
可能出现错误,是因为下载库失败,支持NFS网络文件系统,需要下载librpc库,但是编译过程中命令出现错误,下载网址中没有该库,所以需要手动下载一个librpc-0.9.32-rc2-0a2179bbc0844928f2a0ec01dba93d9b5d6d41a7.tar.gz。下载好后将其库拷贝到openWrt源码目录mtk-openwrt-3.10.14-proc/tmp/dl下。
然后进行make V=s
编译成功,结果如下图:
配置启动nfs
主要是exports配置文件
修改如下:(sda1是你要挂载的硬盘名称)
/mnt/sda1* (rw,sync,no_root_squash,no_subtree_check)
括号内的参数意义描述如下:
rw:读/写权限,只读权限的参数为ro;
sync:数据同步写入内存和硬盘,也可以使用async,此时数据会先暂存于内存中,而不立即写入硬盘。
no_root_squash:NFS服务器共享目录用户的属性,如果用户是 root,那么对于这个共享目录来说就具有 root 的权限。
配置好以后,务必执行命令#exportfs–r (可能会报错,上电重启就好,再执行一次)
开启nfs服务前,必须先开启portmap服务
#/etc/init.d/portmap enable
#/etc/init.d/portmap start
#/etc/init.d/nfsd enable
#/etc/init.d/nfsd start
这样就开启了nfs服务。
在其他终端,执行mount–t nfs 路由器ip地址:/mnt/sda1 /mnt/nfs–o nolock
例如:mount–t nfs 192.168.1.1:/mnt/sda1 /mnt/nfs
如果挂载不上加上 -o nolock 是文件锁的意思
卸载的话,sudo umount /mnt/nfs即可。
在源码中直接修改exports配置文件,这样就不用烧写后去板卡上修改配置文件。
源码中目录位置mtk-openwrt-3.10.14/openwrt-3.10.14/files/etc下