ubuntu下虚拟机NFS与OK6410通信错误记录/*嵌入式博客3_8*/

时间:2022-11-01 14:50:34

测试环境,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文件系统挂载。

如果那位朋友也出现过这样的错误,希望能够帮助我解决一下。