第八章磁盘与文件管理8.1磁盘和磁盘分区磁盘简介通常所说的磁盘有软盘、光盘和硬盘,这里主要介绍硬盘。1.IDE接口IntegratedDriveElectronics,集成磁盘电子接口,是台式机最为常用的硬盘接口,通常为40针接口规格。其优点是安装方便,缺点是不支持热插拔,速度较慢。IDE控制卡可支持两个硬盘,硬盘上有Master/Slave的具体使用方法,接口卡无需另配驱动程序,所有IDE硬盘均能由系统BIOS利用保存在CMOS中的硬盘参数直接驱动。2.SCSI接口smallcomputersysteminterface,小型机接口的简称,这种接口的速度快,支持热插拔,主要面向网络市场,价格高些,但是性能稳定,可靠性好。SCSI接口除用于磁盘外,还用于光盘驱动器、磁带机、扫描仪、打印机等设备。一条SCSI总线最多可以连接8台设备,适用于多用户多任务处理。其数据传输率较高。8.1磁盘和磁盘分区磁盘分区1.Linux分区和windows分区不同的是,运行Linux至少要有Linuxswap交换分区和Linux主分区两个分区。主分区用来存放Linux常用文件。交换分区在运行时提供虚拟内存。在Linux中可以物理上存在几个分区,但在逻辑上只有一个根分区。Linux分区与windows分区的异同主要有以下3点:(1)windows使用盘符来表示不同的分区,但Linux使用分区的设备名来标识不同的分区;例如:第一块IDE接口硬盘的第1个分区称为/dev/hda1;第二块SCSI接口硬盘的第5个分区称为/dev/sdb5(2)分区数字编号1~4留给主分区或扩展分区使用,逻辑分区编号从5开始(3)安装windows只使用一个分区,而安装Linux系统至少需要两个分区,其中一个是交换分区。2.磁盘存储方式磁盘存储方式1.基本磁盘存储:在基本磁盘上存储数据需要在磁盘上创建主分区和扩展分区,在扩展分区上再创建逻辑逻辑分区,然后对这些分区进行管理。2.动态磁盘存储:在动态磁盘上存储数据需要在磁盘上创建动态卷,然后对这些卷进行管理。3.磁盘分区命令-fdisk格式:#fdisk设备名例如:#fdisk/dev/sdb其子命令有很多,如:a调整硬盘的启动分区m列出所有命令d删除一个硬盘分区n创建一个新的分区l列出所有支持的分区类型p列出硬盘分区表q退出fdisk,不保存更改t更改分区类型8.2Linux文件系统一、linux的文件系统1.文件系统与操作系统的关系文件系统是操作系统中与文件管理有关的所有软件和数据的集合。Linux的内核采用了称为虚拟文件系统(VFS)的技术,因此Linux可以支持多种不同的文件系统类型,每一种类型的文件系统都提供一个公共的软件接口给VFS.其所有细节由软件进行转换,因此在Linux看来,其所有的文件系统没有什么区别。2.文件系统与用户的关系文件系统是所有的文件和目录的集合,这些文件和目录是以一个树状的结构来组织的。文件中的各种目录和文件从树根向下分支。虚拟文件系统系统中所有的设备,包括字符设备、块设备和网络设备,都按照某种方式由逻辑文件系统统一管理,逻辑文件系统为它们提供访问接口。虚拟文件系统在最上层,管理各种逻辑文件系统,屏蔽了它们之间的差异,为用户命令、函数调用和内核其他部分提供访问文件和设备的统一接口,使得不同的逻辑文件系统按照同样的模式呈现在使用者面前,对于普通用户来讲,觉察不到逻辑文件系统之间的差异,可以使用同样的命令来操作不同逻辑文件系统所管理的文件,可以在它们之间自由地复制文件。虚拟文件系统层次结构linux的文件系统3.文件系统的管理Linux文件系统管理的最上层模块是文件系统。系统启动时,必须装入“根”文件系统,然后根据/etc/fstab(表文件),逐个建立文件系统,此外用户也可以通过mount,umount操作,随时挂装和卸载文件系统。通过挂载操作将其置于某个目录下,从而让不同的文件系统结合成为一个整体,可以方便地和其他操作系统共享数据。4.Linux文件系统的标准其标准于1994年完成,简称FSSTND5.Linux文件系统的组成Linux文件系统由一些目录和文件组成,这些文件和目录是以树状的目录结构来组织的,这个树状的目录结构构成了Linux的文件系统,根据安装的方式不同,这些目录可能是不同的文件系统,通常一个系统可以由多个文件系统组成:根分区文件系统(/)和安装在/usr下的文件系统,还有其他安装在/home和/var下的文件系统。其中根文件系统必须是linuxext2/ext3.最简单的Linux操作系统分区是根(/)分区和交换分区(swap).根目录中包含了组成根目录的内容,也为其他的文件系统提供了安装点。Linux文件系统组成子目录名内容说明bin存放二进制的可执行文件boot存放用于系统引导时使用的各种文件dev用于存放设备文件,用户可以通过这些文件访问外部设备etc存放系统的配置文件home存放所有用户文件的根目录,一个用户就有一个在该目录下与用户名对应的子目录,当用户登录时就进入其用户名对应的子目录lib存放根文件系统中的程序运行所需要的共享库及内核模块mnt系统管理员安装临时文件系统的安装点proc一个虚拟文件系统,它存放当前内存的映射root超级用户目录sbin类似/bin目录,也存放二进制可执行文件,但只有root才能访问tmp存放各种临时文件usr用于存放系统应用程序var存放需要随时改变的文件,如系统日志、脱机工作目录等文件系统组成对于初学者来说,应该熟悉常用的特定文件的存放位置:常用的命令所在目录有:/bin,/sbin,/usr/sbin,/usr/bin.系统常用的挂载点有:/mnt/crom,/mnt/floppy.二、文件系统类型Linux常用的文件类型:1.ext2与ext3ext文件系统(包括ext,ext2,ext3)是Linux中自带的文件系统类型,ext2文件系统是linux原有使用的ext文件系统的后续版本。在早期的版本中一直使用ext2作为操作系统默认的文件系统。目前最常用的是ext3文件系统,是在ext2基础上发展来的,具有很多的优点,最重要的是它是一种带有日志功能的文件系统,它会将整个磁盘的写入动作完整记录在磁盘的某个区域上,以便有需要时可以回溯追踪。2.Swapswap文件系统在Linux中作为交换分区使用,安装linux时,交换分区是必须建立的,并且其类型一定是swap,由操作系统自动管理,用户不需要对其进行过多的操作。3.Vfat在linux中把DOS下的所有FAT文件系统称为vfat,其中包含FAT12,FAT16和FAT32.RedHatLinux9中既可以使用同系统中已存在的FAT分区,也可以建立新的分区。4.NFSNFS即网络操作系统,用于unix系统间通过网络进行文件共享,用户可以把网络中的NFS服务器提供的共享目录挂载到本地文件目录中,可以像对本地文件系统一样操作NFS文件系统中的内容。5.iso9660iso9660是光盘所使用的标准文件系统,在linux中对光盘有非常好的支持,不仅可以读取光盘中的文件,还可以在Linux环境下进行光盘的刻录。三、使用文件系统的一般方法一般要遵循如下的过程1.在磁盘上创建分区,使用fdisk命令进行2.在分区上建立文件系统:类似于在windows下进行格式化3.挂载文件系统到系统中:在分区中创建好文件系统后就可以将该分区挂载到系统中相应目录中以便使用(使用mount命令),如果需要每次启动时都自动挂载该文件系统,则需要在文件“/etc/fstab”中添加相应的设置行。4.卸载文件系统:对于可移动介质上的文件系统,当使用完毕需要使用umount命令实施卸载操作。8.3文件系统的管理和维护一、文件系统操作1、创建文件系统磁盘在分区之后首先要创建文件系统,即格式化,才能在上面存储文件。在Linux下可以用mkfs来完成文件系统的创建工作,对于不同的文件系统类型,都有不同的程序,而mkfs只是一个前端命令。默认创建的文件系统类型是ext2。mkfs命令的格式是:#mkfs选项设备名例如:#mkfs–tvfat/dev/sdb1执行命令将在第二块scsi接口的硬盘的第一个分区创建vfat类型的文件系统。文件选项:-tfstype指定要创建的文件系统的类型-c查找坏块,初始化坏块列表2、将ext2文件系统转换为ext3文件系统如果系统上已经建好了ext2的文件系统并存放了数据,那么可以使用tune2fs命令将其安全地转换为ext3文件系统。例如:要将/dev/hda5(一个ext2文件系统)转换为ext3文件系统,需要执行以下的步骤:(1)执行如下命令:#tune2fs–j/dev/hda5(2)修改系统挂载表:将/etc/fstab中的/dev/hda5相应的配置文件系统类型的配置由ext2改为ext3.二、维护文件系统的卷标1.显示或设置指定文件系统的卷标使用e2label命令可以显示或设置指定文件系统的卷标:#e2label设备文件名[新的卷标名]例如:#e2label/dev/sdb1ok执行该命令后,将“/dev/sdb1”的卷标设置为ok2、查找指定卷标的文件系统使用finds命令可以在系统中查找对应的文件系统,其命令格式为:#findfsLABEL=文件系统卷标例如:#findfsLABEL=ok三、挂载文件系统1、挂载文件系统在磁盘上创建文件系统后,还需要把新建立的文件系统挂载到系统上才能使用。挂载点是指分区在目录树的加载位置,这和windows中的概念是不一样的,在windows中程序安装在不同分区的文件夹里,而在linux中程序安装在不同的挂载点。在使用windows时可以有几个分区,而在linux中可以物理上存在几个分区,但在逻辑上只有一个根分区。交换分区是不需要挂载点的,其他所有设备安装都要有挂装点。Linux把所有设备都认为是文件。使用mount命令可以灵活地挂载系统可识别的所有文件系统。#mount执行该命令的结果可以列出当前系统中已经挂载的文件系统。Mount命令执行结果mount命令的格式格式:mount[选项][设备名][挂载点]mount命令的选项-t文件类型指定要挂载的文件系统类型,也可以用-tauto选项自动让系统判断-r以只读的方式挂载文件系统-w以可写的方式挂载文件系统-o用于设置各种挂载选项-a挂载/etc/fstab文件中记录的设备挂载点就是文件系统的一个目录,必须把新的文件系统挂载在目录树中的某个目录中,这个目录必须是空的,否则目录中原有的文件将被系统隐藏。挂载文件时应该注意的问题挂载点目录在实施挂载操作之前必须存在,如果不存在,就先要使用mkdir命令创建;如果当前目录是要挂载的目录,就不能进行挂载操作,需回到上级目录进行操作;不能在同一个挂载目录下挂载第二个文件系统,否则原来的文件系统被覆盖而无法使用。2.卸载文件系统文件系统可以被挂载,也可以被卸载,卸载文件系统的命令是umount,可以把文件系统从linux系统中的挂载点分离。#umount设备名或挂载点例如:#umount/dev/sdb1#umount/mnt/cdrom要卸载一个文件系统,可以指定要卸载的文件系统的目录名(挂装名)或设备名。8.4使用可移动的存储设备在linux系统下,软盘和光盘都被视为文件系统,因此使用软盘和光盘的方法与使用硬盘分区的方法一致,也需要使用mount和umount命令进行挂载和卸载。同时linux系统专门为可移动存储设备提供了挂载点,即系统的/mnt目录下的子目录。系统默认为光盘设置的挂载目录是“/mnt/cdrom”,设备文件名是”/dev/cdrom”;为软盘设置的挂载目录是“/mnt/floppy”,设备文件名是”/dev/fd0”.1.在Linux中使用软盘要使用软盘,可以使用如下命令:#mount–text3/dev/fd0/mnt/floppy或#mount/dev/fd0/mnt/