您的位置:首页 > 运维架构 > Linux

Linux文件系统分析之二(超级块,i节点位图和逻辑块位图)

2015-11-01 15:15 1966 查看
第二个扇区和第一个扇区一样属于引导块,这里就不列举出其内容了,这里的一块是两个扇区即1024B。接下来的一块就是大名鼎鼎的超级块了。其内容如下:

00000400h: E0 01 A0 05 01 00 01 00 13 00 00 00 00 1C 08 10 ; ??............

00000410h: 7F 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ...............

00000420h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................

00000430h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................

00000440h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................

00000450h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................

00000460h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................

后面一直到该磁盘块结束的地方全部都是0:

000007f0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................

下面列出这个超级块的结构:

struct super_block{

unsigned short s_ninodes; i节点数(1E0=480)

unsigned short s_nzones; 逻辑块数(5A0=1440刚好是软盘的容量)

unsigned short s_imap_blocks; i节点位图所占用的数据块数(1块)

unsigned short s_zmap_blocks; 逻辑块位图所占用的数据块数(1块)

unsigned short s_firstdatazone; 第一个数据逻辑块号(13H=19块)

unsigned short s_log_zone_size; log(数据块数/逻辑块)

unsigned long s_max_size; 文件最大长度

unsigned short s_magic; 文件系统魔数(137F)

...//后面的成员仅出现在内存中,不列举出来。

这个superblock的信息就这么多,它表示该文件系统有480个i节点,逻辑块数是1440,每块是1024B,所以总容量就是软盘容量了。i节点位图和逻辑块位图都只占用一个数据块。第一个数据块块号是19号,这里存放的是"/"根文件了,等会儿就可以看到了。

接下来的一个磁盘块就是所谓的i节点位图块了,这已经是第3个磁盘块了。

00000800h: FF FF FF FF FF FF DD FF 7F 01 00 00 00 00 00 00 ; ???????.......

00000810h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................

00000820h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................

00000830h: 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF ; ............????

00000840h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; ????????????????

00000850h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; ????????????????

00000860h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; ????????????????

后面一直到该磁盘块结束的地方全部都是1:

00000bf0h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; ????????????????

这里到00000830h行0结束的地方,总共有60个字节,即480位,与超级块中的i节点数480吻合。这480个位中,为1的表示i节点在用,为0的表示空闲。

逻辑块位图的原理和i节点位图一模一样,这里省略其分析。到此已经分析完了4个磁盘块。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: