nfs方式共享主机文件
一. 检查nfs状态:
#service nfs status 二. 在主机创建nfs共享文件夹: #mkdir /nfsroot #e cho “/nfsroot 192.168.1.118(rw,sync,no_root_squash)” >/etc/exports #cat /etc/exports /nfsroot 192.168.1.118(rw.sync,no_root_squash) 这里我们创建了/nfsroot以用于nfs 共享,并在/etc/exports文件中将共享属性IP设置为192.168.1.118(开发板的)的用户可读写,并且由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 可解决.
嵌入式开发中配置和使用
NFS
主机系统:RHEL 4
目标板:AT91SAM9263-EK
配置主机 NFS 服务 主机IP:192.168.1.249 编辑/etc/exports文件,格式可以参考man exports,里面有详细的参数说明和示例。 如,要共享主机的/appdata目录给目标板,具有读写功能,一般都指定用户(root)来操作,否则默认会出现uid和gid都是-2的数字(可以通过anonuid和anongid来设置匿名操作的相关ID,或者用root_squash来设置root操作),最后写出的exports样子如下: [wqch@localhost ~]$ 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; 目标板操作 目标板IP:192.168.1.8 启动目标板并连通网络后,首先查看kernel自身是否支持nfs, cat /proc/filesystems 查看其中是否有nfs一行,若没有则表示内核不支持nfs,就需要重新编译和烧内核;有则OK,接下来就可以直接mount操作。 具体命令是: mount –o nolock 192.168.1.249:/appdata /mnt 无任何提示表示成功,可以操作/mnt目录,cp、mv文件等。 使用命令mount –t nfs 192.168.1.249:/appdata /mnt ,有如下错误提示:
/ # 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 ; 上面说的文件锁具体是什么原因,还没有找到更好的解决办法。 注意:主机防火墙有设置时,也可能导致目标板无法正常访问。 |