目标板挂载NFS方法及错误解决
时间:2015-08-30 00:21 来源:linux.it.net.cn 作者:IT
一、检查nfs状态
#service nfs status
二、在主机创建nfs共享文件夹:
#mkdir /nfsroot
#cat /etc/exports
/nfsroot 192.168.1.118(rw.sync,no_root_squash)
这里创建了/nfsroot以用于nfs共享,并在/etc/exports文件中将共享属性IP设置为192.168.1.118(开发板的IP)的用户可读写,并且由no_root_squash指定信任客户端。
三、启动主机nfs服务
#service nfs start
四、在开发板mount主机共享文件
#mount 192.168.1.100:/nfsroot /mnt/
无任何提示表示成功,可以操作/mnt目录,cp、mv文件等。
可能出现的错误提示:
# mount -t nfs 192.168.1.249:/appdata /mnt
portmap: server localhost not responding, timed out
RPC: failed to contact portmap (errno -5).
portmap: server localhost not responding, timed out
RPC: failed to contact portmap (errno -5).
lockd_up: makesock failed, error=-5
portmap: server localhost not responding, timed out
RPC: failed to contact portmap (errno -5).
mount: Mounting 192.168.1.249:/appdata on /mnt failed: Input/output error
可能原因:
nfs mount 默认选项包括文件锁,依赖于portmap提供的动态端口分配功能;
简单的解决方法:kill 文件锁(lockd)或者mount -o nolock ;
上面说的文件锁具体是什么原因,还没有找到更好的解决办法。
注意:主机防火墙有设置时,也可能导致目标板无法正常访问,建议最好设置为无防火墙。
改用:mount -o nolock 192.168.1.100:/nfsroot /mnt 可解决。
编辑/etc/exports文件,格式可以参考man exports,里面有详细的参数说明和示例。
如,要共享主机的/appdata目录给目标板,具有读写功能,一般都指定用户(root)来操作,否则默认会出现uid和gid都是-2的数字(可以通过anonuid和anongid来设置匿名操作的相关ID,或者用root_squash来设置root操作),最后写出的exports样子如下:
#cat /etc/exports
/appdata 192.168.1.*(rw,sync,no_root_squash)
以root执行exportfs –r,重新加载导出内容,若修改了文件exports,直接执行此命令即可;
启动portmap服务,service portmap start ;(为什么要这个?因为portmap定向RPC通信数据流,若不运行portmap,则NFS客户机无法找到从NFS服务器共享的目录。)
启动nfs服务,service nfs start;
注意:启动目标板并连通网络后,首先查看kernel自身是否支持nfs,
cat /proc/filesystems
查看其中是否有nfs一行,若没有则表示内核不支持nfs,就需要重新编译和烧内核;有则OK,接下来就可以直接mount操作。
(责任编辑:IT)
一、检查nfs状态 #service nfs status 二、在主机创建nfs共享文件夹: #mkdir /nfsroot #cat /etc/exports /nfsroot 192.168.1.118(rw.sync,no_root_squash) 这里创建了/nfsroot以用于nfs共享,并在/etc/exports文件中将共享属性IP设置为192.168.1.118(开发板的IP)的用户可读写,并且由no_root_squash指定信任客户端。 三、启动主机nfs服务 #service nfs start 四、在开发板mount主机共享文件 #mount 192.168.1.100:/nfsroot /mnt/ 无任何提示表示成功,可以操作/mnt目录,cp、mv文件等。 可能出现的错误提示: # mount -t nfs 192.168.1.249:/appdata /mnt portmap: server localhost not responding, timed out RPC: failed to contact portmap (errno -5). portmap: server localhost not responding, timed out RPC: failed to contact portmap (errno -5). lockd_up: makesock failed, error=-5 portmap: server localhost not responding, timed out RPC: failed to contact portmap (errno -5). mount: Mounting 192.168.1.249:/appdata on /mnt failed: Input/output error 可能原因: nfs mount 默认选项包括文件锁,依赖于portmap提供的动态端口分配功能; 简单的解决方法:kill 文件锁(lockd)或者mount -o nolock ; 上面说的文件锁具体是什么原因,还没有找到更好的解决办法。 注意:主机防火墙有设置时,也可能导致目标板无法正常访问,建议最好设置为无防火墙。 改用:mount -o nolock 192.168.1.100:/nfsroot /mnt 可解决。 编辑/etc/exports文件,格式可以参考man exports,里面有详细的参数说明和示例。 如,要共享主机的/appdata目录给目标板,具有读写功能,一般都指定用户(root)来操作,否则默认会出现uid和gid都是-2的数字(可以通过anonuid和anongid来设置匿名操作的相关ID,或者用root_squash来设置root操作),最后写出的exports样子如下: #cat /etc/exports /appdata 192.168.1.*(rw,sync,no_root_squash) 以root执行exportfs –r,重新加载导出内容,若修改了文件exports,直接执行此命令即可; 启动portmap服务,service portmap start ;(为什么要这个?因为portmap定向RPC通信数据流,若不运行portmap,则NFS客户机无法找到从NFS服务器共享的目录。) 启动nfs服务,service nfs start; 注意:启动目标板并连通网络后,首先查看kernel自身是否支持nfs, cat /proc/filesystems 查看其中是否有nfs一行,若没有则表示内核不支持nfs,就需要重新编译和烧内核;有则OK,接下来就可以直接mount操作。 (责任编辑:IT) |