嵌入式开发板
中nfs 出现问题permission denied的问题
解决方法:
去看下你的服务启动了没,客户端需要portmap服务,服务器端需要portmap、nfs服务。具体做法:
客户端:/etc/init.d/portmap start
服务器端:/etc/init.d/portmap start
/etc/init.d/nfs start
另外/etc/exports配置文件要正确,以下供你参考:
假设你的导出目录是/share,配置文件可以写成
/share *(rw,sync,no_root_squash)
一些关于挂载解决问题的方法分析
#sudo
apt-get install nfs-kernel-server
打开/etc/exports文件,
sudo vi
/etc/exports在末尾加入:
/work/nfs_root/file_sys_yl *(rw,sync,no_root_squash)
其中的file_sys_yl就是新添加的挂载目录
注:nfs允许挂载的目录及权限,在文件/etc/exports中进行定义,各字段含义如下:
/work/nfs_root/file_sys_yl:要共享的目录
*
:允许所有的网段访问
rw
:读写权限
sync:资料同步写入内在和硬盘
no_root_squash:nfs客户端共享目录使用者权限
重启服务:
sudo
/etc/init.d/portmap
restart <---重启portmap,
sudo
/etc/init.d/nfs-kernel-server
restart <---重启nfs服务
showmount
-e <---显示共享出的目录
注:nfs是一个RPC程序,使用它前,需要映射好端口,通过portmap设定
命令执行情况如下:
kevin@ubuntu:~$sudo
/etc/init.d/portmap restart
rtmap restart
Rather than invoking init scripts through /etc/init.d, use the
service(8)
utility, e.g. service portmap restart
Since the script you are attempting to invoke has been converted
to an
Upstart job, you may also use the restart(8) utility, e.g.
restart portmap
portmap start/running, process 742
kevin@ubuntu:~$sudo
/etc/init.d/nfs-kernel-server
restart
*
Stopping NFS kernel daemon
...done.
* Unexporting directories for NFS kernel
daemon...
...done.
* Exporting directories for NFS kernel
daemon...
exportfs: /etc/exports [1]: Neither 'subtree_check' or
'no_subtree_check' specified for export
"*:/work/nfs_root".
Assuming default behaviour
('no_subtree_check').
NOTE: this default has changed since
nfs-utils version 1.0.x
exportfs: /etc/exports [2]: Neither 'subtree_check' or
'no_subtree_check' specified for export
"*:/work/nfs_root/first_fs".
Assuming default behaviour
('no_subtree_check').
NOTE: this default has changed since
nfs-utils version 1.0.x
...done.
* Starting NFS kernel
daemon
...done.
kevin@ubuntu:~$showmount
-e
Export list for
book-desktop:
/work/nfs_root/first_fs
*
/work/nfs_root
*
现在可以在本机上试一下:
#sudo mount -t nfs
localhost:/home/kevin /mnt
注:localhost为本机linux的IP地址
这样就把共享目录挂到了/mnt目录,取消挂载用:
#sudo umount
/mnt
如果用在嵌入式设备上挂载,要加上参数-o
nolock
我在开发板上使用的挂载命令:
mount -t nfs -o nolock
59.68.190.128:/work/nfs_root/first_fs /mnt
,这样就能在开发板上面查看到自己虚拟机中的文件了,
有一个问题就是找了很长时间,其实是/work/nfs_root/first_fs这个文件夹写错了,悲剧的我为了这一个错误找了一上午