f2fs_super_block中的主要内容

格式化f2fs文件系统并查看superblock内容

格式化文件系统详见:挂载F2FS

创建两个文件,分别为100M和1000M。在上面分别挂载F2FS文件系统,使用dump命令查看内容。

条目 100MB 1000MB 说明
magic [0xf2f52010 : 4076150800] [0xf2f52010 : 4076150800] magic number,这个是固定值0xf2f52010
major_ver [0x 1 : 1] [0x1 : 1]
volum_name [] []
minor_ver [0x10 : 16] [0x10 : 16]
log_sectorsize [0x9 : 9] [0x9 : 9]
log_sectors_per_block [0x3 : 3] [0x 3 : 3]
log_blocksize [0xc : 12] [0xc : 12]
log_blocks_per_seg [0x9 : 9] [0x       9 : 9]
segs_per_sec [0x1 : 1] [0x1 : 1] 每个section中保存1个segment
secs_per_zone [0x1 : 1] [0x1 : 1] 每个zone中保存1个section
checksum_offset [0x0 : 0] [0x       0 : 0]
block_count [0x6400 : 25600] [0x3e800 : 256000] block数量,每个block的size为4K,所以                  256004K=100MB                  2560004K=1000MB                  这里的blocks数量是整个空间的大小,包括superblock/SIT/NAT/SSA/MAIN等
section_count [0x2a : 42] [0x1ea : 490] main area section数量                  42=50-1(sb)-2(cp)-2(sit)-2(nat)-1(ssa)                  490=500-1(sb)-2(cp)-2(sit)-4(nat)-1(ssa)
segment_count [0x31 : 49] [0xf3 : 499] segment数量,应该不包含superblock(2MB)                  492MB=98MB=100MB-2MB                  4992MB=998MB=1000MB-2MB
segment_count_ckpt [0x2 : 2] [0x2 : 2] check point的segment数量,固定为2个segment
segment_count_sit [0x2 : 2] [0x 2 : 2] segment info table的segment数量,固定为2个segment
segment_count_nat [0x2 : 2] [0x4 : 4] node address table的segment数量。这个数量后面计算一下
segment_count_ssa [0x1 : 1] [0x1 : 1] segment summary area的segment数量
segment_count_main [0x2a : 42] [0x1ea : 490] 和上面section计算方式一样                  main area segment数量                  42=50-1(sb)-2(cp)-2(sit)-2(nat)-1(ssa)                  490=500-1(sb)-2(cp)-2(sit)-4(nat)-1(ssa)
segment0_blkaddr [0x200 : 512] [0x200 : 512] segment0的blkaddr地址,上面计算可以看出来blkaddr从地址0开始的,segment数量是不包含superblock的,所以这里从512*4K=2MB开始计算
cp_blkaddr [0x200 : 512] [0x200 : 512] cp的起始block位置,这个也好计算,就是2MB开始的地方                  512*4K=2MB
sit_blkaddr [0x600 : 1536] [0x600 : 1536] sit起始位置,应该固定为6MB                  15364K=6MB=2MB(superblock)+22MB(cp)
nat_blkaddr [0xa00 : 2560] [0xa00 : 2560] node address table起始位置,目前应该是                  25604K=10MB=2MB(superblock)+22MB(cp)+2*2MB(SIT)
ssa_blkaddr [0xe00 : 3584] [0x1200 : 4608] segment summary area起始地址,由于前面nat数量有差异,所以这里计算的起始地址就有差异了                  100MB:35844K=14MB=2MB(superblock)+22MB(cp)+22MB(SIT)+22MB(NAT)                  1000MB:46084K=18MB=2MB(superblock)+22MB(cp)+22MB(SIT)+42MB(NAT)
main_blkaddr [0x1000 : 4096] [0x1400 : 5120] main area起始的blk地址                  计算方式就是把前面的加起来                  100MB:40964K=16MB=2MB(superblock)+22MB(cp)+22MB(SIT)+22MB(NAT)+12MB(SSA)                  1000MB:51204K=20MB=2MB(superblock)+22MB(cp)+22MB(SIT)+42MB(NAT)+12MB(SSA)
root_ino [0x3 : 3] [0x 3 : 3] 对应的一些ino编号,后面再详细介绍                  root_ino=3
node_ino [0x1 : 1] [0x1 : 1] node_ino=1
meta_ino [0x2 : 2] [0x2 : 2] meta_ino=2
cp_payload [0x0 : 0] [0x0 : 0]
crc [0x0 : 0] [0x 0 : 0]
version 5.15.119-qki-consolidate-android13-8-o-03186-g42a55cce9ac3 5.15.119-qki-consolidate-android13-8-o-03186-g42a55cce9ac3 版本信息
Th[0] Info: Segments per section = 1 Segments per section = 1 section包含的segment数量,每个section包含1个segment
Th[0] Info: Sections per zone = 1 Sections per zone = 1 zone包含的section数量,每个zone包含1个section
Th[0] Info: total FS sectors = 204800 (100 MB) total FS sectors = 2048000 (1000 MB) 总大小数量
Th[0] Info: CKPT version = 4009c261 CKPT version = 5b4bb5b1 cp版本信息

未列出的参考资料

https://mp.weixin.qq.com/s/FbGyxclb1Gesk8_apEexPQ