EXT2檔案系統簡介

2021-07-15 13:35:01 字數 1715 閱讀 3479

ext2檔案系統是linux系統中廣泛使用的檔案系統,該檔案系統是一種索引式檔案系統,它將分割槽分為inode和block,它會給每個檔案分配乙個inode,inode中儲存檔案的一些屬性資訊,block中儲存檔案真正的內容,乙個block的大小有1k、4k等大小,乙個block中只能儲存乙個檔案,比如現在有乙個檔案佔據了乙個block的1b大小,那麼這個block剩餘的大小也無法分配給其他檔案使用。大體儲存結構如下圖所示:

因為乙個分割槽可能很大,可能會分成很多很多個block,為了便於管理,系統將這些block分成多個block組,每個block組中儲存當前組的資訊和當前block組的block,如下圖:

每個分割槽都有如下幾個專案:

引導扇區:每個分割槽前的引導扇區

super block:超級塊,它記錄的是整個檔案系統的資訊,檔案系統的型別,inode數量,block數量等,每個分割槽的super block是相同的

檔案系統描述:描述每個block group 的開始與結束的block號碼。

塊對應表(block bitmap):用bit位記錄了每乙個block目前的狀態,如果有資料就置為1,沒有資料置為0。如果需要分配block,那麼就找目前狀態為0的。

inode 對應表(inode bitmap):和塊對應表相似,記錄的是inode的分配和未分配的號碼。

inode table:詳細記錄了每乙個inode的資訊。

data block:詳細記錄檔案資料的地方,每乙個block都有block號碼。

inode table中記錄了乙個inode中的詳細內容,因為inode中記錄了除檔名以外的所有檔案屬性。但是乙個inode節點所佔的磁碟空間ue不能太大,那麼它到底是怎樣儲存的呢?請看下圖:

圖中db代表資料、ipb代表中間節點(數字代表級數)

這張圖描述了乙個inode節點中儲存的資訊。在最上邊的其他資訊裡儲存了檔案除了檔名和檔案具體存放的block號以外的其他資訊。其餘的資訊由15個指標指向inode或者相應的二級節點。

其中0-11這十二個指標是直接指向存放資料的block塊中,12是乙個一級索引,直接指向的是乙個block,其中存放的是指向檔案block塊的指標。13是乙個二級索引,13指向乙個一級索引,其中的一級索引又指向某幹個直接索引。14是乙個**索引,與二級索引類似。

採用**索引機制就可以利用有限的inode節點索引到更大的檔案,比如乙個block的大小是4k,乙個指標的大小是4b,那麼採用**索引機制的乙個inode節點最大可以索引到的檔案大小是:1024 × 1024 × 1024 × 4096位元組(約4tb)

硬鏈結和軟鏈結在其他地方可能不太好說明,在有了inode和block的知識之後理解起來硬鏈結和軟鏈結就簡單的多了。linux下的檔名和檔案資訊是分開儲存的,在系統內部是通過inode號唯一標識乙個檔案的。硬鏈結其實就是給這個inode(這個檔案)再起乙個檔名。硬鏈結通過檔名刪除其中的乙個檔案另外的檔案不受影響。軟鏈結是另外的乙個檔案,這個檔案中的資訊是乙個指向路徑和檔名稱的特殊檔案。軟鏈結刪除指向的檔案則鏈結檔案失效(檢視軟鏈結本身的內容用readlink命令)。

ext2檔案系統

ext2磁碟結構 ext2分割槽和ext2分組的分布圖 下圖是借用其他部落格的 塊組中的每個塊包含的資訊 超級快 1個塊 描述該分割槽中的整個檔案系統的資訊,包括有多少個快組,每個快組有多少個塊,多少個索引節點等。組描述符塊 n塊 塊點陣圖 1塊 索引節點位圖 1塊 索引節點 n塊 資料塊 n塊 塊...

Ext2檔案系統

ext2檔案系統的總體布局,如下圖。1檔案系統的最小儲存單元是塊 block 塊的大小一般為512bytes,或者是它的整數倍,塊的大小是在格式化是所確定的。不能修改除非重新格式化。上圖中顯示了檔案系統的總體布局,由乙個boot block和對個block group組成,每個block group...

掛載EXT2檔案系統

檔案系統的安裝主要是通用mount命令來實現的,然後通過系統呼叫由使用者態進入到核心態,把某乙個分割槽下的檔案系統掛載到某乙個目錄下,當然掛載也可以能指定掛載的檔案系統。mount函式通過sys mount函式來實現,其具體函式如下 asmlinkage long sys mount char us...