第二讲 Linux文件系统管理

2019-07-13 05:49发布

一、NFS网络文件系统

1NFS的安装

网络文件系统(NFS,Network File System)是一种将远程主机上的分区(目录)经网络挂载到本地系统的一种机制,通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区(目录)进行操作。  在嵌入式Linux 的开发过程中,开发者需要在Linux 服务器上进行所有的软件开发,交叉编译后,通用FTP 方式将可执行文件下载到嵌入式系统运行,但这种方式不但效率低下,且无法实现在线的调试。因此,可以通过建立NFS,把Linux 服务器上的特定分区共享到待调试的嵌入式目标系统上,就可以直接在嵌入式目标系统上操作Linux 服务器,同时可以在线对程序进行调试和修改,大大的方便了软件的开发。因此,NFS 的是嵌入式Linux 开发的一个重要的组成部分,本部分内容将详细说明如何配置嵌入式Linux 的NFS 开发环境。  嵌入式Linux 的NFS 开发环境的实现包括两个方面:一是Linux 服务器端的NFS 服务器支持;二是嵌入式目标系统的NFS 客户端的支持。因此,NFS 开发环境的建立需要配置Linux 服务器端和嵌入式目标系统端。 使用rpm -q nfs-utils命令检测NFS是否安装,如果没有安装,从对应linux操作系统版本的安装光盘上找到nfs-utils安装包。

2NFS的配置

以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/exports:#exportfs -rv

3、启动NFS

接着执行如下命令,启动端口映射: #service portmap restart    最后执行如下命令启动NFS 服务,此时NFS 会激活守护进程,然后就开始监听 Client 端的请求: #service nfs restart    用户也可以重新启动Linux 服务器,自动启动NFS 服务。    在NFS 服务器启动后,还需要检查Linux 服务器的防火墙等设置(一般需要关闭防火墙服务),确保没有屏蔽掉NFS 使用的端口和允许通信的主机,主要是检查Linux 服务器iptablesipchains 等选项的设置,以及/etc/hosts.deny/etc/hosts.allow 文件。 etc/init.d/nfs start 启动命令 etc/init.d/nfs restart  重启命令

4NFS使用

使用mount命令来挂载NFS服务器上的共享目录,在开发板上执行以下命令: # mount -t nfs -o nolock,rsize=4096,wsize=4096虚拟机的IP:虚拟机上要挂载的目录 下载到开发板中的目录  mount -t nfs -o nolock,wsize=4096,rsize=4096 172.16.27.89:/home /mnt 这样开发板上的/mnt 就与linux虚拟机上的/home实现共享。注意虚拟机每次更新时,开发板需要刷新。mv hello_cn /opt/qt-4.5/bin/

二、Samba服务器的使用

LinuxLinux之间通过NFS实现共享 Windowswindows之间通过共享目录实现共享 Linuxwindows之间怎么实现共享?

1、网络的配置

将linux和windows的IP地址设置在同一个网络段上,使他们之间互相连通,并将linux的防火墙关闭。Linux设置IP的命令如下:#ifconfig eth0 172.16.27.89 

2、Samba服务器配置

选择,系统——管理——服务器设置——Samba选项,弹出下面选项。   点击《添加共享》,如下填写。     确定后,点击《首选项》——《Samba用户》——《添加用户》,如下填写。   确定后,将共享的目录权限修改为777,即chmod 777 /eos

3、windows访问

点击 《开始》——《运行》输入linux  IP地址 即,\172.16.27.88   ,系统会弹出一个窗口,填写用户名和密码即可看到共享目录。

三、Wireshark网络协议分析器

1Wireshark的定义

Wireshark 2006年夏天之前叫做Ethereal)是一款非常优秀的,可在LinuxWindows上使用的开源网络协议分析器。它可以实时检测网络通讯数据,也可以抓取网络通讯数据。可以通过图形界面浏览这些数据,可以查看网络通讯数据包中每一层的详细内容。

2、安装

光盘中有四个rpm安装包分别为: v Rpm –ivh lm_sensors-2.10.0-3.1.i386.rpm v Rpm –ivh net-snmp-5.3.1-9.el5.i386.rpm v Rpm –ivh wireshark-0.99.6-1.el5.i386.rpm v Rpm –ivh wireshark-gnome-0.99.6-1.el5.i386.rpm (以上4个RPM包都在RHEL5安装盘的servers目录下)

3、启动

#Wireshark

四、tftp服务器

在嵌入式开发过程中有宿主机和目标机的角 {MOD}之分:宿主机是执行编译、链接嵌入式软件的计算机;目标机是运行嵌入式软件的硬件平台。Tftp服务器作为工作于宿主机上的软件,主要提供对目标机的主要映像文件的下载工作。

1、安装

A、如果利用如下命令能够看到服务已启动则不用安装 [arm@localhost]# netstat -a | grep tftp 已安装结果: udp 0 0 *:tftp *:* B.、如果没有安装,执行如下命令安装。 #mount –t iso9660 /dev/hdc /mnt/cdrom    //挂载光盘 [root@localhost]# rpm -ivh tftp-server-0.42-3.1.i386.rpm(rhel5安装光盘Servers目录) C、建立tftp的主工作目录 [root@localhost btools]# mkdir /tftpboot

2、服务器配置

不管使用的是哪一种super-server,inetd或者xinetd,默认情况下TFTP服务是禁用的,所以要修改文件来开启服务。即修改文件/etc/xinetd.d/tftp。主要是设置TFTP服务器的根目录,开启服务。 修改后的文件如下: service tftp{ ………………………… socket_type = dgram …… …… …… server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = no …… …… …… }

3、创建tftp根目录,关闭防火墙,启动tftp-server

#mkdir /home/app #chmod o+w       /home/app #/etc/init.d/iptables stop        //关闭防火墙 #service xinetd restart          //重启 xinetd 服务 重启xinetd服务,因为TFTP服务受控与xinetd, xinetd是管服务的服务,它是不开端口的。 验证一下TFTP是否起来了: # netstat -nlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:32768 0.0.0.0:* LISTEN 3122/rpc.statd tcp 0 0 127.0.0.1:32781 0.0.0.0:* LISTEN 4035/xinetd tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 3103/portmap tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3324/httpd tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3255/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 3213/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 3295/sendmail: acce tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 3415/0 tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 3324/httpd udp 0 0 0.0.0.0:32768 0.0.0.0:* 3122/rpc.statd udp 0 0 0.0.0.0:69 0.0.0.0:* 4035/xinetd   ; 可以看到69端口已经打开 udp 0 0 0.0.0.0:69 0.0.0.0:* 4012/in.tftpd udp 0 0 0.0.0.0:111 0.0.0.0:* 3103/portmap udp 0 0 0.0.0.0:754 0.0.0.0:* 3122/rpc.statd udp 0 0 0.0.0.0:631 0.0.0.0:* 3213/cupsd 这样,tftp-server就启动了。 你可以登陆本机测试以下,命令如下: #tftp     your-ip-address tftp>get  tftp>put  tftp>q #