- 浏览: 812900 次
- 性别:
- 来自: 西安
文章分类
- 全部博客 (307)
- struts (8)
- hibernate (3)
- spring (32)
- opensourceproject (12)
- javaScript (9)
- primeton EOS (2)
- journey of heart (10)
- Design pattern (6)
- ejb (17)
- point (37)
- Linux&Unix (22)
- ibatis (10)
- AJAX (6)
- DB (26)
- Protocol (6)
- chart (4)
- web server (11)
- webservice (7)
- integration (3)
- tuxedo (5)
- ext (4)
- android (1)
- c/c++ (12)
- JVM (1)
- paginationFrame (2)
- code (2)
- report (1)
- High-performance web (1)
- svn (1)
- JQuery (1)
- workDaily (2)
- cloud (16)
- Python (8)
- English (2)
- shell (5)
- googleCode (1)
- nio (1)
- hyper-v (1)
- debug (3)
- vbs (2)
- openstack (3)
- K8S (1)
- Mesos (0)
- Spark (0)
- Marathon (0)
最新评论
-
钱图大展:
chao2751021 写道lib包哪里去下载,找不到
大型网站用户行为记录的一个实现--基于clickStream(第一部分) -
钱图大展:
无法下载
大型网站用户行为记录的一个实现--基于clickStream(第一部分) -
fm395728572:
shell脚本中用到了环境变量,但是获取不到,例如脚本中有一句 ...
ganymed-ssh2 for Java -
liuhanjiang:
我qq147229234
大型网站用户行为记录的一个实现--基于clickStream(第一部分) -
liuhanjiang:
博主 我利用您提供的方法实现博文中介绍的clickstream ...
大型网站用户行为记录的一个实现--基于clickStream(第一部分)
自己的实验NFS的例子
server 172.17.27.238 将 /opt/sharedir 目录共享
client 172.17.27.242 将 238下的 /opt/sharedir 挂载到本地的 /mut下
step1:
238:
/opt/sharedir 172.17.27.*(rw,sync,no_root_squash)
service portmap start # 首先打开 portmap
service nfs start # 开启 nfs
step2:
242:
mount -t nfs 172.17.27.238:/opt/sharedir /mnt
step3:
让242 开机就能mount nfs
vi /etc/fstab
172.17.27.238:/opt/sharedir /mnt nfs defaults 0 0
网络文件系统(NFS,Network File System)是一种将远程主机上的分区(目录)经网络挂载到本地系统的一种机制,通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区(目录)进行操作。
在嵌入式Linux 的开发过程中,开发者需要在Linux 服务器上进行所有的软件开发,交叉编译后,通用FTP 方式将可执行文件下载到嵌入式系统运行,但这种方式不但效率低下,且无法实现在线的调试。因此,可以通过建立NFS,把Linux 服务器上的特定分区共享到待调试的嵌入式目标系统上,就可以直接在嵌入式目标系统上操作Linux 服务器,同时可以在线对程序进行调试和修改,大大的方便了软件的开发。因此,NFS 的是嵌入式Linux 开发的一个重要的组成部分,本部分内容将详细说明如何配置嵌入式Linux 的NFS 开发环境。
嵌入式Linux 的NFS 开发环境的实现包括两个方面:一是Linux 服务器端的NFS 服务器支持;二是嵌入式目标系统的NFS 客户端的支持。因此,NFS 开发环境的建立需要配置linux 服务器端和嵌入式目标系统端。
一、Linux 服务器端NFS 服务器的配置
以root 身份登陆Linux 服务器,编辑/etc 目录下的共享目录配置文件exports,指定共享目录及权限等。
执行如下命令编辑文件/etc/exports:
# vi /etc/exports
在该文件里添加如下内容:
/home/work 192.168.0.*(rw,sync,no_root_squash)
然后保存退出。
添加的内容表示:允许ip 地址范围在192.168.0.*的计算机以读写的权限来访问/home/work 目录。
/home/work 也称为服务器输出共享目录。
括号内的参数意义描述如下:
rw:读/写权限,只读权限的参数为ro;
sync:数据同步写入内存和硬盘,也可以使用async,此时数据会先暂存于内存中,而不立即写入硬盘。
no_root_squash:NFS 服务器共享目录用户的属性,如果用户是 root,那么对于这个共享目录来说就具有 root 的权限。
接着执行如下命令,启动端口映射:
# /etc/rc.d/init.d/portmap start
最后执行如下命令启动NFS 服务,此时NFS 会激活守护进程,然后就开始监听 Client 端的请求:
# /etc/rc.d/init.d/nfs start
用户也可以重新启动Linux 服务器,自动启动NFS 服务。
在NFS 服务器启动后,还需要检查Linux 服务器的防火墙等设置(一般需要关闭防火墙服务),确保没有屏蔽掉NFS 使用的端口和允许通信的主机,主要是检查Linux 服务器iptables,ipchains 等选项的设置,以及/etc/hosts.deny,/etc/hosts.allow 文件。
我们首先在Linux 服务器上进行NFS 服务器的回环测试,验证共享目录是否能够被访问。在Linux 服务器上运行如下命令:
# mount –t nfs 192.168.0.20:/home/work /mnt
# ls /mnt
命令将Linux 服务器的NFS 输出共享目录挂载到/mnt 目录下,因此,如果NFS 正常工作,应该能够在/mnt 目录看到/home/work 共享目录中的内容。
二、嵌入式目标系统NFS 客户端的配置
在Linux 服务器设置好后,还需要对客户端进行相关配置。在配置内核时选择Load an Alternate Configuration File输入配置文件的路径和文件名添加内核对NFS的支持:
选中networking options-》IP:kernel level auloconfiguralion项
选中file systems-》network file systems-》下的root file system on nfs
和nfs file system support重新编译内核下载bootloader和kernel到开发板上
在嵌入式目标系统的Linux Shell 下,执行如下命令来进行NFS 共享目录挂载:
# mkdir /mnt/nfs //建立Linux 服务器输出共享目录的挂载点;
# mount –t nfs 192.168.0.20:/home/work /mnt/nfs –o nolock
# cd /mnt/nfs
# ls
此时,嵌入式目标系统端所显示的内容即为Linux 服务器的输出目录的内容,即Linux 服务器的输出目。
录/home/work 通过NFS 映射到了嵌入式目标系统的/mnt/nfs 目录。用户可以用增/删/修改文件的方式来验证实际效果。mount 命令中的192.168.0.20 为Linux 服务器的IP 地址,/home/work 为Linux 服务器端所配置的共享输出目录,/mnt/nfs 为嵌入式设备上的本地目录。
在开发过程中,来回输入命令非常烦人,我写了两个简单的脚本来完成nfs的启动,挂载。
host启动nfs: snfs #!/bin/bash ifconfig eth0 192.168.0.20 /etc/rc.d/init.d/portmap start /etc/rc.d/init.d/nfs start 嵌入式目标机挂载nfs: mnfs: #!/bin/sh mount -t nfs 192.168.0.20:/home/work/nfs /mnt/nfs -o nolock echo “nfs ok!” |
======================================================
NFS 为 network file system 的简称,最早由 sun 公司开发,一般 NFS 广泛应用在集群服务器上,他的最大特点是可以通过网络让不同的机器,不同的操作系统可以彼此的共享文件,所以它可以看作一个简单的文件服务器。 NFS 其实可以被视为一个 RPC 服务程序,在启动 RPC 程序前我们先要做好端口的映射工作这就是 portmap,portmap 的意思是当 Client 要连接服务器时必须知道服务器的一个空闲端口这时 Client 会向服务器的 portmap 请求一个端口然,然后 Server 告诉 Client 这端口后才可以建立连接,所以在启动 NFS 前要先启动 portmap
[wds@localhost ~]# rpm –qa |grep nfs && rpm –qa | grep portmap # 查找这两个是否安装
[wds@localhost ~]# vi /etc/exports # 这文件是 NFS 的主要配置文件
[wds@localhost ~]# /usr/sbin/exportfs # 这个文件是 nfs 共享资源命令
[wds@localhost ~]# /usr/sbin/showmount # 可以查看远程服务器的共享目录
[wds@localhost ~]# /var/lib/nfs/xtab #nfs 的日志文件
[wds@localhost ~]# vi /etc/exports
[ 你想要的共享的目录 ] + ip 地址 ( 参数一,参数二 ) [ 主机名二 ] (参数三,参数四)
参数列表
rw: 可以写入权限
ro: 只读权限
no_root_squash: 登陆 NFS 主机共享目录的如果是 root 用户那么那的权限也为 root 但是这样并不安全
root_squash: 登陆的用户如果为 root 它的权限将变成 nobody
all_squash: 不论登陆的用户是什么用户都以匿名用户的权限
sync: 数据同步写入硬盘和内存中
async: 数据先暂时存放在内存中,而不写入硬盘
anounid: 这个可以自己设定 uid, 但是必须与 /etc/passwd 目录中用户 uid 一样
anongid: 同 anonuid, 但是变的是 group id
服务器端配置
[wds@localhost ~]# service portmap start # 首先打开 portmap
[wds@localhost ~]# service nfs start # 在打开 nfs
[wds@localhost ~]#i iptables –F # 清空防火墙命令
[wds@localhost ~]#
比如说我要共享 /var/www/html 目录 但是只是让和我一个网段的机器访问 192.168.0.0/24 这个网段读或写,其他的就只能读,然后在发布一个私人目录 /home/wds/ 只开放给 192.168.0.8
这个 IP
[wds@localhost ~]# vi /etc/exports
/var/www/html 192.168.0.0/24 (rw) *(ro)
/home/wds 192.168.0.8(rw)
现在想要 *.chinaunix.com 网段的机器登陆我的 NFS ,并且访问我的 /home/wds/ 但是它们存储时我希望它们的 uid 和 gid 都变成 40 这个用户身份
[wds@localhost ~]# vi /etc/exports
/var/www/html 192.168.0.0/24 (rw) *(ro)
/home/wds 192.168.0.8(rw)
/home/wds *.chinaunix.com(rw,all)squash,anounid=40,anongid=40)
如果我们修改
/etc/exports
这个文件后,是否要从新启动
nfs
呢?答案是不不需要,只要使用
exportfs
来从新扫描一次
/etc/exports
文件
,
并且从新设置文件加载即可
语法为:
[wds@localhost ~]# exportfs [-aruv]
参数说明:
-a: 全部挂载(或者卸载) /etc/exports 文件的设置
-r: 从新挂载 /etc/exports 里设置,此外,同步更新 /etc/exports 及 /var/lib/nfs/xtab 的内容
-u: 卸载某一目录
-v: 在导出时,将共享目录显示在屏幕上
例如 :
[wds@localhost ~]# exportfs –rv 全部从新导出一次
[wds@localhost ~]# exportfs –au 全部卸载掉
Showmount 的是显示是否有挂载
语法为:
[wds@localhost ~]# showmount [-ae] hostname
参数说明:
-a: 在屏幕上显示与当前的 client 连接后使用目录的状态
-e: 显示 Hostname 这台机器的 /etc/exports 中的共享信息
[wds@localhost log]# showmount -e localhost
Export list for localhost:
/var/www/html (everyone)
Rpcinfo [-p]hostname[or ip]
-p 显示端口与程序的信息
[wds@localhost log]# rpcinfo -p localhost
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 1024 status
100024 1 tcp 1024 status
100011 1 udp 837 rquotad
100011 2 udp 837 rquotad
100011 1 tcp 840 rquotad
100011 2 tcp 840 rquotad
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100021 1 udp 1026 nlockmgr
100021 3 udp 1026 nlockmgr
100021 4 udp 1026 nlockmgr
100021 1 tcp 1026 nlockmgr
100021 3 tcp 1026 nlockmgr
100021 4 tcp 1026 nlockmgr
100005 1 udp 858 mountd
100005 1 tcp 861 mountd
100005 2 udp 858 mountd
100005 2 tcp 861 mountd
100005 3 udp 858 mountd
100005 3 tcp 861 mountd
Client 端的设置
Server 端设置完毕 , 接下来就是让 client 端连接上 server! 连接 server 步骤如下 :
1. 扫描可以使用的 server 目录 :
2. 在 client 端建立装载点
3. 使用 mount 命令远程挂载远程共享目录
4. 解决可能发生的问题(被防火墙过滤掉了)
Showmount 是显示远程主机共享资源
[wds@localhost ~]# showmount -e 192.168.0.8
Export list for 192.168.0.8:
/var/www/html (everyone)
/home/wds *.chinaunix.com,192.168.0.6
[wds@localhost ~]# mount -t nfs 192.168.0.8:/var/www/html /mnt 把远程的 /var/www/html 挂载到本地
[wds@localhost ~]# umount /mnt 卸载远程目录
如果你想要开机启动时自动加载 NFS 服务器导出目录,我们在 NFS 端 /etc/fstab 文件中加入以下一行
192.168.0.8:/var/www/html /mnt nfs rsize=8192,wsize=8192,timeo=14,intr======================================================
======================================================
#
/ 192.168.16.107(rw,no_root_squash)
注释:
/: 接入点
192.168.16.107: 允许的客户端
rw: 允许读写
no_root_squash: root不映射到匿名账户
启动
/etc/init.d/portmap start
/etc/init.d/nfs start
在192.168.16.107上执行:
mount -o rw -t nfs 192.168.16.125:/ /mnt/nfs
OK
测试中忘记重新启动portmap 导致修改 exports加上读写选项部工作。
环境:
192.168.16.125
Red Hat Linux release 9 (Shrike)
192.168.16.107
Red Hat Enterprise Linux AS release 3 (Taroon Update 3)
发表评论
-
物理CPU与VCPU的关系梳理总结
2016-03-11 10:17 13990http://support.huawei.com/e ... -
Linux下Swap空间的添加
2012-08-30 10:04 1275****************************** ... -
通过web方式访问linux VNC
2011-05-15 10:21 48411.首先吧项目部署在tomcat下 2.开 ... -
inux下进行硬盘分区,进行格式化处理,并进行挂载使用
2011-03-31 15:04 1601关键命令: ... -
使用Ubuntu当桌面了
2010-12-11 18:05 16011.升级 package 2.安装ssh ser ... -
linux分区介绍
2010-12-09 20:49 1654首先我们要对硬盘分区的基本概念进行一些初步的了解,硬盘的分区主 ... -
linux 下VNC的配置(转载)
2010-10-29 11:02 15161,查看是否有装VNCserver[root@mylab ~] ... -
linux之lvm学习 (转载)
2010-09-15 23:51 21455月20号 更新: 今天把我本子上的 vmwa ... -
计划任务工具 cron 的配置和说明 (转载)
2010-05-21 17:51 1448作者:北南南北来自:LinuxSir.Org摘要:Linux操 ... -
正确理解Linux内存占用过高的问题 转载
2010-05-21 11:36 2416最近有个月经问题,老有人问为何开机后,还没有其他服务,m ... -
bashrc, bash_profile
2010-01-25 21:47 1684/etc/profile:此文件为系统的每个用户设置环境信息, ... -
liunx 小技巧
2010-01-25 21:43 11481. linux下自定义命令别名 文件: ... -
查看和修改变量
2010-01-10 15:06 1595一、Linux的变量种类 ... -
对#!bin/sh的认识
2010-01-06 09:28 5309第一次学shell编程,看的文章中说shel ... -
linux 删除大量日志文件
2009-12-24 13:09 2779前段时间遇到一个问题,系统的一个 ... -
Linux文件和目录访问权限设置
2009-11-18 13:57 2056文件和目录访问权限设 ... -
Linux 用户(user)和用户组(group)管理概述
2009-11-18 12:49 1129Linux 用户(user)和用户组(group)管理概述 ... -
linux4.0AS 虚拟机安装备忘
2009-10-30 07:58 1380上次装虚拟机,不知道上咋整的中毒了,就虚拟机起不 ... -
WebSphere线程分析工具JCA
2009-05-04 22:39 4393当部署在websphere上的应用出现了问题,比如调用缓慢,线 ... -
RedHat Linux 4 下安装常用的工具
2009-04-29 23:26 2318前段时间装了 ...
相关推荐
### NFS在Linux及嵌入式开发中的应用详解 #### 一、NFS简介 NFS(Network File System,网络文件系统)是由SUN公司在1984年开发的一项技术,其核心理念是允许用户在网络中透明地访问远程主机上的文件系统,如同访问...
在深入探讨NFS4(Network File System版本4)与NFSv2、NFSv3之间的区别之前,我们首先简要回顾一下NFS的基本概念。NFS是一种分布式文件系统协议,允许网络上的不同计算机共享彼此的文件系统。自1985年首次推出以来,...
nfs服务端nfs-kernel-server,nfs-common安装包 以及所需依赖。 NFS服务端的安装(服务器上或者服务主机上安装) NFS的安装只需要安装rpcbind与nfs-kernel-server就可以对外提供服务了。 NFS 服务都是通过 RPC 来...
NFS(Network File System)是UNIX/Linux环境下的一个网络文件共享协议,允许远程计算机系统挂载本地文件系统,实现跨网络的数据访问。标题中的“nfs.rar”可能是一个包含NFS相关软件包的压缩文件,方便用户下载和...
NFS(Network File System)是一种分布式文件系统协议,允许网络中的计算机之间共享文件和目录。在Ubuntu 18.04服务器环境下配置NFS服务端是实现跨机器数据共享的关键步骤。这个离线安装包正是为了解决在没有互联网...
【NFS服务器软件包】 NFS(Network File System)是一种分布式文件系统协议,由Sun Microsystems在1984年开发,允许网络上的计算机共享文件和存储设备。NFS服务器软件包通常包含一组服务和工具,使得Linux或Unix...
《Nfs1169工具在Windows系统的应用与配置详解》 Nfs1169是一款专为Windows系统设计的NFS(Network File System)工具,它的主要功能是帮助用户在Windows环境中搭建NFS服务器,从而实现不同操作系统之间的数据共享和...
NFS(Network File System)是UNIX和Linux系统中广泛使用的网络文件系统,它允许网络上的计算机之间共享文件和目录。在CentOS 7中,NFS服务被用于跨多个主机提供透明的文件共享功能,这对于多服务器环境或者集群配置...
标题中的“win下NFS客户端”指的是在Windows操作系统环境下安装和使用NFS(Network File System)客户端的过程。NFS是一种由Sun Microsystems开发的协议,它允许不同计算机系统之间共享文件和目录,通常在Linux和...
NFS搭建步骤 NFS(Network File System)是 Unix 和类 Unix 操作系统中的一种分布式文件系统,它允许客户机访问服务器上的文件系统,实现文件共享和交换。下面是 NFS 搭建步骤的详细讲解: 安装 NFS 服务器 1. ...
在本压缩包中,我们主要关注NFS服务端的源码,特别是`nfs-server-2.2beta47-ubuntuok.tar.bz2`和`nfs-server-2.2beta47.tar.gz`这两个文件,它们包含了NFS服务器的实现代码。通过分析这些源码,我们可以深入了解NFS...
【haneWIN NFS Server】是一款专为Windows操作系统设计的NFS(Network File System)服务器软件。NFS是一种由Sun Microsystems开发的文件系统协议,它允许网络中的计算机共享资源,特别是文件系统。通过NFS,用户...
在Ubuntu系统中,为了实现多台虚拟机之间的文件共享,我们常常会采用网络文件系统(NFS)。NFS是一种协议,允许一个系统(服务器)通过网络共享目录给其他系统(客户端),使得它们能够像访问本地文件一样访问远程...
Windows 下 NFS 客户端的安装 在 Windows 平台上安装 NFS 客户端,可以将 NFS 共享目录映射到一个驱动器上,以便在 Windows 平台上访问 NFS 共享资源。下面是安装和设置 NFS 客户端的步骤: 1. 安装 Microsoft ...
【nfs-utils.tar.gz】是一个包含NFS(Network File System)工具的离线安装包,主要服务于Linux系统,用于实现不同计算机之间的文件共享。NFS是一种标准的协议,允许一台计算机(客户端)透明地访问另一台计算机...
NFS(Network File System)是一种分布式文件系统协议,由Sun Microsystems开发,允许网络中的计算机之间共享文件和存储设备。在本教程中,我们将探讨如何在服务端编译和安装NFS源码,以便实现跨机器的文件共享和...
NFS(Network File System)是一种分布式文件系统协议,允许网络中的计算机之间共享文件和目录。在Linux环境中,NFS被广泛用于服务器之间的数据共享。为了在Linux系统上配置和使用NFS服务,我们需要安装一系列的RPM...
Ubuntu 14.04 安装配置 NFS 服务器 NFS(Network File System)是一种允许多个电脑通过网络共享文件的系统。它使得不同的计算机可以通过网络访问和共享对方的文件,实现了文件的共享和交换。在 Ubuntu 14.04 中,...
### NFS (Network File System) 全面解析与详解 #### NFS 概述 NFS(Network File System)是一种网络文件系统协议,它允许一个系统在网络上共享目录和文件。通过使用NFS,用户和应用程序可以像访问本地文件一样...
NFS(Network File System)是一种由Sun Microsystems开发的网络文件系统协议,允许在不同操作系统之间共享文件和目录。在Windows环境中搭建NFS服务,可以实现Windows与Linux系统之间的无缝文件共享,这对于多平台...