Ext2文件系统的核心元数据超级块

在Linux操作系统中,每个文件系统都必须有一个超级块。所谓超级块就是不普通的块,特别的块,其英文为SuperBlock。

Ext2文件系统自然也不例外,在该文件系统开头的地方也有一个超级块,具体如图所示。Ext2文件系统的超级块位于磁盘开始偏移1KB的位置,其尾部与4KB对齐。

Ext2超级块概述

Ext2文件系统的超级块是对文件系统整体属性的描述,包括文件系统inode总量、磁盘块总量、inode使用情况、文件系统特性和挂载时间等等。

超级块也是文件系统的入口。我们知道磁盘在使用之前必须进行格式化,然后挂载到本地目录树。这里挂载的过程就是要从磁盘读取超级块,并进行关键数据结构初始化的过程。超级块成员很多,下一小节我们详细描述每个成员的作用。

格式化为Ext2文件系统的磁盘,可以通过dumpe2fs命令查看其文件系统的信息,包括超级块和块组的信息。也可以通过dd命令将数据导出到文件中,然后通过vim工具查看(磁盘原始数据格式)。

超级块成员详解

上面简单介绍了一下Ext2文件系统的超级块。超级块的成员很多,本节详细介绍一个超级块各个成员的含义。本文基于Linux5.2版本的内核,其它版本的内核可能略有差异。在解释的过程中可能涉及磁盘数据对示例,本文是以100MB磁盘为例,默认格式化的场景(块大小为1KB)。

经验分享 程序员 微信小程序 职场和发展