LINUX下的ext2文件系统————总体存储布局
2013-09-21 10:37
363 查看
我们知道一个磁盘可以分成多个分区,每个分区必须先用格式化工具格式化成某种格式的文件系统,才能存储文件,在格式化的过程中会在磁盘上写一些管理存储布局的信息。下面我们来看看一个磁盘分区格式化ext2文件系统后的存储布局。
我们在这先来回顾一下文件存储的知识:文件系统中存储的最小单位是块(Block),一个块的大小是在格式化的时候就已经确定(可以通过mke2fs -b (1024)设定)。
首先在上图中我们看到的第一部分是启动块(大小确定为1KB,由PC标准规定,用来存储分区信息和启动信息,任何文件系统都不能使用启动块),之后才是ext2文件系统的开始,ext2文件系统将整个分区划分成若干个大小不同的块组(Block Group),每个块组由以下部分构成。
超级块(Super Block)
作用:描述整个分区的文件系统信息,such as 块大小,文件系统版本号,上次的mount时间等等。(超级块在每个块组的开头都有一份拷贝)
块组描述符表(GDT,Group Descriptor Table)
由很多块组描述符组成,整个分区有多少块组就有多少块组描述符,它存储一个块组的描述信息(从哪里开始是inode表,从哪里开始是数据块,空闲的inode等),和超级块类似它也在每个块组开头有一份拷贝,通常内核只用到第0个块组描述符。
块位图(Block Bitmap)
数组块存储所有文件的数据(如一个文件的块大小是1KB,某个文件时2049字节,就需要三个块位图来存储),超级块,块组描述符表,块位图,inode位图,inode 表这几部分来存储该数组的描述信息。块位图就是用来描述块组中那些块已用哪些是空闲的,它本身占一个块,其中的每个bit代表本块数组中的一个块,这个bit为1表示该块已用,反之则为空闲。
inode位图(inode Bitmap)
和块位图类似,本身占一个块,其中每个bit表示一个inode是否空间可用。
inode表(inode Table)
存储文件的描述信息(文件类型,权限,文件大小创建/修改访问时间等,即ls -l看到的信息),每个文件都有一个inode,一个块组中所有的inode组成了inode表。
(一个块组有多少个8KB就分配多少个inode).
数据块(Data Block )
根据不同文件类型有一下几种情况:
(1)对于常规文件,文件的数据存储在数据块中。
(2)对于目录,该目录下的所有文件名和目录名存储在数据块中,除文件名之外,ls -l命令中看到的信息则存储在inode中;目录也是一种文件,是一种特殊类型的文件。
(3)对于符号链接,如果目标路径名较短则直接保存在inode中以便更快的查找,如果目标路径名较长则分配一个数据块来保存。
(4)设备文件,FIFO和socket等特殊文件没有数据块,设备文件的主设备号和次设备号保存在inode中。
我们在这先来回顾一下文件存储的知识:文件系统中存储的最小单位是块(Block),一个块的大小是在格式化的时候就已经确定(可以通过mke2fs -b (1024)设定)。
首先在上图中我们看到的第一部分是启动块(大小确定为1KB,由PC标准规定,用来存储分区信息和启动信息,任何文件系统都不能使用启动块),之后才是ext2文件系统的开始,ext2文件系统将整个分区划分成若干个大小不同的块组(Block Group),每个块组由以下部分构成。
超级块(Super Block)
作用:描述整个分区的文件系统信息,such as 块大小,文件系统版本号,上次的mount时间等等。(超级块在每个块组的开头都有一份拷贝)
块组描述符表(GDT,Group Descriptor Table)
由很多块组描述符组成,整个分区有多少块组就有多少块组描述符,它存储一个块组的描述信息(从哪里开始是inode表,从哪里开始是数据块,空闲的inode等),和超级块类似它也在每个块组开头有一份拷贝,通常内核只用到第0个块组描述符。
块位图(Block Bitmap)
数组块存储所有文件的数据(如一个文件的块大小是1KB,某个文件时2049字节,就需要三个块位图来存储),超级块,块组描述符表,块位图,inode位图,inode 表这几部分来存储该数组的描述信息。块位图就是用来描述块组中那些块已用哪些是空闲的,它本身占一个块,其中的每个bit代表本块数组中的一个块,这个bit为1表示该块已用,反之则为空闲。
inode位图(inode Bitmap)
和块位图类似,本身占一个块,其中每个bit表示一个inode是否空间可用。
inode表(inode Table)
存储文件的描述信息(文件类型,权限,文件大小创建/修改访问时间等,即ls -l看到的信息),每个文件都有一个inode,一个块组中所有的inode组成了inode表。
(一个块组有多少个8KB就分配多少个inode).
数据块(Data Block )
根据不同文件类型有一下几种情况:
(1)对于常规文件,文件的数据存储在数据块中。
(2)对于目录,该目录下的所有文件名和目录名存储在数据块中,除文件名之外,ls -l命令中看到的信息则存储在inode中;目录也是一种文件,是一种特殊类型的文件。
(3)对于符号链接,如果目标路径名较短则直接保存在inode中以便更快的查找,如果目标路径名较长则分配一个数据块来保存。
(4)设备文件,FIFO和socket等特殊文件没有数据块,设备文件的主设备号和次设备号保存在inode中。
相关文章推荐
- ext2文件系统总体存储布局
- ext2文件系统存储布局
- ext2文件系统存储布局
- Linux - EXT2文件系统
- Linux 磁盘与文件系统管理:认识 EXT2 文件系统
- linux文件系统1:Ext2
- chapter8:Linux磁盘与文件系统管理之(1)认识Ext2文件系统
- Linux磁盘与文件系统管理 之 认识EXT2系统
- [完善中]ext2文件系统布局
- Ext2文件系统布局,文件数据块寻址,VFS虚拟文件系统
- tiny4412 使用uboot烧写 linux 挂载 nfs文件系统[总体步骤]
- Linux下的文件系统分类(以存储介质)
- linux文件系统----ext2
- ext2文件系统存储结构
- linux下的硬链接和软连接区别及ext2文件系统
- Linux-磁盘存储和文件系统
- linux下实现文件存储系统,创建和删除大量文件或文件夹时,updatedb进程会更新文件索引节点inode
- Linux ext2, ext3, ext4 文件系统解读[5]
- 嵌入式Linux文件系统及其存储机制分析 - farsight嵌入式学习专栏 - CSDNBlog
- 浅谈Linux的EXT2文件系统