1、檔案更新策略的謹慎實現將系統崩潰的影響減到最少。我們只舉乙個例子來體現這個優點:例如,當給檔案建立乙個硬鏈結時,首先增加磁碟索引節點中 的硬鏈結計數器,然後把這個新的名字加到合適的目錄中。在這種方式下,如果在更新索引節點後而改變這個目錄之前出現乙個硬體故障,這樣即使索引節點的計數 器產生錯誤,但目錄是一致的。因此,儘管刪除檔案時無法自動收回檔案的資料塊,但並不導致災難性的後果。如果這種處理的順序相反(更新索引節點前改變目 錄),同樣的硬體故障將會導致危險的不一致,刪除原始的硬鏈結就會從磁碟刪除它的資料塊,但新的目錄項將指向乙個不存在的索引節點。如果那個索引節點號以 後又被另外的檔案所使用,那麼向這個舊目錄的寫操作將毀壞這個新的檔案。
2、在啟動時支援對檔案系統的狀態進行自動的一致性檢查。這種檢查是由外部程式e2fsck完成的,這個外部程式不僅可以在系統崩潰之後被啟用,也 可以在乙個預定義的檔案系統安裝數(每次安裝操作之後對計數器加1)之後被啟用,或者在自從最近檢查以來所花的預定義時間之後被啟用。
4、既與unix system v release 4(svr4)相相容,也與新檔案的使用者組id的bsd語義相相容。在svr4中,新檔案採用建立它的程序的使用者組id;而在bsd中,新檔案繼承包含它 的目錄的使用者組id。ext2包含乙個安裝選項,由你指定採用哪種語義。
即使ext2檔案系統是如此成熟、穩定的程式,也還要考慮引入另外幾個負面特性。目前,一些負面特性已新的檔案系統或外部補丁避免了。另外一些還僅僅處於計畫階段,但在一些情況下,已經在ext2的索引節點中為這些特性引入新的字段。最重要的一些特點如下:
塊片(block fragmentation)
系統管理員對磁碟的訪問通常選擇較大的塊,因為計算機應用程式常常處理大檔案。因此,在大塊上存放小檔案就會浪費很多磁碟空間。這個問題可以通過把幾個檔案存放在同一塊的不同片上來解決。
透明地處理壓縮和加密檔案
這些新的選項(建立乙個檔案時必須指定)將允許使用者透明地在磁碟上存放壓縮和(或)加密的檔案版本。
邏輯刪除
乙個undelete選項將允許使用者在必要時很容易恢復以前已刪除的檔案內容。
日誌日誌避免檔案系統在被突然解除安裝(例如,作為系統崩潰的後果)時對其自動進行的耗時檢查。
實際上,這些特點沒有乙個正式地包含在ext2檔案系統中。有人可能說ext2是這種成功的犧牲品;直到幾年前,它仍然是大多數linux發布公司採用的首選檔案系統,每天有成千上萬的使用者在使用它,這些使用者會對用其他檔案系統來代替ext2的任何企圖產生質疑。
ext2中缺少的最突出的功能就是日誌,日誌是高可用伺服器必需的功能。為了平順過渡,日誌沒有引入到ext2檔案系統;但是,我們在後面 「ext3檔案系統」中會討論,完全與ext2相容的一種新檔案系統已經建立,這種檔案系統提供了日誌。不真正需要日誌的使用者可以繼續使用良好而老式的ext2檔案系統,而其他使用者可能採用這種新的檔案系統。現在發行的大部分系統採用ext3作為標準的檔案系統。
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...