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. pod创建的工程找不到库

    ld: library not found for -lAFNetworking app工程 和 Pod工程里面的所有库   Build Active Architecuture Only 所有库都设 ...

  2. CPU MPU MCU SOC SOPC关系及区别

    在嵌入式开过程,会经常接触到一些缩写术语概念,这些概念在嵌入式行业中使用率非常高,下面我们就解释一下这些概念之间的关系和区别: 1.CPU(Central Processing Unit),是一台计算 ...

  3. malloc,vmalloc与kmalloc,kfree与vfree的区别和联系

    kmalloc和vmalloc是分配的是内核的内存,malloc分配的是用户的内存kmalloc保证分配的内存在物理上是连续的,vmalloc保证的是在虚拟地址空间上的连续kmalloc能分配的大小有 ...

  4. Python入门(二,基础)

    一,基本语法 Python标识符 在python里,标识符有字母.数字.下划线组成. 在python中,所有标识符可以包括英文.数字以及下划线(_),但不能以数字开头. python中的标识符是区分大 ...

  5. LeetCode---- 二叉树中,找出和为某值的所有路径

    Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given su ...

  6. ERP部门的添加(十一)

    功能需求: 1.有部门管理权限的人员进行添加部门基本信息. 2.有部门权限管理的人员查询部门基本信息. 3.有部门权限管理的人员进行修改部门基本信息. 4.在一个页面中实现,使用弹出对话框方式 存储过 ...

  7. Mac OS 使用Git

    入门教程的流程: 什么是Git----------------->为什么选择Git----------------->如何安装Git到MAC OS X------------------& ...

  8. 学习方法和阶段介绍 、 iOS界面开发引入 、 构造第一个App 、 视图控制器和视图 、 控件与事件 、 InterfaceBuilder

    1 创建并运行第一个App 1.1 问题 使用Xcode创建一个App项目,该应用实现功能在界面上显示Hello World标签,在模拟器中的运行结果如图-1所示: 图-1 1.2 方案 分析图-1, ...

  9. VC++编程中常用的字符串转换函数

    VC++编程中经常遇到不同编码编码的字符串之间需要转换的情况,以下简单提供几个不同编码字符串之间的转换函数: ANSI 字符串和Unicode字符串之间的转换 //Convert wide char ...

  10. Qt的QLineEdit显示密码

    ui->lineEdit->setEchoMode( QLineEdit::Password );