整理自《鸟哥的Linux私房菜》,整理者:华科小涛http://www.cnblogs.com/hust-ghtao/

EXT2/EXT3文件系统(一)

 

2.3 Superblock(超级块)

    这是记录整个文件系统相关信息的地方,没有Superblock,就没有这个文件系统了。它记录的文件信息主要有:

  • block与inode的总量;
  • 未使用与已使用的inode/block数量;
  • block与inode的大小(block为1K,2K,4K,inode为128bytes);
  • 文件系统的挂载时间、最近一次写入数据的时间、最近一次检验磁盘的时间等文件系统的相关信息;
  • 一个validbit数值,若文件系统已被挂载,validbit=0,;未被挂载validbit=1;

 

2.4 File system Description(文件系统描述说明)

    这个区段可以描述每个block group的开始与结束的block号码,以及说明每个区段分别介于哪一个block号码之间。

 

2.5 block bitmap(块对照表)

    从block bitmap中可以知道哪些block是空的,因此我们可以很快的找到可以使用的空间来处置文件;如果要删除某些文件,哪些文件原本占用的block号码要释放出来,此时在block bitmap中相对应于该block号码的标志就要改成“未使用”。

 

2.6 inode bitmap(inode对照表)

    和block bitmap功能相似,只是记录的是inode的使用情况。

 

3.文件系统与目录树的关系

    让我们看看目录与文件在EXT2文件系统当中,是如何记录数据的:

3.1 目录

    当我们在Linux下的EXT2文件系统新建一个目录时,ext2会分配一个inode与至少一个block给该目录。其中,inode记录该目录的相关权限与属性,并可以记录分配到的那块block号码;而block则是记录在这个目录下的文件名与该文件占用的inode号码数据。

 

3.2 文件

    当我们在Linux下的ext2创建一个一般文件时,ext2会分配一个inode与相对于该文件大小的block数量给该文件。inode记录该文件的相关权限与属性,并可以记录分配到的那块block号码;而block则是记录文件的实际内容。

 

4.目录树读取

    经过上面的说明我们可以知道inode本身并不记录文件名,文件名的记录是在目录的block中。因此当我们要读取某个文件时,就务必会经过目录的inode和block,然后才能够找到那个待读取文件的inode号码,最终才会读到正确的文件的block内的数据。由于目录树是由根目录开始读起,因此系统通过挂载的信息,可以找到挂载点的inode号码,此时就能够得到根目录的inode内容,并依据该这个inode读取根目录的block内的文件数据名,在一层一层的往下读到正确的文件。

EXT2/EXT3文件系统(二)的更多相关文章

  1. 87 resize2fs-增大或者收缩未加载的“ext2/ext3”文件系统的大小

    resize2fs命令被用来增大或者收缩未加载的"ext2/ext3"文件系统的大小.如果文件系统是处于mount状态下,那么它只能做到扩容,前提条件是内核支持在线resize., ...

  2. 81 dumpe2fs-打印“ext2/ext3”文件系统的超级块和快组信息

    dumpe2fs打印"ext2/ext3"文件系统的超级块和快组信息. 语法 dumpe2fs (选项) (参数) 选项 -b:打印文件系统中预留的块信息: -ob<超级块& ...

  3. Linux ext2/ext3文件系统详解

    转载: Linux ext2/ext3文件系统使用索引节点来记录文件信息,作用像windows的文件分配表.索引节点是一个结构,它包含了一个文件的长度.创建及修改时间.权限.所属关系.磁盘中的位置等信 ...

  4. EXT2/EXT3文件系统(一)

    整理自<鸟哥的Linux私房菜>,整理者:华科小涛http://www.cnblogs.com/hust-ghtao/ 1.文件系统概念引入 文件系统是一种存储和组织计算机数据的方法,它使 ...

  5. ext3文件系统基础

    http://blog.csdn.net/haiross/article/category/1488205/2   block size: 是文件系统最小的单位,Ext2/Ext3/Ext4 的区块大 ...

  6. Linux文件系统Ext2,Ext3,Ext4性能大比拼

    Linux kernel 自 2.6.28 开始正式支持新的文件系统 Ext4. Ext4 是 Ext3 的改进版,修改了 Ext3 中部分重要的数据结构,而不仅仅像 Ext3 对 Ext2 那样,只 ...

  7. 漫谈Linux标准的文件系统(Ext2/Ext3/Ext4)

    Ext 全称Linux extended file system, extfs,即Linux扩展文件系统,Ext2就代表第二代文件扩展系统,Ext3/Ext4以此类推,它们都是Ext2的升级版,只不过 ...

  8. 深入理解Linux内核-Ext2和Ext3文件系统

    Ext2的一般特征: 1.创建Ext2文件系统时,系统管理员可以根据预期的文件平均长度来选择最佳块大小(从1024B-4096B).来减少文件碎片2.创建Ext2文件系统时,系统管理员可以根据在给定大 ...

  9. 在Linux环境中使用Ext3文件系统

      Linux缺省情况下使用的文件系统为Ext2,ext2文件系统的确高效稳定.但是,随着Linux系统在关键业务中的应用,Linux文件系统的弱点也渐渐显露出来了:其中系统缺省使用的ext2文件系统 ...

随机推荐

  1. linux命令sysctl使用

    以前没有注意过这个命令,直到有次在单位安装greenplum的时候,在没有配置系统参数的情况下,出现了设备空间不足的报错信息. 当然,安装的不是我的本机,而是公用的服务器,编辑修改系统参数后,仍然出现 ...

  2. Android 开发 AirPlay Server

    安卓上开发  AirPlay Server  主要是参考了和修改了 DroidAirPlay项目 , 和Airplay 协议 1, 将DroidAirPlay 下载下来 2, Eclipse 新建一个 ...

  3. vim的漫漫长征路

    在系统的学习vim之前,先在网上找了些教程大概了解下,因为首先我们要先将vim给用起来,然后在系统的学习过程中不断的充实自己对vim的理解. ----------------------------- ...

  4. Kruscal 、 Prime Template

    Kruscal  Template : 很裸的Kruscal Template(求最小生成树中最长路,即最短路中最长路) //#pragma comment(linker, "/STACK: ...

  5. make报错:"/usr/bin/ld: cannot find -lXXX"

    在编译php时报错如下: # make ... /usr/bin/ld: cannot find -lltdlcollect2: ld returned 1 exit statusmake: *** ...

  6. Android基础【1】杀死进程(强行停止)应用程序的方法

    写在前面: 进入手机ODM已经很久,经历过几个项目项目下来,对高通.展讯.Marvell平台都进行了接触,对于我个人来说,参与手机系统项目的开发与维护,最明显的好处是可以深入的了解某一功能的具体实现过 ...

  7. e-mail Web端管理

    邮件是和上海的一家微软的代理商合作的,管理很方便,但是目前感觉他家的邮件过滤机制有问题.

  8. iconv 文件编码转换

    iconv 文件编码转换 http://www.cnblogs.com/xuxm2007/archive/2010/11/09/1872379.html 查看iconv的支持的编码: $ iconv  ...

  9. 我的Python成长之路---第一天---Python基础(作业2:三级菜单)---2015年12月26日(雾霾)

    作业二:三级菜单 三级菜单 可一次进入各个子菜单 思路: 这个题看似不难,难点在于三层循环的嵌套,我的思路就是通过flag的真假来控制每一层的循环的,简单来说就是就是通过给每一层循环一个单独的布尔变量 ...

  10. ZOJ 3609 求逆元

    Modular Inverse Time Limit: 2 Seconds      Memory Limit: 65536 KB The modular modular multiplicative ...