Linux中Ext2文件系统整理一
2014-10-15 10:54
148 查看
1、Ext2文件系统规划(参照《鸟哥Linux私房菜基础篇》)
磁盘分区后进行格式化,这时文件系统会将inode与block规划好,除非再次进行格式化,否则不会改变。但是如今的文件系统很大,有的高达几百G,这样会是的inode与block的数量太大,这样将它们全部放在一起是不明智的,因此Ext2文件系统在格式化后采取的措施是:将整个文件系统分成多个块组(block group),各个块组内有各自独立的inode/block/super block系统,具体如下:
启动扇区:整个磁盘的第一个扇区,总容量为512bytes。包括硬盘主引导记录(MBR)及分区表(partition table)。
super block:super block是文件系统存在的标志,是记录整个文件系统相关信息的地方,可以说,没有super block,就没有整个文件系统了。一般super block的大小为1024bytes。其包括的信息如下:
(注:理论上看,一个文件系统应只有一个super block。实际上,除了第一个block group之外,后续的block group不一定含有super block(第一个block group中的super block是记录整个文件系统信息的,而不是此block group的),如果有也只是第一个block group中的备份,这样也可以在第一个block group中的super block被破坏后及时救援)
文件系统描述说明:描述该blockgroup的block区域,即标注开始与结束block。并且还要标注block group中各个区段(super block、bitmap、inodemap、data block等)的block区域。
块对照表:记录该blockgroup中block的使用情况,在添加文件时可以快速的找到可用的空间来存储文件。
inode对照表:与块对照表功能类似,记录inode的使用情况。
data block:即用来存储文件具体内容的区域。在分区格式化后大小与数量便固定,并注有标号,一共inode记录。
2、关于block的大小设置:已知每个inode大小固定为128bytes,一个block记录需要4 bytes,因此inode最多也只能记录32条block记录信息,但是inode还需要记录其它的文件属性信息,并且32个block记录若全是指向存放文件内容数据的block则使得文件的大小受到很大的限制。因此,Ext2文件系统采用的措施是将inode记录block方式定为12个直接、1一个间接、1个双间接、1个三间接记录区。
12个直接:即inode中有分配12个4bytes来记录12个直接存放了文件内容数据的block,如下图所示:
1个间接:inode中的一个4bytes记录来指向一个block,但是此block中不是直接存放文件的内容数据,而是存放其它block记录。假设一个block大小为1K,则一个block可以存放1K/4bytes = 256个block记录了。
1个双间接:inode中的一个4bytes记录来指向一个存放block记录的block,该block中可以指向另外256个block,而这256个block也不是直接存放文件内容数据,而也是存放block记录数据每个block可以存放256个,则256个block则可以存放256*256个存放文件内容数据的block了。如下图所示:
1个三间接:(同上一样,只是再加一层中间block)
磁盘分区后进行格式化,这时文件系统会将inode与block规划好,除非再次进行格式化,否则不会改变。但是如今的文件系统很大,有的高达几百G,这样会是的inode与block的数量太大,这样将它们全部放在一起是不明智的,因此Ext2文件系统在格式化后采取的措施是:将整个文件系统分成多个块组(block group),各个块组内有各自独立的inode/block/super block系统,具体如下:
启动扇区 | Super block | 文件系统描述说明 | 块对照表 | Inode 对照表 | Inode Table | Data block | 文件系统描述说明 | 块对照表 | Inode 对照表 | Inode Table | Data block | ...... |
block group1 | block group2 | ...... |
super block:super block是文件系统存在的标志,是记录整个文件系统相关信息的地方,可以说,没有super block,就没有整个文件系统了。一般super block的大小为1024bytes。其包括的信息如下:
Super block | 整个磁盘中block与inode的总量 |
未使用与已使用block与inode的数量 | |
格式化后block与inode的大小(block为1k,2k,4k,inode为128bytes) | |
文件系统的挂在时间、最近一次写入数据时间、最近一次检验磁盘时间等文件系统的相关信息 | |
一个validbit数值,若此文件系统已被挂载,则valib bit为0,若未被挂载,则valib bit为1 |
文件系统描述说明:描述该blockgroup的block区域,即标注开始与结束block。并且还要标注block group中各个区段(super block、bitmap、inodemap、data block等)的block区域。
块对照表:记录该blockgroup中block的使用情况,在添加文件时可以快速的找到可用的空间来存储文件。
inode对照表:与块对照表功能类似,记录inode的使用情况。
data block:即用来存储文件具体内容的区域。在分区格式化后大小与数量便固定,并注有标号,一共inode记录。
2、关于block的大小设置:已知每个inode大小固定为128bytes,一个block记录需要4 bytes,因此inode最多也只能记录32条block记录信息,但是inode还需要记录其它的文件属性信息,并且32个block记录若全是指向存放文件内容数据的block则使得文件的大小受到很大的限制。因此,Ext2文件系统采用的措施是将inode记录block方式定为12个直接、1一个间接、1个双间接、1个三间接记录区。
12个直接:即inode中有分配12个4bytes来记录12个直接存放了文件内容数据的block,如下图所示:
1个间接:inode中的一个4bytes记录来指向一个block,但是此block中不是直接存放文件的内容数据,而是存放其它block记录。假设一个block大小为1K,则一个block可以存放1K/4bytes = 256个block记录了。
1个双间接:inode中的一个4bytes记录来指向一个存放block记录的block,该block中可以指向另外256个block,而这256个block也不是直接存放文件内容数据,而也是存放block记录数据每个block可以存放256个,则256个block则可以存放256*256个存放文件内容数据的block了。如下图所示:
1个三间接:(同上一样,只是再加一层中间block)
相关文章推荐
- 查看linux的文件系统是什么格式的(如ext2,ext3,xfs等)?
- Linux上三个主要文件系统(EXT2、EXT3和ReiserFS)介绍--(中)
- Linux的Ext2文件系统
- Linux 文件系统 (未整理 有时间整理)
- Linux操作系统基础理论(5)-----EXT2文件系统的实现机制
- linux文件系统----ext2
- Linux的标准文件系统----EXT2
- linux高编之ext2系统文件
- Linux上三个主要文件系统(EXT2、EXT3和ReiserFS)介绍
- linux ext2 文件系统学习
- Linux文件系统(二)—— Linux上三个主要文件系统(EXT2、EXT3和ReiserFS)介绍和比较
- linux 基础学习之二:ext2文件系统研究
- linux下的硬链接和软连接区别及ext2文件系统
- LINUX下的ext2文件系统————总体存储布局
- linux整理笔记之三 文件系统维护
- linux文件系统1:Ext2
- [整理]Linux命令--挂载和卸载文件系统
- linux ext2 文件系统恢复被删除的文件
- 从Linux的ext2文件系统源码学到一种初始化结构体的新方法
- Linux文件系统1:Ext2EXT2格式 块大小为1024字节的话,单一文件最大容量是16GB,块大小为4096字节的话,单一文件最大容量为2TB