Linux最传统的磁盘文件系统(filesystem)使用的是ext2

1.ext2文件系统结构
ext2文件系统划分为多个块组,每个块组拥有独立的inode/block,一个文件系统只有一个Superblock。
如下图所示:

1)Boot Sector:启动扇区。
启动扇区可以安装引导装载程序,这样可以将不同的引导装载程序安装到不同的文件系统,
不用覆盖整块硬盘唯一的MBR,才能制作出多重引导的环境。

2)Data Block:存放文件内容。
ext2系统中block的大小有1KB,2KB,4KB三种,block大小由文件系统总容量决定,如下图所示:

每个block只能放一个文件的数据,若文件大小超过block,则占用多个;
若小于block,block剩余的空间也不能被其他文件使用。

3)Inode Table:存放文件属性和权限等。
inode存放的文件数据至少有:
文件的访问权限(rwx)
文件的所有者与组(ower/group)
文件的大小
文件创建和状态改变时间
最近一次读的时间
最近修改的时间
文件类型标识
文件指向的block号

inode的大小固定为128B
我们重点看一下最后一项,“文件指向的block号”
inode是通过12个直接指针,1个间接指针,1个双间接指针,1个三间接指针来指向block的。
如下所示:

12个直接指针:直接取得block号码
如果文件太大,就会使用间接指针,双间接指针,三间接指针来记录编号

4)Superblock:存放文件系统的基本信息。
一个文件系统只有一个Superblock,存放的信息有:
inode,block的总量
未使用和已使用的inode,block数量
inode,block的大小
文件系统挂载时间,最近写入数据时间,最近检查磁盘时间
validbit值,文件系统已挂载,则validbit为0,否则为1

5)File system Description(文件系统描述):每个块组的开始结束号码

6)block bitmap(block对照表):标识block是否使用
便于系统快速找到空间来处置文件

7)inode bitmap(inode对照表):标识inode是否使用
与block bitmap相似。

2.文件系统树型结构之间的关系
1)目录
新建一个目录时,ext2会分配一个inode和至少一块block给该目录。
inode记录目录权限和属性,以及分配的block号。
block记录目录下的文件名和文件名占用的inode号。

2)文件
新建一个文件时,ext2会分配一个inode和对应文件大小的N个block块给该文件。
inode和文件名会同时被记录在目录的block中,以便通过目录访问到该文件。
block存放文件内容。

3)文件查找
查找文件时,会先找到文件所在目录,目录的inode对应的block中,
存放着文件的名称和inode,找到文件名对应的inode,
然后找到文件inode对应的block,找到文件内容。

3.ext3文件系统
ext3是ext2的升级,加入了日志文件系统。

4.挂载文件系统
文件系统要挂载到目录树,才能使用。
文件系统与目录树结合的操作,称为挂载。
挂载点是目录,该目录为进入该文件系统的入口。

Linux ext2文件系统的更多相关文章

  1. linux ext2 文件系统学习

    Linux  ext2文件系统理解 硬盘组成: 硬盘由多个圆形硬盘片组成.按照硬盘片能够容纳的数据量分为单盘和多盘.硬盘的数据读取主要靠机械手臂上的磁头,在机械手臂上有多个磁头.机械手臂不动硬盘旋转一 ...

  2. Linux ext2文件系统之初步思考

    数据存放在磁盘中,磁盘最小存取单位sector(512Byte);文件系统中存储的最小单位是 块(Block),大小通常(1KB,2KB,4KB...), 一个block对应多个sector,因而可用 ...

  3. Linux EXT2 文件系统

    磁盘是用来储文件的,但是必须先把磁盘格式化为某种格式的文件系统,才能存储文件.文件系统的目的就是组织和管理磁盘中的文件.在 Linux 系统中,最长见的是 ext2 系列的文件系统.其早期版本为 ex ...

  4. Linux 下EXT2文件系统 —— 如何将蚂蚁和大象优雅的装进冰箱里

    这一阵子真是偷懒,无时无刻不和自己身体中的懒癌做斗争.最终我还是被打败了,星期天两天几乎都是荒废过去的,在空闲的时候实际上我内心也是有点焦虑的,不知道去怎么度过这时间.学习吧又不想学习,看电视娱乐吧也 ...

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

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

  6. 文件系统的特性,linux的EXT2文件系统【转】

    本文转载自:https://blog.csdn.net/tongyijia/article/details/52809281 先来提出三个概念: - superblock - inode - bloc ...

  7. Linux中ext2文件系统的结构

    1.ext2产生的历史 最早的Linux内核是从MINIX系统过渡发展而来的.Linux最早的文件系统就是MINIX文件系统.MINIX文件系统几乎到处都是bug,采用的是16bit偏移量,最大容量为 ...

  8. Linux磁盘管理——Ext2文件系统

    前言 通常而言,对于一块新磁盘我们不是直接使用,而是先分区,分区完毕后格式化,格式化后OS才能使用这个文件系统.分区可能会涉及到MBR和GPT问题.至于格式化和文件系统又有什么关系? 这里的格式化指的 ...

  9. Linux 文件系统及 ext2 文件系统

      linux 支持的文件系统类型 Ext2:     有点像 UNIX 文件系统.有 blocks,inodes,directories 的概念. Ext3:     Ext2 的加强版,添加了日志 ...

随机推荐

  1. fwrite错误

    使用fwrite出错 f:\dd\vctools\crt_bld\self_x86\crt\srt\write.cline:69expression:_osfile(fh)&FOPEN 使用w ...

  2. C语言快速排序

    复习快速排序,用C语言实现: #include <stdio.h> int quicksort(int begin, int end, int a[], int len); void ma ...

  3. 配置VS2010具有代码提示功能

    Visual Assist X是一款非常好的Microsoft Visual Studio插件,可以支持Microsoft Visual Studio 2003,Microsoft Visual St ...

  4. N的阶乘的长度

    阶乘是乘法 , 乘法的话 , 几位数*几位数的位数 就是 哪两个几位数相加 .  这个可以用log10来解决 , 所以有如下代码 . #include<stdio.h> #include& ...

  5. phpstorm-file watcher

    在项目中使用了sass,将scss编译成css的时候,每次都需要compass watch netbeans产品带有file watcher功能 三大类 1,less,scss,sass into c ...

  6. Java 集合深入理解(14):Map 概述

    点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 终于把 List 常用的几种容器介绍完了,接下来开始 Map 的相关介绍. 什么是 Map Java 中的 Map 接口 ...

  7. magento和discuz(ucenter)整合集成开发思路

    discuz自带ucenter,主要就是用于和其他程序的通信.我们可以下载discuz的ucenter开发手册进行magento和discuz的集成.里面有一些ucenter的一些接口函数和参数说明, ...

  8. excel表里的数据导入到数据库里

    采用的是jxl,所以需要导jxl-2.4.2.jar的jar包.(前提知道excel表的目录): //用log记录异常信息 private static final Logger log = Logg ...

  9. cannot find -lgcc_s

    在64位centos6上编译32位的汇编程序,如果程序中使用了C库,比如printf.因为是编译32位的目标程序,所以使用gcc编译的时候需要加上-m32选项,但是如果编译的话会报错,以print.s ...

  10. 【Better Code】repeat

    <JavaScript 框架设计> 版本1: function repeat(target, n) { return (new Array(n + 1)).join(target) } 版 ...