您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 第5章 Linux文件系统
1第5章Linux文件系统本章学习目标:理解什么是文件系统了解文件系统工作原理理解FedoraCoreLinux文件系统的结构和组成掌握FedoraCoreLinux文件的类型、权限和修改方法掌握如何安装、卸载文件系统了解如何进行ext2和ext3的文件系统转换理解交换分区和交换文件2文件系统概述文件系统负责管理文件和逻辑文件,提供管理设备、屏蔽设备复杂性的手段,为系统内核其他部分、用户命令和系统函数调用提供统一的服务接口。35.1文件系统工作原理文件系统通过为每个文件分配文件块的方式把数据存储在存储设备中,这样就要维护每一个文件所有文件块的分配信息,而分配信息本身也要存储在磁盘上。有两种常用的文件系统分配策略:块分配(blockallocation)和扩展分配(extentallocation)。45.2文件系统和目录结构文件系统(filesystem)表示存储在计算机上的文件和目录的数据结构。文件系统也可以用于存储文件的分区或磁盘。文件系统可以有不同的格式,叫做文件系统类型(filesystemtypes)。5各种各样的文件系统WindowsFAT16,FAT32,NTFS传统UNIX:UFS(UnixFileSystem)BSD文件系统FFS(FastFileSystem)LinuxFileSystem–ext2(isfirstintroducedinkernel2.0.x)–reiserfs(isfirstintroducedinkernel2.2.x)–ext3(isfirstintroducedinkernel2.4.x,defaultinRedHatnow)–xfs(fromSGI)–Jfs(fromIBM)6虚拟文件系统•Linux在传统的逻辑文件系统的基础上,增加了一个称为虚拟文件系统(VFS)的接口层.•在Linux系统中,分区可以安装不同的逻辑文件系统,系统可同时使用这些文件系统,它们•虚拟文件系统(VFS)位于Linux整个文件系统的最上层,提供文件系统对用户命令、系统调用的接口。•虚拟文件系统(VFS)只存在于内存中,并没有真正存在于磁盘分区中。75.2.1文件系统简介•文件结构示意图8当前目录:系统在运行中通过使用命令或系统调用进入任何一层目录,这时系统所处的目录称为当前目录。Linux使用两种方法来表示文件或目录的位置,绝对路径和相对路径.绝对路径是从根目录开始依次指出各层目录的名字,它们之间用/分隔,如/usr/include.相对路径是从当前目录开始,指定其下层各个文件及目录的方法,如系统当前目录为/usr,bin/cc.9每个目录的前两个目录始终是标准的“.”和“..”,它们分别代表目录自身和父目录(上一级目录)例:读取/home/mengqc/m1.c文件过程103.Linux系统的目录结构115.2.2ext2文件系统1.ext2文件系统的物理结构文件是存储在块设备上的。在块设备中文件的组织和管理是以物理块为单位的。物理块是块设备上划分的大小相同的存储区域,如磁盘的扇区。当文件存储在块设备上时也被划分成与物理块大小相等的逻辑块。文件在存储设备中是由一系列的逻辑块序列组成的。12EXT2文件系统把所使用的逻辑分区划分成块组(BlockGroup),并依次编号。通常包括引导块(bootblock)、超级块(superblock)、i节点区和数据区。每个块组中包含若干数据块,数据块中就是目录或文件内容。2.块组的构造13块组中包含着几个用于管理和控制的信息块:超级块,组描述符表,块位图,inode位图和inode表14引导块在磁盘分区的头部,一般占用一个扇区,用来存放引导程序。启动完成后,引导块不再使用,因此引导块在系统实际运行过程中不属于文件系统管理。15Ext2文件系统主要数据结构•超级块用来描述目录和文件在物理设备上的静态分配情况,随着系统文件操作,超级块的内容也在改变。在Linux中,EXT2超级块定义为ext2_super_block结构,ext2_super_block结构是超级块在磁盘中的形态。•在系统运行期间磁盘上的超级块要读入到内存,在内存建立一个超级块的映像。内存中的超级块映像定义为ext2_sb_info结构,16•组描述符组描述符表的每个表项是一个组描述符.组描述符是一个ext2_group_desc结构,用来描述一个块组的有关信息,定义在/include/linux/ext2_fs.h中:•structext2_group_desc{__u32bg_block_bitmap;/*本组中块位图的位置*/__u32bg_inode_bitmap;/*本组中inode位图的位置*/__u32bg_inode_table;/*本组中inode表的位*/__u16bg_free_blocks_count;/*本组中空闲块数*/__u16bg_free_inodes_count;/*本组中空闲inode数*/__u16bg_used_dirs_count;/*本组中所含目录数*/__u16bg_pad;/*填充*/__u32bg_reserved[3];/*保留*/};17在EXT2文件系统中所有文件都采用i节点(inode)来描述,每一个文件、目录或者设备都对应于一个且只能对应于一个i节点。每一个i节点包含两个部分的基本参数:文件说明信息;索引表根据存放位置,分为磁盘i节点、内存i节点。分别使用数据结构ext2_inode和ext2_inode_info来描述。实质上是一个由系统管理的目录项.EXT2文件系统inode结构18索引节点结构示意图多重索引结构19Ext2文件系统物理块的大小可以是1024、2048或者4096字节,在初始化文件系统的时候由用户指定,默认值是1KB(1024字节),块地址占4字节(32位),因此每个物理块可以存放256个块的地址。则存放文件大小为:一次间接:1024/4=256个地址256*1k=256k二次间接:256k/4=64k个地址64k*1k=64M三次间接:64M/4=16M16M*1k=16G205.ext2中的目录项每个文件对应一个inode,它们有唯一的编号,称为inode号.Linux的目录项只由两部分组成:文件名和inode号.21位示图•每个块组包含一个块位示图和一个索引节点位示图。利用一串二进制位分别反映反映数据块组中数据块和索引节点的分配情况。例:设数据块2、3、4、5、8空闲10000110225.2.3ext3文件系统•ext3文件系统的优点四个方面:1.可用性2.数据完整性3.速度4.易于迁移5.ext3还具有的优点235.2.5文件系统的转换1.从ext2文件系统转换成ext3文件系统•卸载/back目录umount/backumount系统管理命令。卸载一个文件系统。•转换/sbin/tune2fs–jpartition-nametune2fs系统管理命令。调整扩展文件系统参数。24•安装/back目录mount–text3/dev/hda5/backmount安装一个文件系统。•修改/etc/fstab文件umount/back255.2.5文件系统的转换2.还原ext3文件系统umount/dev/hdbx/sbin/tune2fs–0^has_journal/dev/hdb2/sbin/e2fsck–y/dev/hdb1tune2fs系统管理命令。调整扩展文件系统参数。26mount–text2/dev/hdb1/mount/pointmount安装一个文件系统。•删除根目录下的.journal文件rm–f.journal275.2.6安装和卸载文件系统Linux系统在使用光盘、软盘或U盘时,先执行挂载(mount)命令。挂载命令可将存储介质指定成系统中的某个目录,直接访问相应目录即可读写存储介质上的数据。281、mount加载文件系统mountdevicedir主要参数:-h显示辅助信息-v显示信息,通常和-f一起用来排除错误;-a将/etc/fstab中定义的所有文件系统挂载上;-f通常用于除错,会使mount不执行实际挂载动作,而是模拟过程。-tvfstype显示加载文件系统的类型。292.Linux可以识别的文件系统Linux可识别的文件系统:Windows95/98常用FAT32文件系统:vfat;WinNT/2000的文件系统:ntfs;OS/2使用的文件系统:hpfs;Linux本身所使用的ext2、ext3文件系统;CD-ROM光盘使用的文件系统:iso9660304、查找挂接点•在决定将设备挂接之前,先查看是否由/mnt空目录,该目录专门用来当作挂载点的目录。315.umount卸载一个文件系统•umount命令主要用于卸载一个文体系统。它的使用权限是超级用户或/etc/fstab中允许的使用者。umountdevicedir其参数使用方法于mount命令相同。325.3Linux的文件系统•文件类型普通文件目录文件字符设备文件块设备文件335.3Linux的文件系统扩展名文件类型简介扩展名文件类型简介.bz2使用bzip2压缩的文件.xpm图像文件.gz使用gzip压缩的文件.conf配置文件,有时也使用.cfg.tar使用tar压缩的文件,又称tar文件.rpmRedHat用来安装软件的软件包管理器文件.tbz用tar和bzip压缩的文件.cC语言的源码文件.tgz用tar和gzip压缩的文件.tclTCL脚本.zip使用ZIP压缩的文件,在MS-DOS应用程序中常见.pdf文档的电子映像,PDF代表可移植文档格式34.au音频文件.cppC++程序语言的源码文件.gifGIF图像文件.hC或C++程序语言的头文件.html/.htmHTML文件.o程序的对象文件.jpgJPEG图像文件.plPerl脚本.pngPNG图像文件,可移植网络图形.pyPython脚本.psPostScript文件,为打印而格式化过的文件.lock锁(lock)文件,用来判定程序或设备是否正在被使用.txt纯ASCII文本文件.so库文件.wav音频文件.shshell脚本35设备名说明hdIDE硬盘驱动器sdSCSI硬盘驱动器fd软盘驱动器srSCSICD-ROM驱动器tty终端lp打印机端口pty伪装备(远程登录时使用)ttyS串行口cua呼出设备(COM串行口)modem连接调制解调器的文件cdrom连接CD-ROM的文件设备名前缀365.3.2文件权限简介文件类型文件权限链接个数文件属主名用户分组名文件长度上次修改时间文件名Drwxr-x---2lisuper2037Dec2804:09tmp·rw-r—r--1lisuper102Dec2102:32foo·rwxr-xr-x1lisuper717Sep104:12everfile375.4.1交换文件和交换分区1、交换的作用在系统运行中,如果进程需要把一个虚拟页面调入内存时,而正好系统中没有空闲的物理页面,则操作系统必须丢弃位于物理内存中的某些页面为之腾出空间。丢弃的页如果被修改过,则必须保存以备再次访问,保存在叫作交换文件的特殊文件中。385.4.1交换文件和交换分区2、交换文件与交换分区优缺点交换文件和交换分区的作用实际上等同于Windows中的虚拟内存。交换文件缺点:单个文件的空间可能不连续,与用户文件同在一个文件系统有可能会造成破坏。交换分区优点:与用户文件分开;磁盘空间连续;交换分区磁盘空间比交换文件大。395.4.2添加交换分区假设在/dev/hdb2上添加交换分区1.关闭硬盘上的交换空间swapoff/dev/hdb22.要使用parted来创建交换分区:◇Parted/dev/hdb◇在(parted)提示下,输入print命令查看现存分区和空闲空间的数量,◇mkpartfspart-typelinux-swapstartend◇确认后quit退出。3.使用mkswap设
本文标题:第5章 Linux文件系统
链接地址:https://www.777doc.com/doc-3379901 .html