整理自《鸟哥的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. 【QT相关】对话框相关

    为行编辑器限制规则: QRegExp regExp("[A-Za-z][1-9][0-9]{0,2}"); lineEdit->setValidator(new QRegEx ...

  2. Cesium 获取当前视图范围

    Cesium作为一个开源的WebGlobe解决方案已经很牛了,不过因为开发的资料不多,很多功能不知道怎么实现.下面记录下自己获取Cesium当前场景范围的方法(2维中对应的是extent). exte ...

  3. IE6多出一只猪的经典bug

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. Hdu 1158 Employment Planning(DP)

    Problem地址:http://acm.hdu.edu.cn/showproblem.php?pid=1158 一道dp题,或许是我对dp的理解的还不够,看了题解才做出来,要加油了. 只能先上代码了 ...

  5. UVA 10020 Minimal coverage(贪心 + 区间覆盖问题)

     Minimal coverage  The Problem Given several segments of line (int the X axis) with coordinates [Li, ...

  6. BZOJ 2212: [Poi2011]Tree Rotations( 线段树 )

    线段树的合并..对于一个点x, 我们只需考虑是否需要交换左右儿子, 递归处理左右儿子. #include<bits/stdc++.h> using namespace std; #defi ...

  7. ZOJ 3483 简单if-else

    提醒:答案要约分,不然会错! #include<iostream> #include<cstdio> #include<cstring> #include<a ...

  8. 在MAC系统里添加开机启动任务(但是怎么才能知道自己程序的固定位置呢?)

    公司最近购进了几台MAC台式电脑,要在上面为一个项目做测试. MAC这么高大上的东西,还是第一次接触,折腾了半天好不容易安装了一些需要的应用服务上去,跑了一下还不错. 公司提倡节约用电,下班之后要把所 ...

  9. AlphaMobileControls介绍

    大家在开发wince程序或者windows mobile程序时还在为丑陋的界面着急吗?AlphaMobileControls可以帮你解决这些方案.当然如果你是高手可以自己去实现一些特殊的功能,自己定义 ...

  10. RESTful最佳实践之基于 jersey 的增删改查

    jersey-rest-demo 增删改查 项目地址:https://github.com/CoderDream/jersey-rest-demo 源代码:http://download.csdn.n ...