测试环境,ubuntu11.04。OK6410,开发板;
资源主要是分享于百度文库;
具体步骤
安装及配置 NFS 服务
1. 安装 NFS
Ubuntu 上默认是没有安装 NFS 服务器的,首先要安装 NFS 服务程序:
$ sudo apt-get install nfs-kernel-server
2. 配置 NFS
a) 配置 portmap
$ sudo dpkg-reconfigure portmap
对 Should portmap be bound to the loopback address? 选 No.
b) 配置/etc/hosts.deny
$ sudo gedit /etc/hosts.deny
(禁止任何 host(主机)能和你的 NFS 服务器进行 NFS 连接),加入:
### NFS DAEMONS
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL
c) 配置/etc/hosts.allow
$ sudo gedit /etc/hosts.allow
允许那些你想要的主机和你的 NFS 服务器建立连接。下列步骤将允许任何 IP 地址以
192.168.0 开头的主机(连接到 NFS 服务器上),也可以指定特定的 IP 地址。
### NFS DAEMONS
portmap: 192.168.0.
lockd: 192.168.0.
rquotad: 192.168.0.
mountd: 192.168.0.
statd: 192.168.0.
上面设置了只要在 192.168.0.*这个网段的所有 IP 地址用户都可以访问共享目录,其余 IP
地址用户均无法访问
/etc/hosts.deny 和 /etc/hosts.allow 设置对 portmap 的访问. 采用这两个配置文件有点类似
"mask"的意思. 现在/etc/hosts.deny 中禁止所有用户对 portmap 的访问. 再在/etc/hosts.allow 中
允许某些用户对 portmap 的访问。
d) 重启 portmap daemon
每次对/etc/hosts.deny 和 /etc/hosts.allow 两文件的修改后都要重启 portmap daemon。丌然
修改无效。
$ sudo service portmap restart
e) 配置/etc/exports
NFS 挂载目录及权限由/etc/exports 文件定义。
$sudo gedit /etc/exports
比如我要将我的根目录中的/nfsroot 目录让 192.168.1.*的 IP 共享, 则在该文件末尾添加下列
语句:
/nfsroot 192.168.0.*(ro,sync,no_root_squash)
然后保存退出。
/nfsroot 就表示共享目录,当然,你可以随便换成自己喜欢的目录。
192.168.1.*:前面三位是你主机(NFS 客户端)的 ip 地址(本机终端 ifconfig 命令就可以获
得本机的 ip 地址)。
rw:读/写权限,只读权限的参数为 ro;
sync:数据同步写入内存和硬盘,也可以使用 async,此时数据会先暂存于内存中,而丌立
即写入硬盘。
no_root_squash:NFS 服务器共享目录用户的属性,如果用户是 root,那么对于这个共享
目录来说就具有 root 的权限。
f) 重启 nfs 服务
$ sudo /etc/init.d/nfs-kernel-server restart
执行这个命令的时候可能会提示一些错误,如下:
* Stopping NFS kernel daemon [ OK ]
* Unexporting directories for NFS kernel daemon... [ OK ]
* Exporting directories for NFS kernel daemon...
exportfs: /etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specified for export
"192.168.0.*:/nfsroot".
Assuming default behaviour ('no_subtree_check').
NOTE: this default has changed since nfs-utils version 1.0.x [ OK ]
* Starting NFS kernel daemon [ OK ]
我丌知道具体原因,丌用管,丌影响后面的使用。
注意:每次对/etc/exports 文件的修改,都要重启一下 nfs 服务。
开发板上出现的错误:
用网线、和串口线将主机和开发板连接;
当开发板进入终端命令行格式时,输入命令:
mount -t nfs-kernel-server 192.168.43.131:/Acanoe /mnt -o nolock
后:开发板上打印信息为:
mount: mounting 192.43.131:/Acanoe on /mnt failed: No such device
我的OK6410文件系统为cramfs,出现以上信息。是否是文件系统不支持ext2文件系统挂载。
如果那位朋友也出现过这样的错误,希望能够帮助我解决一下。