ext2檔案系統簡單認識

2021-07-26 10:14:14 字數 1947 閱讀 5064

ext(linux extended file system, ext?fs)。

傳統的磁碟與檔案系統中,乙個分割槽只能被格式化為乙個檔案系統,所以可以說乙個檔案系統就是乙個分割槽。但由於像我們經常聽到的lvm(logical volume manager)以及software raid的新技術的運用,可以將乙個分割槽化為多個檔案系統(lvm),也能夠將多個分割槽合為乙個檔案系統(lvm,raid),所以說我們在格式化時已經不再說成是針對分割槽來格式化了,通常我們稱呼乙個可以被掛載的資料為乙個檔案系統

檔案系統如何執行?例如linux作業系統的檔案許可權與屬性、檔案的內容這兩部分,檔案系統通常會將這兩部分放在不同的塊中。

ext這種檔案系統就是索引檔案系統indexed allocation

fat檔案系統並沒有inode存在,因此是以鍊錶的形式讀取檔案

所謂碎片整理就是將同乙個檔案所屬的block匯合在一起。為什麼這麼做?當然是為了避免磁頭來回轉圈和機械臂大幅移動損傷磁碟。

檔案系統已開始就將inode和block規劃好了,除非重新格式化,否則不再變動。這時就要考慮inode和block的管理問題。若不加以規劃,則不僅資料的新增、刪除、修改廢時、損傷磁碟,而且檔案系統的修復、檢查也變得異常困難。基於種種充分的理由,ext檔案系統再格式化時基本上是區分為多個塊組(block group)

如圖所示,檔案系統最前面有乙個啟動扇區(boot sector),每個塊組中的東西下面一一介紹

1、superblock:如上文所提到的,superblock是記錄整個檔案系統(雖然每個塊組都可能有、但是記錄的是整個檔案系統!!!)相關資訊的地方。它記錄的主要資訊有

如果系統崩潰破壞了超級塊,有關檔案系統結構和內容的所有資訊都會丟失,如果有冗餘的副本,該資訊是可能恢復的

通過使檔案和管理資料盡可能接近,減少了磁頭尋道和旋轉,這可以提高檔案系統的效能

然而除了第一塊組外,備份的數字是多少?為什麼非要存在這些塊組?計算規則是3 5 和7的冪,這樣的塊組儲存超級塊。

超級塊的資料快取在記憶體中,使得核心不必重複地從硬碟讀取資料。

超級塊只佔乙個block

2、組描述符gdt:包含的資訊反映了檔案系統中各個塊組的狀態,例如,塊組中空閒塊和inode的數目,每個塊組都包含了檔案系統中所有塊組的組描述符資訊。

然而當我用dumpe2fs檢視時,發現有的有沒有。而經過這篇文章的分析,可見所有的gdt都是一樣的

3、reserved gdt:用於將來擴充套件檔案系統

4、資料位圖inode bitmap:記錄使用與被使用的inode號碼

5、block bitmap:同上

12個直接指向與間接、雙間接、三間接指向

7、datablock不用解釋

與目錄樹的關係

在linux檔案系統下,不管一般檔案還是目錄檔案都要占用乙個inode。那麼目錄與檔案在ext2檔案系統中是如何記錄資料的呢?
目錄樹的讀取:由inode檢查許可權,指向block,block再指向inode,遞迴到底。

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...