Ubuntu9.10在ARM上建立NFS服务
2009-12-25 17:39
前言,我参照别人的做法,也是网上普遍做的方法,在linux下构建nfs服务。
具体而言:在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/nfsboot 192.168.1.*(rw,sync,no_root_squash)
解释一下:
#后面的都是解释
/home/nfsboot是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为202.198.137.18,将/home/nfsboot挂载到/mnt)
$ sudo mount 192.168.1.7:/home/nfsboot /mnt
运行 $ df 看看结果
$ sudo umount /mnt
5、嵌入式系统中使用NFS服务挂载(来自网上)
嵌入式要mount 的时候 使用
mount -t nfs -o nolock 192.168.1.7:/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
用来查看挂载情况
至此,此问题告一段落,开始着手真正的程序开发!
具体而言:在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/nfsboot 192.168.1.*(rw,sync,no_root_squash)
解释一下:
#后面的都是解释
/home/nfsboot是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为202.198.137.18,将/home/nfsboot挂载到/mnt)
$ sudo mount 192.168.1.7:/home/nfsboot /mnt
运行 $ df 看看结果
$ sudo umount /mnt
5、嵌入式系统中使用NFS服务挂载(来自网上)
嵌入式要mount 的时候 使用
mount -t nfs -o nolock 192.168.1.7:/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
用来查看挂载情况
至此,此问题告一段落,开始着手真正的程序开发!