第十一章 EXT2 文件系统

发布时间 2023-10-15 00:01:02作者: 灰灰爱跳舞

# EXT2 文件系统

 

## EXT2 文件系统

  

 - Linux 一直使用 EXT2 作为默认文件系统。

 - 版本有EXT2、EXT3、EXT4。(EXT4分配连续的磁盘块区,称为区段)

 

## EXT2文件系统数据结构

  

  ### 通过mkfs 创建虚拟磁盘

 

 - 语法:```mke2fs [-b blksize -N ninodes] device nblocks```

 

用意:在设备上创建一个带有nblocks个块(每个块大小为blksize字节)和ninodes个索引节点的EXT2文件系统。

 

  - 语法:```dd if=/dev/zero of=vdisk bs-1024 count=1440```

               ``` mke2fs vdisk 1440```

 

用意:可在一个名为vdisk的虚拟磁盘文件上创建一个EXT2文件系统,有1440个大小为1KB的块。

 

### 虚拟磁盘布局

 

 - EXT2文件系统的布局如图所示。

 

 

 - Block#0:引导块 B0是引导块,文件系统不会使用它。它用来容纳一个引导程序,从磁盘引导操作系统。

 

### 超级块

 

 - Block#1:超级块(在硬盘分区中字节偏移量为1024)  B1是超级块,用于容纳整个文件系统的信息。下文说明了超级块结构中的一些重要字段。见下图

 

 

 

### 块组描述符

 

Bock#2:块组描述符块eXT2将磁盘块分成几个组。每个组有8192个块(硬盘上的大小为32K)每组用一个块组描述符结构体来描述。

 

 

由于一个虚拟软盘(FD)只有1440个块,B2就只包含一个块组描述符。其余的都是0在有大量块组的硬盘上,块组描述符可以跨越多个块。

 

块组描述符中最重要的字段是bgblock bitmap、 bg inode bitmap和 bg inode table,它们分别指向块组的块位图、索引节点位图和索引节点起始块。

 

### 块和索引节点位图

 

 - Block #8:块位图( Bmap )( bg _ block _ bitmap )位图是用来表示某种项的位序列,例如磁盘块或索引节点。位图用于分配和回收项。在位图中,0位表示对应项处于 FREE 状态,1位表示对应项处于 IN _ USE 状态。一个软盘有1440个块,但是 Block #0未被文件系统使用。所以,位图只有1439个有效位。无效位被视作 IN _ USE ,设置为1。

 

 - Block #9:索引节点位图( Imap )( bg _ inode _ bitmap )一个索引节点就是用来代表一个文件的数据结构。EXT2文件系统是使用有限数量的索引节点创建的。各索引节点的状态用B9的 Imap 中的一个位表示。在EXT2 FS 中,前10个索引节点是预留的。所以,空EXT2 FS 的 Imap 以10个1开头,然后是0。无效位再次设置为1。

 

### 索引节点

索引(开始)节点每个文件都用一个128字节(EXT4中是256字节)的唯一索引节点结构体表示。下面列出了主要索引节点字段。block[15]数组包含指向文件磁盘块的指针,这些磁盘块有

 

-   直接块: i block[0]至 i block[,指向直接磁盘块。

    

-   间接块: i block[12]指向一个包含256个块编号(于1 KB BLKSIZE)的磁盘块,每个块编号指向一个磁盘块。

    

-   双重间接块: i block[13指向一个指向256个块的块,每个块指向256个磁盘块。

    

-   三重间接块: i block[11是三重间接块。对于“小型”EXT2文件系统,可以忽略它。

 

  苏格拉底挑战                                                                                                                                                                                                                                                                                                                                                                                                                                           1