您的位置:首页 > Web前端

fedora16下NFS搭建(包括客户端tiny210对PC服务器的访问)

2014-02-15 19:57 197 查看
作者:cherry_odd

转自:/article/11148347.html

一.NFS概述

一台NFS服务器就如同一台文件服务器,只要将其文件系统共享出来,NFS客户端就可以将它挂载到本地系统中,从而可以像使用本地文件系统中到文件一样使用那些远程文件系统中到文件。NFS服务的主要任务是把本地的一个目录通过网络输出,其他计算机可以远程地挂接这个目录并且访问文件。NFS服务有自己到协议和端口号,但是在文件传输或者其他相关信息传递的时候,NFS则使用远程调用(RPC,Remote
Procedure Call)协议。RPC负责管理端口号的对应与服务相关的工作。NFS本身的服务并没有提供文件传递的协议,它通过RPC的功能负责。因此还需要系统启动portmap服务。

当客户机内核向远程NFS服务器发送一个请求,等待服务器相应。NFS服务器一直处于等待状态,如果接受到客户请求,就处理请求并将结果返回客户机,称这个过程为“导出export”;客户机访问服务器导出目录的过程称为“安装mount”,或称为:挂接/导入。如下图所示:



/ShareA,/ShareB和/ShareC分别是三台Linux中的NFS共享目录,那么客户端要访问服务器上的共享目录,就可以使用mount命令将它们分别安装在本地Linux系统的/mntA,/mntB,/mntC目录下,这样用户在访问远程系统中的文件就像访问本地的文件一样。

这招用在PC机和开发板的交叉编译时非常方便,开发板可以在授权的情况下访问PC机中共享的文件夹。

二.NFS配置

1.安装NFS服务

#yum
install nfs-utils*

#yum
install portmap

2.使能NFS服务

#
systemctl enable nfs-server.service

此时,终端会出现:ln
-s '/lib/systemd/system/nfs-server.service' '/etc/systemd/system/multi-user.target.wants/nfs-server.service'

3.检查NFS服务是否被启用

#
systemctl is-enabled nfs-server.service

此时,终端会显示:enabled

4.启动NFS服务

#
systemctl start nfs-server.service

或者用service命令#
service nfs-server restart,此时终端会出现:Redirecting to /bin/systemctl restart nfs-server.service

5.查看NFS服务状态

# systemctl status nfs-server.service

终端会显示:

nfs-server.service - NFS Server

Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled)

Active: active (running) since Wed, 04 Sep 2013 16:28:09 -0400; 3h 51min ago

Main PID: 4332 (rpc.rquotad)

CGroup: name=systemd:/system/nfs-server.service

├ 4332 /usr/sbin/rpc.rquotad

└ 4347 /usr/sbin/rpc.mountd

6.使NFS服务随系统启动

若想让NFS服务随系统启动的同时立即启动,可以使用ntsysv命令,如下图所示:



找到netfs服务,用空格键在netfs处作标记“*”,“确定”即可。

7.配置文件/etc/exports

ro此文件用于NFS服务段,文件格式如下:

共享目录 主机名称1或IP1(参数1,参数2....) 主机名称2或IP2(参数k,参数k+1....)

“共享目录”是主机上要向外输出的一个目录路径

“主机名称1或IP1”是允许按照指定权限访问这个共享目录的远程主机

“参数”定义各种访问权限,如下所示:

rw :可读写的权限

ro :只读的权限

no_root_squash :登入NFS主机,使用该共享目录时相当于该目录的拥有者,如果是root的话,那么对于这个共享的目录来说,他就具有root的权限,这个参数『极不安全』,不建议使用

root_squash :登入NFS主机,使用该共享目录时相当于该目录的拥有者。但是如果是以root身份使用这个共享目录的时候,那么这个使用者(root)的权限将被压缩成为匿名使用者,即通常他的UID与GID都会变成nobody那个身份

all_squash :不论登入NFS的使用者身份为何,他的身份都会被压缩成为匿名使用者,通常也就是nobody

anonuid :可以自行设定这个UID的值,这个UID必需要存在于你的/etc/passwd当中

anongid :同anonuid,但是变成groupID就是了

sync :资料同步写入到内存与硬盘当中

async :资料会先暂存于内存当中,而非直接写入硬盘

insecure :允许从这台机器过来的非授权访问

实例:/home/cherry/下载 192.168.1.105(rw,sync,no_root_squash,no_all_squash)

8.测试

本地测试# showmount -e localhost

# mount192.168.1.105:/home/cherry/下载 /mnt(下划线的地方如果用localhost代替很可能会出错)

# cd /mnt

# ls

去挂载:# umount /mnt

客户端tiny210上测试

# mount -t nfs -o nolock 192.168.1.100:/opt/FriendlyARM/tiny210/linux /mnt(下划线的地方表示主机的ip)

二.mount不上的时候怎么办?

1.最容易犯的就是低级错误,检查在客户端的putty处输入的mount命令的目录路径是否和服务器上的真实路径以及和/etc/exports中的路径一致,特别注意大小写,不然就会出现如下低级错误:



2.重启nfs-server服务和rpcbind服务

# service nfs-server restart

# service rpcbind restart

3.检查服务器上要mount挂载的目录的权限是否是可读可写,不是的话用chmod指令

# chmod 777 /../...

4.每次开机后自动运行 rpcbind 和 nfs 服务:红帽及其 关联 发行版本早就用 rpcbind 代替 portmap了

# chkconfig nfs-server on

# chkconfig rpcbind on

5.防火墙关了否

用setup命令进入查看

6. /etc/exports文件中的格式是否正确

7.检查/etc/hosts.allow 和 /etc/hosts.deny两个文件是否为空

8.检查系统log文件/var/log/messages

9.注意非常重要的一点,开发主机PC和tiny210应该是通过有线连接起来的。

10.问题nfs:server is not responding, still trying

/article/2361167.html

/article/8081540.html

mount -t nfs -o intr,nolock,rsize=1024,wsize=1024 192.168.

1.100:/home/cherry/cherry_DataFile/executable_file_to_tiny210 /mnt
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: