Linux 基礎學習篇 - 其他老舊文件

鳥哥的 Linux 基礎學習 - 其他老舊文件

EXT2 / EXT3 的 filesystem

最近更新時間: 2022/01/17

這裡都是比較老舊的文件資料,大概只有 GNU 的 GPL 可以稍微查看一下!其他都是用來備份而已! 盡量前往鳥站首頁查詢最新資料較佳!

第二延伸檔案系統 (EXT2)

全文出處: http://www.freeos.com/articles/3912/

第二延伸檔案系統(ext2)介紹

自從我們開始使用電腦後,大多數的使用者都曾經使用過檔案,而我們總是對關於硬碟如何正確地儲存檔案感到好奇, 它看起來似乎非常抽象,所以今天讓我們看一看 Linux 作業系統中較新的檔案系統版本『第二延伸系統( ext2 )』 ,並了解它各方面之用途。

這個檔案系統是主要來自於 Andrew Tanenbaum 所寫的 Minix 檔案系統,它也是唯一可用在免費作業系統的檔案系統,稱之為 Minix。它後來修正為 Linux 所慣用的檔案系統並稱為延伸檔案系統,到現在 Linux 的檔案系統稱為 ext2 (第二延伸檔案系統),它是延伸檔案系統中較新的版本並支援存取控制列(ACL)。

但是在著手研究 ext2 檔案系統之前,讓我們先了解檔案系統中之專有名詞的關聯。
  • Block (區塊): 檔案在磁碟中被儲存在整數固定大小的區塊中, 那區塊的大小通常是2的次方。在預設中,ext2檔案系統的區塊大小是4K。研究顥示, 4K位元組對於一磁碟區塊而言是最理想的大小,假如一個檔案的大小無法達成4K位元組的倍數時, 那最後的磁碟區塊部分就會被浪費。在最不好的例子中幾乎在完整的區塊中就有一位元組被浪費掉。

    對於這情況有一點技巧,假如我們選擇了一個較大的區塊,則對於小的檔案而言會有一些磁碟空間被浪費掉。 另外一方面,假如我們使用一個非常小的區塊,則磁碟區塊數量會成指數的增加, 因此對於檔案而言需有更多的搜尋時間。所以,選擇區塊大小必須三思而後行。

    當一個檔案被載入到記憶體時,那磁碟區塊會被放在主記憶體中之緩衝快取區,假如它們已經變更了, 區塊在緩衝區中會被標記為’Dirty’, 其意指的是這些區塊必須先寫到磁碟中來維持磁碟上的區塊及在主記憶體中的區塊之一致性.

  • Superblock:superblock 是在每個檔案系統開始的位置, 其儲存資訊像是檔案系統的大小,空的和填滿的區塊,它們各自的總數和其他諸如此類的資料。 要從一個檔案系統中存取任何檔案皆須經過檔案系統中之superblock。如果superblock損壞了, 它可能無法從磁碟中去取得資料。

  • Inode: 對於檔案系統而言一個inode是在inode表格中的一個項目。 Inode包含了所有檔案有關的資訊例如名稱、大小、連接的數量、資料建立之日期,修改及存取的時間。 它也包含了磁碟區塊的檔案指向(pointer)。pointer是用來記錄檔案被儲存在何處。

Ext2fs公用程式

現在讓我們來看看一些標準Linux版本之ext2fsprogs公用程式:
  • e2fsck
    這個程式允許我們在ext2檔案系統上去執行檔案系統檢查,它像是Windows中之 Scandisk一樣,但卻是一種更有效的系統檢查方式。在此,我們可以加上一個檔案名稱來檢查上面之損壞區塊。

    警告:絕對不要在任何已掛載的檔案系統上執行 e2fsck/fsck。假如我們想要去執行 fsck,我們應該卸下檔案系統後再去執行 fsck(亦即需要 umount 該磁區囉)。如果不這樣做,可能會讓檔案系統毀損。

  • tune2fs
    這允許我們去調整檔案系統的參數設定。在此,我們可以設定在兩個檔案系統檢查間之最大掛載總數、 容量標記、錯誤行為、變更保留的資訊和許多其他參數。

  • dumpe2fs
    這個程式將ext2檔案系統狀態輸出到標準的設備上。它對於分析問題以及存取一般關於檔案系統用法的資訊是有幫助的。

  • mke2fs
    這個程式允許我們在先前尚未格式化的磁碟中,去建立一個ext2的檔案系統。 它提供了許多的選項包含區塊的大小、段落的大小、每一個inode的位元組到多種磁碟陣列的選項。 mke2fs通常在第一次安裝的期間執行,並建立完成新的 root 及其他的檔案系統。(就相當於 DOS 底下的 format 程式啦!)

  • badblocks
    這個程式去搜尋磁碟並檢查區塊是否已經損壞,它通常會在新的檔案系統安裝程式前執行, 但請不要在掛載好的檔案系統上執行。
在Linux檔案系統中最新的版本被稱為ext3,並已有 Journaling 之支援。Journaling 檔案系統對於所有已完成的步驟,持有記錄以及檢查點,所以假使系統當機時,它可以從最後的檢查點來還原檔案系統。

為何選擇 EXT3 呢
全文出處: http://www.linuxplanet.com/linuxplanet/reports/3726/1/

Red Hat Linux 7.2 為何決定採用ext3檔案系統?

Red Hat決定在7.2版中使用 ext3 的格式來作為預設的檔案系統在,引起相當多熟悉 Linux 使用者的關注,但 ext3 並不是唯一的,也不是眾多日誌式 (journaling)檔案系統中最佳的。

傳統的 Linux 檔案系統 ext2,對於在相當小容量的硬碟上之小檔案而言是相當的理想。隨著硬碟的容量及檔案大小大幅增加, 整體性能會下滑。有些原因是來自讀取未有效利用的磁碟空間,有些原因是來自不正常關機或是電源中斷檔案系統的恢復時間。 檔案系統經由 e2fsck 在一個 1GB 的硬碟做檢查是毫不費力的,但相同的測試在 40GB 的硬碟上可能會相當的秏費時間。 所以就有日誌式檔案系統的誕生。

這些記錄硬碟狀態的檔案稱為日誌。 所以在不正確關機之後重新啟動需要參考到日誌檔案來重新回復檔案系統的狀態, 而非將整個硬碟做掃描。 同時, 日誌式檔案系統可以有更高的硬碟空間使用效率及使資料在各種不同之檔案大小中能夠快速的讀取及寫入。

Linux並不是只有一個日誌式的檔案系統,它有四個,或是說成三又二分之一個:
  • Reiser檔案系統: 依照 Hans Reiser 的名字而取。Reiser 是眾所皆知的一種新式快速記錄硬碟內容的檔案系統,它曾經被廣泛的使用超過一年, 且這個檔案系統被推薦安裝在 SuSE7.1版及7.2版上。

  • JFS檔案系統:經由 IBM 所開發的,其設計的理念在於提供一高速的處理能力。 IBM 從 2000 年 2 月間開始經過一系列的測試版本,它的 1.0 版本已在六月底公開發表。

  • XFS 檔案系統:XFS 是 SGI 公司在 Linux 上所開發的日誌式檔案系統, 它也提供了所有以完整發展為特色的日誌式檔案系統。

  • ext3 檔案系統:ext3 是之前所提及的二分之一日誌式檔案系統。 為何只有一半呢?原因是 ext3 是一種疊在傳統 ext2 檔案系統上面並保有磁碟活動紀錄的日誌式檔案系統。 所以當不正確關機時,檔案的恢復速度會比 ext2 檔案系統來的快。但是,因為它是被結合在 ext2 中,它會遭受到一些老舊系統的限制並因此不能利用所有日誌式檔案系統的完整功能。 這樣並非是完全不好,因為 ext3 分割區並沒有不同於 ext2 檔案系統,因此如 ext3 損毀要回到 ext2檔案系統卻是非常的簡單。
Red Hat 是第一個採用 ext3 的公司,它嘗試性的將 Linux 檔案系統推向日誌式檔案系統。當公司計畫在 7.2 版的第二個測試版本採用 ext3 時,公司中首席核心開發者Michael K. Johnson便迅速的提供一個原理的闡述:

”為什麼你想要從 ext2 轉換到 ext3 呢?有四個主要的理由: 可利用性、資料完整性、速度及易於轉換”。可利用性,他指出,這意味著從系統中止到快速重新復原而不是持續的讓 e2fsc k執行長時間的修復。ext3 的日誌式條件可以避免資料毀損的可能。他也指出”除了寫入若干資料超過一次時, ext3 往往會較快於 ext2,因為 ext3 的日誌使硬碟讀取頭的移動能更有效的進行“。 然而或許決定的因素還是在Johnson先生的第四個理由中:

“它是可以輕易的從 ext2 變更到 ext3 來獲得一個強而有力的日誌式檔案系統而不需要重新做格式化” 他說道。”那是正確的,為了體驗一下 ext3 的好處是不需要去做一種長時間的, 冗長乏味的且易於產生錯誤的備份工作及重新格式化的動作”。

其他連結
環境工程模式篇
鳥園討論區
鳥哥舊站

今日 人數統計
昨日 人數統計
本月 人數統計
上月 人數統計