Ubuntu开启nfs并连接开发板

来源:互联网 发布:to me软件 编辑:程序博客网 时间:2024/06/01 08:49

一、在Ubuntu服务器端的操作如下:
1、安装 nfs
Ubuntu 上默认是没有安装 nfs 服务器的,因此我们首先安装 nfs 服务器端:

 $sudoapt-get install nfs-kernel-server

 在一些文档中,提出还需要使用apt-get 来手动安装 nfs 的客户端 nfs-common ,以及端口映射器 portmap,但其实这是没有必要的,因为在安装nfs-kernel-server时, apt会自动为我们把它们安装好。

2、配置 /etc/exports

执行如下命令编辑文件/etc/exports:

# vi /etc/exports

在该文件里添加如下内容:

/home/nfsroot 192.168.1.*(rw,sync,no_root_squash)

然后保存退出。

添加的内容表示:允许ip 地址范围在192.168.1.*的计算机以读写的权限来访问/home/ nfsroot目录。

/home/ nfsroot也称为服务器输出共享目录。

括号内的参数意义描述如下:

rw:读/写权限,只读权限的参数为ro;

sync:数据同步写入内存和硬盘,也可以使用async,此时数据会先暂存于内存中,而不立即写入硬盘。

no_root_squash:NFS 服务器共享目录用户的属性,如果用户是 root,那么对于这个共享目录来说就具有 root 的权限。

(如果写成:“/home/nfsroot *(rw,sync,no_root_squash)”,这表示允许所有IP访问)

其它 nfs 常用的参数有:

ro 只读访问
rw 读写访问 sync 所有数据在请求时写入共享
asyncnfs 在写入数据前可以响应请求
securenfs 通过 1024 以下的安全 TCP/IP 端口发送
insecurenfs 通过 1024 以上的端口发送
wdelay 如果多个用户要写入 nfs 目录,则归组写入(默认)
no_wdelay 如果多个用户要写入 nfs 目录,则立即写入,当使用 async 时,无需此设置。
hide 在 nfs 共享目录中不共享其子目录
no_hide 共享 nfs 目录的子目录
subtree_check 如果共享 /usr/bin 之类的子目录时,强制 nfs 检查父目录的权限(默认)
no_subtree_check 和上面相对,不检查父目录权限
all_squash 共享文件的 UID 和 GID 映射匿名用户 anonymous ,适合公用目录。
no_all_squash 保留共享文件的 UID 和 GID (默认)
root_squashroot 用户的所有请求映射成如 anonymous 用户一样的权限(默认)
no_root_squasroot 用户具有根目录的完全管理访问权限
anonuid=xxx 指定 nfs 服务器 /etc/passwd 文件中匿名用户的 UID
anongid=xxx 指定 nfs 服务器 /etc/passwd 文件中匿名用户的 GID

3、配置portmap

方法1: 编辑/etc/default/portmap, 将 最后一行注释掉.
方法2: $ sudo dpkg-reconfigure portmap , 对Should portmap be bound to the loopback address? 选N.

4、配置/etc/hosts.deny

(禁止任何host(主机)能和你的NFS服务器进行NFS连接),加入:
### NFS DAEMONS
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL

5、配 置/etc/hosts.allow

允许那些你想要的主机和你的NFS服务器建立连接。下列步骤将允许任何IP地址以 192.168.1开头的主机(连接到NFS服务器上),也可以指定特定的IP地址。参看man页hosts_access(5), hosts_options(5)。加入:
### NFS DAEMONS
portmap: 192.168.1.
lockd: 192.168.1.
rquotad: 192.168.1.
mountd: 192.168.1.
statd: 192.168.1.

6、启动NFS

sudo  ./etc/init.d/portmap restart
sudo  ./etc/init.d/nfs-common restart
sudo  ./etc/init.d/nfs-kernel-server restart

7、测试 NFS

showmount -e
sudo mount  192.168.1.102:/home/nfsroot  /mnt
ls /mnt
看是否已经挂载成功


二、在开发板下执行入下操作:

开发板下的操作:

mount -t nfs -o nolock 192.168.1.102:/home/nfsroot /mnt/nfs

-t nfs表示指定文件系统为nfs文件系统

然后进入到/mnt/nfs目录便可以看到服务器上的文件

注意这里的参数与“-t nfs -o nolock ”不能丢弃,我不用这些参数的时候,在开发板的终端调试软件(超级终端)上输入以上命令时,无法挂载nfs

 

根据一下的总结:

http://linux.chinaunix.net/techdoc/system/2009/02/06/1060861.shtml

http://hongyan.cqupt.edu.cn/news/newsView.php?do=14213


原创粉丝点击