Ubuntu开启nfs并连接开发板

作者:fly 发布于:2014-9-27 11:57 分类:Linux

www.forwhat.cn

 

一、在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



发表评论:

 
Powered by emlog sitemap