嵌入式LINUX NFS服务的配置

简介:
NFS   简介
在嵌入式系统开发过程中,由于可执行程序的编译过程和执行过程分别在宿主机和目标机上完成,因此实现宿主机和目标机之间的实时交互能够大幅度提高嵌入式系统开发的效率。由于目标机也带有操作系统,因此可以通过实现不同机器之间的网络共享来完成实时交互。NFS为为网络文件系统(Network File System)的缩写, NFS 最早是由Sun公司于1984年开发出来的,其目的就是让不同计算机不同操作系统之间可以彼此共享文件。由于NFS使用起来非常方便,因此很快得到了大多数的UNIX/Linux系统的广泛支持,而且还被IETE(国际互联网工程组)制定为RFC1904RFC1813RFC3010标准 使用NFS服务,至少需要启动以下3个系统守护进程。
 
  1rpc.nfsd
它是基本的NFS守护进程,主要功能是管理客户端是否能够登入服务器。
2rpc.mountd
它是RPC安装守护进程,主要功能是管理NFS的文件系统。当客户端顺利地通过rpc.nfsd登录NFS服务器后,在使用NFS服务器所提供的文件前,还必须通过文件使用权限的验证,rpc.mountd会读取NFS的配置文件/etc/exports来对比客户端的权限。
3portmap
portmap 的主要功能是进行端口映射工作。当客户端尝试连接并使用RPC服务器提供的服务(如NFS服务)时,portmap会将所管理的与服务对应的端口号提供给客户端,从而使客户端可以通过该端口向服务器请求服务。值得注意的是,虽然portmap只用于RPC,但它对NFS服务来说是必不可少的。portmap没有运行,NFS客户端就无法查找从NFS服务器中共享的目录 , 要检查NFS服务是否正常运行,可使用rpcinfo -p命令。如果NFS服务运行正常,就可在该命令执行结果中看到关于portmapper等守护进程的条目。
NFS 安装主要软件包
portmap-4.0-54.i386.rpm// 提供port端口软件包
nfs-untils- 1.0.1 -2.9.i386.rpm//nfs 服务包
[root@localhost root]#rpm  qa|grep portmap
// 查看portmap软件包是否安装
[root@localhost root]#rpm  qa|grep nfs
// 查看nfs软件包是否安装
[root@localhost root]#mount /dev/cdrom /mnt/cdrom
// 如果没有安装,则将Red Hat Linux 9.0的第一张镜像盘挂载到虚拟机上,两个主安装包都在第一张镜像盘
[root@localhost RPMS]#cd /mnt/cdrom/RedHat/RPMS/
// 切换到安装包目录,
[root@localhost RPMS]#ls  l portmap*
// 显示以portmap开头安装包的详细信息
[root@localhost RPMS]#rpm  ivh portmap-4.0-54.i386.rpm
// 安装并用进度条显示安装过程
[root@localhost RPMS]#ls  l nfs-utils*
// 同理,显示nfs安装包
[root@localhost RPMS]#rpm  ivh nfs-untils- 1.0.1 -2.9.i386.rpm
// 安装nfs
[root@localhost RPMS]#ls  l redhat-config-nfs- 1.0.4 -5.noarch.rpm
解压是一样道理的。
 
 
[root@localhost root]#service portmap status
// 查看portmap端口的运行情况
[root@localhost root]#service nfs status
// 查看nfs服务是否启动
[root@localhost root]#service portmap start
// 启动portmap服务
[root@localhost root]#service nfs start
// 启动nfs服务,如果重启服务用service nfs restart
 
 
[root@localhost root]#rpcinfo  p
// 显示nfs程序版本协议端口
 
DEVICE=eth0 // 设备别名
BOOTPROTO=static // 静态类型
IPADDR=192.168.1.10 //IP 地址
NETMASK=255.255.255.0 // 子网掩码
NETWORK=192.168.1.0 // 网络地址
BORADCAST=192.168.1.255  // 广播地址
 
 
 
在根目录下建立一个arm2410cl主目录,在arm2410cl建立1个子目录temp
 
 
基本:
目录:自己定义的
/arm2410cl   * (或缺省)      所有主机
/arm2410cl/temp   192.168.1.0/24 (或 192.168.1.*     指定子网中的所有主机
/arm2410cl/mail     www.chen.com         指定域名的主机
/arm2410cl/samba    *.chen.com       指定域中的所有主机
/arm2410cl/ftp   192.168.1.10 指定 IP 地址的主机 
基本权限:
ro:  只读
rw:  读写
两个基本权限是单选的,选择ro,rw就不能存在。同理,选择rw就不能选择ro
常规选项:
Insecure: 允许来自高于1024的端口的连接
Insecure_locks: 允许不安全的文件锁定
no_subtree_check: 禁用子树查询
sync: 按要求同步写操作
no_wdelay: 立即强制同步写操作
用户访问:
no_root_squash: 把远程根用户当作本地根用户
all_squash: 把所有客户用户当作匿名用户
anonuid=XXX: 为匿名用户指定本地用户ID
anongid=XXX: 为匿名用户指定本地组群ID
维护NFS服务的输出目录列表
每当修改了/etc/exports文件的内容后,实际上不需要重新启动NFS服务,而直接使用命令exportfs就可以使设置立即生效。
exportfs 命令就是用来维护NFS服务的输出目录列表的,命令的基本格式如下:
 
 
exports [ 选项]
选项有以下几个。
-a :输出在/etc/exports文件中所设置的所有目录。
-r :重新读取/etc/exports文件中的设置,并使设置立即生效,而不需重新启动NFS服务。
-u :停止输出某一目录。
-v :在输出目录时将目录显示到屏幕上。
1. 重新输出共享目录
每当修改了/etc/exports文件的内容后,可使用下面的命令来重新输出共享目录
Exports  -rv
2. 停止输出所有共享目录
要停止输出当前主机中NFS服务器的所有共享目录,可使用下面的命令。
exportfs  -auv
NFS 服务的配置
NFS 服务的配置方法相对比较简单,只需在NFS的主配置文件/etc/exports中进行设置,然后启动NFS服务即可。
2 .使用showmount命令测试NFS服务器的输出目录状态
showmount 命令的基本格式为:
showmount  -e 192.168.1.10
showmount
showmount 命令如下:
# showmount [-ae] hostname
参数说明如下。
1-a:以host:dir这样的格式来显示客户主机名和挂载点目录。
2-d:仅显示被客户挂载的目录名。
3-e:显示NFS服务器的输出清单。
4-h:显示帮助信息。
5-v:显示版本信息。
6--no-headers:禁止输出描述头部的信息。
当要扫描某一主机所提供的NFS共享的目录时,使用showmount -e IP(或主机名称hostname)即可。
 
# netstat -utln  // 观察激活的端口号
nfs 所开启的端口是2049,其他端口是RPC Server其他程序(例如rpc.mountdrpc.rquotadrpc.nfsd.)随机产生的。即端口号不会是固定的,每次restart nfs都会得到不一样的端口号 值得注意的是,在使用showmount -e命令查看NFS服务器上的输出目录时,如果出现如图4-14所示的故障,其原因可能是NFS服务器上没有启动portmapnfs服务,也可能是被防火墙过滤掉了。解决办法是启动NFS服务器上的portmapnfs服务,并重新设置NFS服务器上的防火墙(包括iptablesTCP_Wrappers)。若是iptables防火墙引起的故障,为了测试NFS服务器功能,可简单地用service iptables stop命令先关掉该防火墙。如果不想关掉防火墙也可以,RPC port端口:111 NFS启动端口2049,允许对外开放
iptables -A INPUT -p tcp -m multiport --dport 111,2049 -j ACCEPT 
iptables -A INPUT -p udp -m multiport --dport 111,2049 -j ACCEPT 
启动时自动连接NFS 要想让系统在启动时自动挂载NFS服务器上的输出目录,应编辑文件/etc/fstab,在该文件中加入如下格式的语句
[root@localhost root]#vim /etc/fstab
NFS 服务器名或IP地址:输出目录 本地挂载目录 nfs defaults 0 0
192.168.1.10:/arm2410cl /mnt/nfs nfs defaults 0 0
IP
[root@EmbedSky /]#ifconfig eth0 192.168.1.11 netmask 255.255.255.0
[root@EmbeSky /]#ping  c 4 192.168.1.10
//ping
[root@EmbeSky /]#mount  t nfs  o nolock 192.168.1.10:/arm2410cl /mnt/nfs
/arm2410cl 
NFS
[root@EmbedSky]#umount /mnt/nfs
//不能在挂载目录卸载,否则卸载会显示系统繁忙无法卸载
NFS 服务器的故障排除
故障排除思路
NFS 出现了故障,可以从以下几个方面着手检查。
1NFS客户机和服务器的负荷是否太高,服务器和客户端之间的网络是否正常。
2/etc/exports文件的正确性。
3)必要时重新启动NFSportmap服务。
运行下列命令重新启动portmapNFS
service portmap restart
service nfs start
4)检查客户端中的mount命令或/etc/fstab的语法是否正确。
5)查看内核是否支持NFSRPC服务
 
NFS
Portmap NFS
挂载时命令打错了的
挂载时没有那个目录的状态
 
欢迎热爱嵌入式linux的圈友、坛友,多多发言,学习交流。给我多点建议,我很乐意接受。同时感谢你的阅读。









本文转自 chen138 51CTO博客,原文链接:http://blog.51cto.com/chenboqiang/285346,如需转载请自行联系原作者
目录
相关文章
|
8月前
|
Linux 网络安全 Docker
盘古栈云,创建带ssh服务的linux容器
创建带ssh服务的linux容器
444 146
|
10月前
|
Ubuntu Linux 网络安全
Linux服务器之Ubuntu的安装与配置
Ubuntu Desktop是目前最成功、最流行的图形界面的Linux发行版;而Ubuntu Server也在服务器端市场占据了较大的份额。今天为大家详细介绍了Ubuntu Server的安装与配置,希望对你能有所帮助。关于VMware、VirtualBox等虚拟化软件的使用,朱哥还会在后续的文章中为大家详细介绍,敬请关注!
|
8月前
|
存储 Linux 开发工具
Linux环境下使用Buildroot配置软件包
使用Buildroot可以大大简化嵌入式Linux系统的开发和维护工作,但它需要对Linux系统和交叉编译有深入的理解。通过上述步骤,可以有效地配置和定制软件包,为特定的嵌入式应用构建高效、稳定的系统。
904 11
|
安全 Linux 开发工具
【Linux】vim使用与配置教程
Vim是一款功能强大的文本编辑器,广泛应用于Linux环境,是开发者和系统管理员的必备工具。本文介绍了Vim的基本操作与简单配置,涵盖命令模式、插入模式和底行模式的使用方法,以及光标定位、复制粘贴、搜索替换等常用技巧。同时,文章还提供了实用的分屏操作和代码注释方法,并分享了通过`.vimrc`文件进行个性化配置(如显示行号、语法高亮、自动缩进等)的技巧,帮助用户提升文本编辑效率。掌握这些内容,能让Vim更好地服务于日常工作与开发需求。
1089 3
|
9月前
|
缓存 安全 Linux
六、Linux核心服务与包管理
在没有网络的情况下,使用系统安装光盘是获取RPM包的常用方法。场景二:配置本地文件镜像源 (使用系统安装光盘/ISO)(检查RPM包的GPG签名以保证安全) 或。YUM/DNF包管理工具 (yum/dnf)(此处可以放置您为本主题制作的思维导图)处理依赖问题的危险选项 (应极力避免)(覆盖文件、替换已安装包)。(list) 则是列出文件。(query file) 是。(假设系统安装光盘已挂载到。信息 (verbose)。(upgrade) 选项。(all) 已安装的包。(package) 选项
632 11
|
11月前
|
Kubernetes Linux 网络安全
Rocky Linux 8.9配置Kubernetes集群详解,适用于CentOS环境
初始化成功后,记录下显示的 `kubeadm join`命令。
741 0
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
2006 25
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
678 11
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
573 10
|
12月前
|
Linux 网络安全 开发工具
在Linux下配置gitee与Github的远程仓库
注意,git push后,是输入你的账号与密码。这个步骤可以通过特殊设置省去,但是一开始还是不要太省。
598 0