Linux文件系統分析之二(超級塊,i節點位圖和邏輯塊位圖)

第二個扇區和第一個扇區一樣屬於引導塊,這裏就不列舉出其內容了,這裏的一塊是兩個扇區即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個磁盤塊。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章