ext2磁碟結構
ext2分割槽和ext2分組的分布圖(下圖是借用其他部落格的)
塊組中的每個塊包含的資訊:
超級快(1個塊):描述該分割槽中的整個檔案系統的資訊,包括有多少個快組,每個快組有多少個塊,多少個索引節點等。
組描述符塊(n塊):
塊點陣圖(1塊):
索引節點位圖(1塊):
索引節點(n塊):
資料塊(n塊):
塊大小:ext2塊大小可以設定為1k,2k或4k。
超級塊:
ext2_super_block結構,重點字段:
s_inodes_count; 索引節點的總數
s_blocks_count; 檔案系統中塊的總數
s_free_blocks_count; 空閒塊的數目
s_free_inodes_count; 空閒節點的數目
s_first_data_block; 第乙個使用的塊號(總是1)
s_log_block_size; 塊的大小,1k,2k,4k
s_blocks_pre_group; 每個塊組的塊數
s_inodes_pre_group;每個快組的索引節點數
組描述符:
每個塊組都有自己的組描述符,將所有分組的分組描述符都儲存在一起。
ext2_group_desc結構,32個位元組大小。重點字段:
bg_block_bitmap; 資料塊點陣圖的塊號
bg_inode_bitmap;索引節點點陣圖的快號
bg_inode_table ; 第乙個索引節點表塊的塊號
bg_free_blocks_count; 該組中的空閒塊的數目
bg_free_inodes_count;該組中的空閒索引節點的數目
bg_used_dirs_count; 改組中的數目的個數。
塊點陣圖:
塊點陣圖用來描述整個塊組中哪些塊是空閒的,那些塊是占用的,0代表空閒,1代表占用。
如果塊大小為1k,那麼每個組塊,最多有1024*8個塊,也就是8m
如果塊大小為4k,那麼每個組塊最多4k*8個塊,也就是128m
索引節點位圖:
占用乙個塊。
索引節點表:
每個索引節點佔128位元組,塊大小為1k時,每塊包含8個索引節點,塊大小為4k時,每塊可以包含32個索引節點。
索引節點ext2_innode 包含的重要字段:
i_mod; 檔案型別、訪問許可權
i_uid; 擁有者標識
i_size; 以位元組為單位,檔案大小
i_links_count; 硬鏈結計數器,也就是有多少個目錄指向該檔案
i_blocks; 檔案的資料塊
i_block; 指向資料塊的指標。預設包含15個元素,0-11元素,對應檔案最初的12個塊,後面則是2級,3級,4級索引。
Ext2檔案系統
ext2檔案系統的總體布局,如下圖。1檔案系統的最小儲存單元是塊 block 塊的大小一般為512bytes,或者是它的整數倍,塊的大小是在格式化是所確定的。不能修改除非重新格式化。上圖中顯示了檔案系統的總體布局,由乙個boot block和對個block group組成,每個block group...
掛載EXT2檔案系統
檔案系統的安裝主要是通用mount命令來實現的,然後通過系統呼叫由使用者態進入到核心態,把某乙個分割槽下的檔案系統掛載到某乙個目錄下,當然掛載也可以能指定掛載的檔案系統。mount函式通過sys mount函式來實現,其具體函式如下 asmlinkage long sys mount char us...
ext2檔案系統定址
ext2 檔案系統相關介紹 ext2檔案系統,乙個檔案除了資料需要儲存之外,一些描述資訊也需要儲存,例如檔案型別 常規 目錄 符號鏈結等 許可權,檔案大小,建立 修改 訪問時間等,也就是ls l命令看到的那些資訊,這些資訊存在inode中而不是資料塊中。但是檔名存在 首先檔名不是存在inode中的,...