第9节-Linux认识文件系统(Ext2)

来源:互联网 发布:js array键值对 编辑:程序博客网 时间:2024/06/05 11:40

认识EXT2文件系统

Linux最传统的磁盘文件系统(filesystem)使用的是EXT2格式为什么需要分文件系统格式:    每种操作系统使用的文件系统格式都不一样    如:windows98 使用 FAT或FAT16       windows2000 使用 NTFS       Linux则使用Ext2(Linux second extended file system, ext2fs)    注意:windows操作系统不能识别Linux的Ext2文件系统。Linux除了ext2格式,还有其他新的技术如LVM、磁盘阵列(software raid)

文件系统分两部份的数据    权限与属性放置到 inode 中    实际数据则放置到 data block 区块中    另外,还有一个超级区块 (superblock) 会记录整个文件系统的整体信息,包括 inode 与 block 的总量、使用量、剩余量等。

*Linux的EXT2文件系统(inode)    Ext2 文件系统在格式化是区分多个区块群组(block group)        1.文件系统最前面是启动扇区(boot sector),安装启动管理程序        2.启动扇区之后跟着一组组的区块群组(block group)        3.每个区块群组又分为六块储存信息:            *Superblock、            *文件系统描述、            *区块对应表、            *inode对应表、            *inode table、            *data block

    *data block(数据区块)        数据区块存放文件内容数据,Ext2文件系统中支持block大小为1K,2K和4K三种,在格式化时block的大小就固定了            block的的大小差异,会影响文件系统能支持最大磁盘容量和最大单一文件容量,如下:
Block 大小 1KB 2KB 2KB 最大单一文件限制 16GB 256GB 2TB 最大文件系统总容量 2TB 8TB 16TB
    Ext2文件系统的block基本限制如下:        原则上,block 的大小与数量在格式化完就不能够再改变了(除非重新格式化);        每个 block 内最多只能够放置一个文件的数据;        承上,如果文件大于 block 的大小,则一个文件会占用多个 block 数量;        承上,若文件小于 block ,则该 block 的剩余容量就不能够再被使用了(磁盘空间会浪费)。    *inode table(inode表格)        inode记录的文件数据内容:            -该文件的存取模式(read/write/excute);            -该文件的拥有者与群组(owner/group);            -该文件的容量;            -该文件创建或状态改变的时间(ctime);            -最近一次的读取时间(atime);            -最近修改的时间(mtime);            -定义文件特性的旗标(flag),如 SetUID...;            -该文件真正内容的指向 (pointer);        inode 的数量与大小也是在格式化时就已经固定了,除此之外还有一下特点:            1.每个 inode 大小均固定为 128 bytes;            2.每个文件都仅会占用一个 inode 而已;            3.承上,因此文件系统能够创建的文件数量与 inode 的数量有关;            4.系统读取文件时需要先找到 inode,并分析 inode 所            5.记录的权限与用户是否符合,若符合才能够开始实际读取 block 的内容。    *Superblock(超级区块)        Superblock 是记录整个 filesystem 相关信息的地方, 没有 Superblock ,就没有这个 filesystem 了。        主要记录信息:            1.block 与 inode 的总量;            2.未使用与已使用的 inode / block 数量;            3.block 与 inode 的大小 (block 为 1, 2, 4K,inode 为 128 bytes);            4.filesystem 的挂载时间、最近一次写入数据的时间、最近一次检验磁盘 (fsck) 的时间等文件系统的相关信息;            5.一个 valid bit 数值,若此文件系统已被挂载,则 valid bit 为 0 ,若未被挂载,则 valid bit 为 1 。    *Filesystem Description(文件系统描述说明)        这个区段可以描述每个 block group 的开始与结束的 block 号码,以及说明每个区段 (superblock, bitmap, inodemap, data block) 分别介于哪一个 block 号码之间。这部份也能够用 dumpe2fs 来观察的。    *block bitmap (区块对照表)        block bitmap时专门记录 未使用 的block,当需要使用时候可以快速找到空的block来使用;当友文件删除时,也会将该block标记为空    *inode bitmap (inode 对照表)        这个其实与 block bitmap 是类似的功能,只是 block bitmap 记录的是使用与未使用的 block 号码, 至于 inode bitmap 则是记录使用与未使用的 inode 号码

dumpe2fs每个区段与 superblock 的信息都可以使用 dumpe2fs 这个命令来查询方法:dumpe2fs [-bh] 装置文件名选项与参数:    -b :列出保留为坏轨的部分(一般用不到吧!?)    -h :仅列出 superblock 的数据,不会列出其他的区段内容!如:    [root@node1 ~]# dumpe2fs /dev/hdc2