[ext4]09 磁盘布局 - superblock备份机制

如果sparse_super特性flag被设置(即开启了sparse_super特性),那么super_block和组描述符的副本只会保存在group索引为0或3、5、7的整数幂。

如果没有设置sparse_super特性flag,super_block和组描述符的副本将保存在每一个group中。

创建一个5g的分区,格式化为ext4卷:

root@ubuntu:~# mkfs.ext4 /dev/sdc

mke2fs 1.42 (29-Nov-2011)

/dev/sdc is entire device, not just one partition!

Proceed anyway? (y,n) y

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

327680 inodes, 1310720 blocks

65536 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=1342177280

40 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks:

        32768,98304, 163840, 229376, 294912, 819200, 884736

Allocating group tables: done

Writing inode tables: done

Creating journal (32768 blocks): done

Writing superblocks and filesystem accountinginformation: done

root@ubuntu:~#

由上可见:除group0中存在一个superblock外,在group 1(3^0=1)的第一个block(索引为32768)中存在一个副本;在group 3(3^1=3)、group 5(5^1=5)、group 7(7^1=7)、group 9(3^2=9)、group 25(5^2=25)、group27(3^3=27)的第一个block处也存在一个副本。

尝试禁用sparse_super特性

root@ubuntu:~# mkfs.ext4 -O ^sparse_super /dev/sdc

mke2fs 1.42 (29-Nov-2011)

/dev/sdc is entire device, not just one partition!

Proceed anyway? (y,n) y

mkfs.ext4: reserved online resize blocks notsupported on non-sparse filesystem

root@ubuntu:~#

注:通过mkfs.ext4 -O^flex_bg /dev/sdc可以禁用flex_bg特性,同样,也可以通过此方法禁用sparse_super特性。

作者:Younger Liu,

本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 未本地化版本许可协议进行许可。

上一篇:矩阵树Matrix-Tree定理与行列式


下一篇:ESP8266调试问题