1、启动ubuntu,设置ip地址(必须与开发板处于同一网段)固然已经处于同一网段就没必要设置了 linux lingd@ubuntu :~$ sudo ifconfig eth0 192.168.0.26 netmask 255.255.255.0 ubuntu 2、为ubuntu安装NFS 服务器 1.安装NFS 网络 lingd@ubuntu :~$ sudo apt-get install nfs-kernel-server app 同时会有两个软件包nfs-common和portmap被安装上 测试 2.修改NFS配置文件 spa lingd@ubuntu :~$ vi /etc/exports .net 内容为: rest /home/lingd/arm 192.168.0.*(rw,sync,no_root_squash,no_subtree_check) orm 前面不用加# /home/lingd/arm---要共享的目录 192.168.0.*---容许访问的网段,也能够是ip地址、主机名(可以被服务器解析)、*(全部人都能访问) (rw,sync,no_root_squash,no_subtree_check)- rw:读/写权限 sync:数据同步写入内存和硬盘 no_root_squash:服务器容许远程系统以root特权存取该目录 no_subtree_check:关闭子树检查 其余选项能够经过man exports查阅man文档 3.启动服务 重启portmapper(端口映射)服务 lingd@Ubuntu:~$ sudo service portmap restart portmap start/running, process 550 重启NFS服务 lingd@ubuntu :~$ sudo service nfs-kernel-server restart * Stopping NFS kernel daemon [ OK ] * Unexporting directories for NFS kernel daemon... [ OK ] * Exporting directories for NFS kernel daemon... [ OK ] * Starting NFS kernel daemon [ OK ] 3、测试 1、本机挂载 lingd@Ubuntu:~$ ls /mnt/nfs/ lingd@ubuntu :~$ sudo mount -t nfs -o nolock localhost:/home/lingd/arm/ /mnt/nfs/ lingd@ubuntu :~$ ls /mnt/nfs/ lingd@ubuntu :~$ sudo umount /mnt/nfs lingd@ubuntu :~$ ls /mnt/nfs/ 2.开发板挂载 lingd@Ubuntu:~$ telnet 192.168.0.25 (开发板的ip地址) Trying 192.168.0.25... Connected to 192.168.0.25. Escape character is '^]'.
(none) login: root Password: ~ # ls /mnt ext1 ext2 ~ # mount -t nfs -o nolock 192.168.0.26(宿主机的ip,同一网段):/home/lingd/arm /mnt(8120机) ~ # ls /mnt ~ # umount /mnt ~ # ls /mnt 4、挂载nfs文件系统失败的缘由 1、nfs错误信息 Too many levels of remote in path:试图挂载一个存在的文件系统 Permission denied:NFS服务器不让客户机挂接,也多是由于用户在服务器上不存在 No such host:一般是DNS配置错误 No such file or directory:一般是访问的目录不存在 NFS server is not responding:一般是NFS已经超过负载或者NFS已经中止工做 Stale file handle:在NFS客户端关闭以前客户端访问的文件被删除 Fake hostname:Forward和reverse的DNS记录在NFS客户端下不存在 2、挂载nfs文件系统失败的缘由 (1)主机和网络不通:看看网线链接、主机和开发板ip是否在同一网段、防火墙有没有关闭等。不只vmware中linux的防火墙要关闭,vmware外xp的防火墙也要关闭,我就由于xp中的eset杀毒软件的防火墙使nfs没法挂载(能够挂本机,没法挂远程),折腾了一天,后来才发现是xp中的防火墙搞的鬼! (2)使用的mount命令不正确。能够参照上面的例子改一下;或者man nfs查阅一下nfs的man文档,里面有nfs中mount的使用介绍和选项解释 (3)nfs配置文件/etc/exports配置不正确。能够参照上面的例子改一下;或者man exports查阅一下/etc/exports的man文档 (4)必要时从新启动NFS和portmap服务。 sudo service portmap restart sudo service nfs-kernel-server restart (5)内核不支持NFS和RPC服务(可能须要从新配置、编译、烧写内核)。 普通的内核应有的选项为CONFIG_NFS_FS=m、CONFIG_NFS_V3=y、CONFIG_ NFSD=m、CONFIG_NFSD_V3=y和CONFIG_SUNRPC=m。 rpcinfo命令用于显示系统的RPC信息,通常使用-p参数列出某台主机的RPC服务。rpcinfo -p命令检查服务器时,应该能看到portmapper、status、mountd、nfs和nlockmgr。用该命令检查客户端时,应该至少能看到portmapper服务(开发板可能不带该命令)。由rpcinfo -p可知,nfs使用的port为2049,portmapper使用111port。 5、nfs相关的配置文件与命令 1、/etc/exports NFS的主要配置文件,不过系统并无默认值,因此这个文件不必定会存在(须要本身创建)。 2、/usr/sbin/exportfs 用于维护NFS共享资源的命令,用在nfs server端。修改/etc/exports后,只要使用exportfs从新扫瞄一次 /etc/exports,从新将设定加载便可,并不必定要重启nfs服务 命令格式: exportfs [-aruv] 参数说明以下。 (1)-a:所有挂载或卸载(export or unexpect)/etc/exports文件内的目录。 (2)-r:从新挂载(reexport)/etc/exports中的目录,并将/var/lib/nfs/etab中的内容与/etc/exports同步。 (3)-u:卸载某些目录。 (4)-v:显示exportfs处理信息。 3、/usr/sbin/showmount 用于查看指定主机NFS共享出来的目录资源,主要用在Client端。 命令格式: showmount [-ade] hostname/服务器ip地址 参数说明以下。 (1)-a或-all:以host:dir格式显示客户主机名和挂载的目录。 (2)-d或-directories:仅显示被客户挂载的目录名。 (3)-e或-exports:显示指定NFS服务器的nfs共享目录。 4、/var/lib/nfs/etab /etc/exports里列举的是用户但愿nfs共享的目录,而/var/lib/nfs/etab里面是Ubuntu实际共享的目录。它记录了NFS所共享出来的目录的完整权限设定值。/var/lib/nfs/etab由exportfs维护,每次exportfs都会扫描/etc/exports以创建新的/var/lib/nfs/etab,每当nfs客户请求挂载共享目录时mountd都会读取该文件以检测客户和目录的权限。同时/var/lib/nfs/etab中共享的目录会保存在内核nfs共享表(export table)中
|
telnet链接开发板需注意的问题
1、物理上,开发板和PC间必须链接,能够经过路由、hub、交换器或者PC开发板直接链接。
2、网络设置必须相同,IP同一个网段,网关、掩码、DNS等,而且可以ping通。
3、完成了前面两条后,就能够实现telnet了(前提文件系统里面有telnet这个功能。)