您的位置:首页 > 其它

ubuntu9.10构建nfs服务器端

2010-03-21 13:42 274 查看
具体而言:在ubuntu9.10构建nfs服务器端,在ARM上构建客户端,这样便于开发。
先引用别人的做法:
1、进行NFS服务器端与客户端的安装:
sudo apt-get install nfs-kernel-server nfs-common portmap
安装客户端的作用是可以在本机进行NFS服务的测试。
2、配置portmap
两种方法任选一种就可以:
(1):sudo gedit /etc/default/portmap
注释掉 -i 127.0.0.1
(2)sudo dpkg-reconfigure portmap
运行后选择“否”
3、配置挂载目录和权限
#sudo gedit /etc/exports
我的配置如下:
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync) hostname2(ro,sync)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt)
# /srv/nfs4/homes gss/krb5i(rw,sync)
#
/home/book *(rw,sync,no_root_squash)
解释一下:
#后面的都是解释
/home/book是NFS的共享目录,*表示任何IP都可以共享这个目录,你可以改为受限的IP,rw表示的是权限,sync是默认的。

4、更新exports文件
只要你更改了/etc/exports, 你可以通过sudo exportfs -r 来更新 这个文件

5、重启NFS服务
sudo /etc/init.d/nfs-kernel-server restart 重启nfs服务

6、进行测试
尝试一下挂载本地磁盘(我的linux系统IP为192.168.1.22,将/home/book 挂载到/mnt)
$ sudo mount 192.168.1.7:/home/book /mnt
运行 $ df 看看结果
$ sudo umount /mnt

5、嵌入式系统中使用NFS服务挂载(来自网上)
嵌入式要mount 的时候 使用
mount -t nfs -o nolock 192.168.1.22:/home/nfsboot /mnt

PS:理论上,就可以了,因为我以前搞国,也没有什么障碍。但是现在问题来了,以前的系统版本是8。04,而现在是9。10,结果死活是运行不了。冥冥之中找了一两天,晕死,我老是怀疑自己那个地方敲错了。

知道昨天晚上,看到一篇9。10的nfs服务构建,才看到:
注意,上面的主机IP不能使用*来通配,否则在客户机上会出现访问拒绝,但是如果我们要设置局域网访问呢?怎么办,使用子网掩码例如:10.1.60.0/255.255.254.0即可让10.1.60.*和10.1.61.*都可以访问,还可以使用 10.1.60/23这种方式类确定子网。
说明什么?以前的那种方式是不行的,我就指定一个
/home/nfsboot 192.168.1.7(rw,sync,no_root_squash)//本机ip,现用来测试嘛
OK!成了!!!

ARM上面的nfs支持,这里不说了,我的博客里面有。在从arm上面挂载,成功了!

外沿:从中我也学会了nfs相关的一些知识,例如
题:1. sudo mount -t nfs 192.168.1.7:/home/nfsboot /mnt
mount.nfs: access denied by server while mounting 192.168.1.7:/home/nfsboot
因为我是指定一个网段的。

2.ladeng@ladeng-laptop:~$ showmount -e
showmount: RPC: Program not registered
mountd起没起
解决办法:
ladeng@ladeng-laptop:~$ host 127.0.0.1
1.0.0.127.in-addr.arpa domain name pointer localhost.
ladeng@ladeng-laptop:~$ host 127.0.0.1 //禁用无线
;; connection timed out; no servers could be reached
事实是:即使指定一个ip,可一用nfs了,但是此法仍然不行。why??学习中

3.ladeng@ladeng-laptop:~$ df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda10 17061584 5290556 10904324 33% /
tmpfs 767520 0 767520 0% /lib/init/rw
varrun 767520 128 767392 1% /var/run
varlock 767520 0 767520 0% /var/lock
udev 767520 172 767348 1% /dev
tmpfs 767520 84 767436 1% /dev/shm
lrm 767520 2192 765328 1% /lib/modules/2.6.28-17-generic/volatile
/dev/sda9 241116 45117 183551 20% /boot
/dev/sda8 8111964 1502092 6197808 20% /home
/dev/sda6 38538496 21477824 17060672 56% /media/MEDIA
用来查看挂载情况

至此,此问题告一段落,开始着手真正的程序开发!

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

以上是转的

本人PS:

1.sudo apt-get install nfs-kernel-server nfs-common portmap
2.sudo dpkg-reconfigure portmap运行后选择“否”
3.sudo gedit /etc/exports 最后一行改为/home/book *(rw,sync,no_root_squash)
4.sudo exportfs -r 更新exports文件
5.sudo /etc/init.d/nfs-kernel-server restart

6.ifocnfig sudo ifconfig eth0 192.168.1.22 up 然后用超级终端将板子的IP改为 192.168.1.11

ifconfig eth0 192.168.1.11 up 然后ping下对方的IP地址 不知道要不要关闭防火墙iptables 反正也关下吧在RedHat上是要关闭的

sudo iptables -L
如果显示
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

说明已经是关了,如果有别的,自己可以手动关闭。

sudo iptables -F
sudo iptables -X
7.sudo mount 192.168.1.22:/home/book /mnt 测试挂接本地硬盘192.168.1.22是虚拟机上的IP地址

运行df查看结果 发现挂接成功
8.mount -n -o nolock,rsize=1024,wsize=1024,timeo=15 192.168.1.22:/home/book /mnt 挂接开发板 成了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: