Linux下nfs文件共享方式和实现的方法Word下载.docx
《Linux下nfs文件共享方式和实现的方法Word下载.docx》由会员分享,可在线阅读,更多相关《Linux下nfs文件共享方式和实现的方法Word下载.docx(12页珍藏版)》请在冰豆网上搜索。
anongid:
同anonuid,但是变成groupID就是了!
sync:
资料同步写入存储器中。
async:
资料会先暂时存放在内存中,不会直接写入硬盘。
insecure允许从这台机器过来的非授权访问。
4、exportfs-a(导出所有共享的目录)
5、showmount-e127.0.0.1(查被共享的目录)
Exportlistfor127.0.0.1:
/mnt/inst*
/home/temp*
6、在客户端输入所需要的共享文件。
mount-tnfs192.168.111.1:
/mnt/inst/mnt/inst
(mount服务器上的共享目录)
7、在客户端使用mount命令,就可以看到刚才被mount的文件了。
这样简单的就是实现了文件共享
-----------------------------------------------------------
目标1:
安装配置SAMBA服务器
目标2:
安装配置NFS服务器
实验操作过程及配置说明:
5.1任务1:
配置SAMBA服务器使用SAMBA客户端
5.1.1步骤1:
samba默认安装,不用手动安装(下面是查看结果)
5.1.2步骤2:
修改主配置文件,更改工作组。
[root@sjd2~]#vi/etc/samba/smb.conf
workgroup=工作组名(设置成与windows真机一致)
5.1.3步骤3:
启动SAMBA服务,为防止服务之前已经启动,尽量用restart。
[root@sjd2~]#servicesmbrestart
5.1.4步骤4:
添加系统用户,并生成相应的samba用户。
(注:
可以用root用户,密码可以与系统的root账户密码不同。
)
[root@sjd2~]#smbpasswd–aroot
5.1.5步骤5:
打开真机的网上邻居,点击左栏的查看工作组计算机,查看是否有SAMBA服务器。
如果没有查看工作组计算机,请点击工具菜单-&
gt;
文件夹选项,勾选在文件夹中显示常见任务。
5.1.6步骤6:
在网上邻居中打开SAMBA服务器,输入SAMBA账户名及密码登录。
用共享用户root登录要用共享的密码
默认登录到的是在root账户的宿主目录
5.1.7步骤7:
在虚机中运行smbstatus命令并记录结果。
5.1.8步骤8:
在真机中建立共享文件夹,并确认管理员已经设置密码。
5.1.9步骤9:
在虚机中登录真机的共享文件夹
查看真机共享列表:
(此命令是显示指定服务器上的共享资源,不指定账户时会使用匿名登录,密码为空)
[root@sjd2~]#smbclient真机IP–L
登录共享文件夹:
-u命令选项指定使用的用户登录名,要输入密码,要指定共享名称
[root@sjd2~]#smbclient//真机IP/共享名–Uadministrator
登录后可以使用get命令下载和put上传
5.1.10步骤10:
在虚机中挂载真机的共享文件夹
[root@sjd2~]#smbmount//真机IP/共享名/mnt–ousername=administrator
5.2任务2:
安装并配置NFS管理NFS服务器。
1.通常情况下NFS软件包是系统默认安装的,在配置NFS服务器前先查看下软件包是否安装.如果没有安装,nfs-utilsportmap这两个软件包在第二张光盘里/RedHat/PMS
#rpm–qnfs-utilsportmap
2.portmap软件包中提供了运行portmap服务所需要的文件。
portmap服务为NFS等服务器程序提供RPC(远程过程调用)服务的支持,因此应确保portmap软件包和nfs-utils软件包一同安装。
nfs-utils软件包中提供了NFS服务器的启动脚本和管理维护工具。
3.NFS服务器的配置,NFS服务器的配置文件保存在/etc/目录中,文件名称是exports,该文件用于配置NFS服务器提供的目录共享(默认文件中没有内容,这样也是出于安全的考虑)我以经做过共享了所以里过有一条记录
/home是需要进行输出的NFS共享的目录名称
192.168.1.0是这个网段的主机才可以访问后面是共享权限,可以用*来代替IP就是对所有主机共享
4.exports文件配置实例
配置的是对所有主机共享sjd文件夹
NFS服务器的启动与停止
查询serviceportmapstatus启动serviceportmapstart停止serviceportmapstop
启动nfs服务serivcenfsstart(由于nfs服务需要portmap服务提供支持,因此portmap要先启动)
5.showmount命令显示NFS服务器的信息
showmount192.168.0.1(NFS服务器的IP)
查看服务器上输出的共享
showmount–d【NFS服务器主机地址】用于显示NFS服务器中已经被NFS客户端挂载用的共享目录
showmount–a选项用于显示NFS服务器中已经被挂载的共享目录一列表和挂载共享目录的NFS客户机的地址
6.exportfs命令
当系统管理员对/etc/exports文件进行设置修改后并不会自动在NFS服务器中生效。
NFS服务器的软件包中提供了exportfs管理工具,可以对exports文件设置的内容进行管理。
重新输出共享目录exportfs–rv
停止输出所有目录exportfs–auv
输出(启用)所有目录exportfsav
7.NFS客户端配置
在linux中配置使用NFS客户端
1.挂载NFS服务器中的共享目录mount–tnfs192.168.0.1:
/sjd/mnt(先查看再挂载的)
已经挂载上了,可以看到里边的文件了
2.系统启动时自动挂载
将nfs共享信息写入/etc/fstab文件,以实对nfs共享目录的自动挂载
在fstab文件中添加以下一行
192.168.0.1:
/sjd/mntnfsdefaults00
------------------------
8.3.4
NFS的安装配置
网络文件系统(NetworkFileSystem,NFS)是一种将远程主机上的分区(目录)经网络挂载到本地系统的一种机制,通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区(目录)进行操作。
在嵌入式Linux的开发过程中,开发者需要在Linux服务器上进行所有的软件开发,交叉编译后,通过FTP方式将可执行文件下载到嵌入式系统运行,但这种方式不但效率低下,且无法实现在线的调试。
因此,可以通过建立NFS,把Linux服务器上的特定分区共享到待调试的嵌入式目标系统上,这样就可以直接在嵌入式目标系统上操作Linux服务器,同时可以在线对程序进行调试和修改,大大方便了软件的开发。
因此,NFS是嵌入式Linux开发的一个重要的组成部分,本部分内容将详细说明如何配置嵌入式Linux的NFS开发环境。
嵌入式Linux的NFS开发环境的实现包括两个方面:
Linux服务器端的NFS服务器支持;
嵌入式目标系统的NFS客户端的支持。
因此,NFS开发环境的建立需要配置Linux服务器端和嵌入式目标系统端。
在Ubuntu系统下,使用NFS需要首先安装以下NFS的软件包。
服务器端:
nfs-common、nfs-kernel-server、portmap;
客户端:
nfs-common、portmap。
注意:
目标板上的Linux系统由Linux内核和busybox共同提供对NFS的支持,不必安装其他的NFS客户端。
安装服务器端软件包的命令是:
$sudoapt-getinstallnfs-kernel-server
安装nfs-kernel-server时,apt会自动安装nfs-common和portmap。
刚安装好的NFS还不能提供实际的服务,需要配置共享目录的路径和访问权限。
NFS的配置文件是/etc/exports。
这个文件的内容非常简单,每一行由抛出路径、客户名列表以及每个客户名后紧跟的访问选项构成,如下所示:
[共享的目录][主机名或IP(参数,参数)]
其中参数是可选的。
当不指定参数时,NFS将使用默认选项。
默认的共享选项是:
sync,ro,root_squash,no_delay
当主机名或IP地址为空时,则代表共享给任意客户机提供服务。
当将同一目录共享给多个客户机,但对每个客户机提供的权限不同时,可以这样:
[共享的目录][主机名1或IP1(参数1,参数2)][主机名2或IP2(参数3,参数4)]
如表8-2所示,列出了一些NFS共享的常用参数。
表8-2
NFS共享的常用参数
参数
说明
ro
只读访问
rw
读写访问
sync
所有数据在请求时写入共享
async
NFS在写入数据前可以相应请求
secure
NFS通过1024以下的安全TCP/IP端口发送
insecure
NFS通过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_squash
root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas
root用户具有根目录的完全管理访问权限
anonuid=xxx
指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx
指定NFS服务器/etc/passwd文件中匿名用户的GID
举例说明如下:
/home/share192.168.1.15(rw,sync)*(ro)
配置说明:
对IP地址为192.168.1.15的客户端赋予读写权限,其他IP地址的客户端仅有只读权限。
/home/share192.168.1.*(rw,sync,no_root_squash)
允许IP地址范围在192.168.1.*的计算机以读写的权限来访问/home/share目录。
/home/share*(rw,no_root_squash)
/home/share目录允许所有的IP以读写的权限来访问。
最后执行启动NFS服务的命令。
启动NFS服务的命令如下。
$sudo/etc/init.d/nfs-kernel-serverstart
停止服务,命令如下。
$sudo/etc/init.d/nfs-kernel-serverstop
重启服务,命令如下。
$sudo/etc/init.d/nfs-kernel-serverrestart
在NFS服务器启动后,还需要检查Linux服务器的防火墙等设置(一般需要关闭防火墙服务),确保没有屏蔽掉NFS使用的端口和允许通信的主机,主要是检查Linux服务器iptables、ipchains等选项的设置,以及/etc/hosts.deny,/etc/hosts.allow文件。
通常都是在内部局域网中进行开发,在安装系统时最好不要安装防火墙等网络安全软件,以方便使用时的配置。
首先在Linux服务器上进行NFS服务器的回环测试,验证共享目录是否能够被访问。
在Linux服务器上运行如下命令:
$mount-tnfs192.168.1.1:
/home/share/mnt
如果没有错误发生,再运行如下命令:
$ls/mnt
该命令将Linux服务器的NFS输出共享目录挂载到/mnt目录下,因此,如果NFS正常工作,应该能够在/mnt目录看到/home/share共享目录中的内容。
在Linux服务器设置好后,还需要对目标板系统进行相关配置。
在移植内核时需要添加内核对NFS的支持,在内核的编译选项中,选中"
networkingoptions"
、"
IP:
kernellevelauloconfiguralion"
项;
选中"
filesystems"
networkfilesystems"
rootfilesystemonnfs"
和"
nfsfilesystemsupport"
。
重新编译内核,将bootloader和kernel下载到开发板上。
启动开发板后,在目标系统的LinuxShell下,首先建立Linux服务器输出共享目录的挂载点:
$mkdir/mnt/nfs
执行如下命令来进行NFS共享目录挂载。
$mount-tnfs192.168.1.1:
/home/share/mnt/nfs-onolock
mount命令中的参数192.168.1.1为Linux服务器的IP地址,/home/share为Linux服务器端所配置的共享输出目录,/mnt/nfs为嵌入式设备上的本地目录。
然后进入该目录。
$cd/mnt/nfs
列出该目录的文件。
$ls
此时,在目标系统端所显示的内容即为Linux服务器的输出目录的内容,即Linux服务器的输出目录/home/share通过NFS映射到了嵌入式目标系统的/mnt/nfs目录,可以像对待本地的目录一样来对待NFS的共享目录了。
用户可以用增加、删除、修改文件的方式来验证实际效果。