站长原创,版权所有ITEEDU,2011-05-26
sudo apt-get install nfs-kernel-server
会自动安装nfs-common和portmap
(1)编辑/etc/default/portmap, 将 -i 127.0.0.1 去掉。
(2)配置/etc/hosts.deny,禁止任何host能和你的NFS服务器进行NFS连接,加入:
### NFS DAEMONS(3) 配置/etc/hosts.allow,允许那些你想要的主机和你的NFS服务器建立连接。
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL
### NFS DAEMONS
portmap: 192.168.2.
lockd: 192.168.2.
rquotad: 192.168.2.
mountd: 192.168.2.
statd: 192.168.2.
要将/home/rock/armc目录让138.198.177.*的IP共享, 则在该文件末尾添加下列语句:
/home/rock/armc *(rw,sync,no_root_squash) 运行 $ sudo exportfs -r 更新。这里如果指定ip范围,mount测试的时候得到"权限不够"的错误
/home/rock/armc 138.198.177.*(rw,sync,no_root_squash)其实,如果没有portmap的配置,直接配置/etc/exports也行,这是只要不指定ip的范围即可啦。
运行 $ showmount -e 查看NFS server的export list。
运行 $ sudo /etc/init.d/nfs-kernel-server restart 重启nfs服务。
可以尝试一下挂载本地磁盘(假设本地主机IP地址为:192.128.2.1,将/home/rock/armc挂载到/mnt)
$ sudo mount 138.198.177.39:/home/rock/armc /mnt/nfs运行 $ df 看看结果
$ sudo umount /mnt注意被拷贝文件的读/写权限!
mount -o nolock,rsize=1024,wsize=1024,timeo=15 192.168.2.130:/home/rock/armc /mnt/nfs
笔者在mount的时候遇到了一些问题,导致浪费了好多时间。现在整理出来,跟大家一起分享。
首先ping一下,看看网络是否接通,再在minicom中运行:
mount -o nolock 192.168.2.1:/home/rock/armc /mnt/nfs 或者 mount -t nfs -o nolock 192.168.2.1:/home/rock/amrc /mnt/nfs没有什么问题的话, 就把主机的/home/rock/armc目录挂载到开发板的/mnt/nfs目录了。
nfs:server 192.168.2.1 not responding, still trying
出现这种问题之后,笔者每次都是重新启动开发板,然后很苦恼地发现:not find this file or directory。
然后又反复地将/mnt/nfs中的文件拷贝到开发板的其他目录时,依然是:
nfs:server 192.168.2.1 not responding, still trying。
但是,最终的目标目录中却有刚刚拷贝的内容,这让人瞬间欣喜,但是就因为瞬间的骄傲,让笔者之后反复的浪费时间。 最终发现,其实质上所拷贝到的内容要不是空的(大小是0),要不就是文件大小和宿主机上的不一样。也难怪它显示:not find this file or directory。
后来,偶然发现了文件大小有问题是通过:file helloQt。推理出来是NFS遗漏文件的问题。
事实确实如此呀!
nfs: server xxx.xxx.xxx.xxx not responding, still trying的现象是mount正常,但ping的时候丢包率比较大,拷贝或运行一些数据量大于1K的程序将马上出现这个提示,然后几乎无响应。
这个问题的解决办法如下:
(1)使用加参数的办法:mount -o nolock,rsize=1024,wsize=1024,timeo=15 192.168.2.130:/home/rock/armc /mnt/nfs;
(2)不通过HUB,直接使用交叉线连接开发板和宿主机 。
注意:
(1)也可以将共享文件mount到开发板上的一个空目录中/tmp。
(2)通过NFS所建立起来的共享文件夹,是宿主机和开发板共同所享有的。用户可以将宿主机上的文件直接放入共享文件夹中,在开发板上mount之后,即可看到新添加的文件;同时,用户也可以将开发板上的文件放入共享文件件中,在宿主机上直接打开共享文件夹就可以查看新添加的文件。