複製鏈接
請複製以下鏈接發送給好友

HFS+

鎖定
HFS+文件系統是Apple電腦中默認的最常見的文件系統。HFS+來源於UNIX,但是又不用於UNIX,它增加了許多新的特性,同時也有許多不同於Windows、UNIX等系統的概念。HFS+是蘋果公司為替代他們的分層文件系統(HFS)而開發的一種文件系統。它被用在macintosh電腦(或者其他運行Mac OS的電腦)上。它也是iPod上使用的其中一種格式。HFS+也被稱為Mac OS Extended(或誤稱為“HFS Extended”)。在開發過程中,蘋果公司也把這個文件系統的代號命名為“Sequoia”
HFS+是一個HFS的改進版本,支持更大的文件,並用Unicode來命名文件或文件夾,代替了Mac OS Roman或其他一些字符集. 和HFS一樣,HFS+也使用B樹來存儲大部分分卷元數據。

HFS+HFS+文件系統的發展

早期的Apple電腦使用MFS文件系統,它是一種平面文件系統。到了1985年9月17日,Apple發佈了HFS文件系統,它取代了MFS成為Apple電腦上新的文件系統。
1998年1月19日,Apple在其最新發布的Mac OS 8.1系統中推出HFS plus 文件系統,也寫作“HFS+”,同時HFS+文件系統也被稱為Mac OS Extended (Mac OS擴展系統)。HFS+文件系統改善了HFS對磁盤空間地址定位效率低下的問題,並加入了很多新的改進。
2002年11月11日,Apple推出了Mac OS X v10.2.2版本,該版本在HFS+文件系統中增加了可選日誌功能,以提高數據的可靠性。但日誌型的HFS+主要應用於Mac OS X的服務器中,客户端則需要通過命令行的方式訪問日誌型的HFS+文件系統。
2003年10月24日,在Apple發佈的Mac OS X v10.3版本中,HFS+文件系統全面地支持日誌功能,所有的HFS+宗卷將被默認為日誌型HFS+文件系統,並且這種具有日誌功能的HFS+宗卷被定義為“HFSJ”

HFS+HFS+文件系統的特點

相對於HFS,HFS+文件系統主要有以下特點。
支持更多的塊
Mac系統把硬盤內的空間分為一個個的邏輯塊,每個邏輯塊大小為512字節,所以邏輯塊其實就是扇區。文件系統中文件的分配單元並不是扇區,而是分配塊,每個分配塊的大小為2扇區,所以分配塊也就相當於FAT文件系統及NTFS文件系統中的簇。
HFS用16位記錄塊的數量,這樣在一個宗卷中最多可以管理2個塊。而HFS+用32為記錄塊的數量,所以一個宗卷中最多可以管理2個塊。
對於相同大小的宗卷,塊數增加了就意味着可以減小塊的大小,這樣就可以減小存儲空間的浪費,同時也能夠增加文件系統中存儲文件的個數。
支持更大的文件
在HFS文件系統中,文件的大小用32位描述,而在HFS+文件系統中用64為描述,所以能夠支持更大的文件。
支持更長的文件名
HFS文件系統的文件名只能達到31個字符的長度,而HFS+文件系統則支持255個字符長度的Unicode碼文件名。
支持更大的節點
HFS文件系統的節點大小為512字節,而HFS+文件系統則支持4096字節的節點。

HFS+HFS+文件系統的元文件

HFS+文件系統中有5種特殊的文件,用來保存文件系統結構的數據性數據和屬性,我們稱這5個文件為“元文件”,它們分別是分配文件、盤區溢出文件、編錄文件、屬性文件、啓動文件。
HFS+文件系統的元文件只有數據分支,沒有資源分支,它們的起始地址和大小都在文件系統的卷頭中描述。

HFS+分配文件

分配文件的作用是描述文件系統中的塊是空閒的還是已被佔用,它相當於NTFS文件系統中的位圖文件。

HFS+盤區溢出文件(Extents )

HFS+文件系統的“盤區”是為“分支”分配的一系列連續的塊,並用“起始塊號”和“塊數”描述“盤區”的所在地址。對於一個用户文件,每個分支前8個盤區信息保存在宗卷的編錄文件中,如果文件的分支大於8個盤區,超出的盤區信息存放在“盤區溢出文件”中,文件系統只要通過跟蹤“分支”的“盤區”就能確定塊的具體歸屬了。
另外,盤區溢出文件也可以為元文件保存除盤區溢出文件自身以外的其他附加盤區信息,不過有一個元文件例外,這個例外就是啓動元文件。如果啓動文件需要的盤區數量大於在卷頭中所描述的8個,也因此而需要用盤區溢出文件來保存的話,系統對它的訪問就會變得很困難,也就無法達到快速啓動的目的。所以,在實際中啓動文件將單獨保存,這樣就不需要在盤區溢出文件中保存它的額外盤區信息了。

HFS+編錄文件(Catalog File)

編錄文件用來描述文件系統內的文件和目錄的層次結構,該文件內存存儲着文件系統中所有文件和目錄的重要信息。
編錄文件用B—樹的形式組織目錄結構,B—樹能夠快速而有效地在一個層次很多的大目錄中尋找目標文件。

HFS+屬性文件

屬性文件的作用是保存文件及目錄的附加信息,它的組織結構與編錄文件一樣,都採用B—樹結構。

HFS+啓動文件(Startup File)

啓動文件是一個為了從HFS+宗捲上啓動非Mac OS系統而設置的元文件。
另外,在HFS+文件系統中還有一個特殊的文件,用來管理文件系統中有缺陷的塊地址,該文件被稱為“壞塊文件”。

HFS+HFS+文件系統結構

HFS+宗卷的前兩個扇區是保留不用的,一般為空扇區,沒有任何數據,但這兩個保留不用的扇區所在的塊在分配文件內會被標記為“已使用” [1] 
宗卷的第三個扇區也就是2號扇區稱為“卷頭”。
文件系統中的5個元文件並沒有被存放在一起,而是在宗卷中分佈存儲,它們的地址在卷頭中有具體的描述。
在宗卷的倒數第二個扇區處,是卷頭的一個備份,最後一個扇區則保留不用。
如果宗卷所包含的扇區數不是塊大小的整數倍,那麼宗卷的最後一個塊的後面就會有不夠一個塊大小的幾個扇區,這幾個扇區不再文件系統的塊計數之內,這時備份卷頭的位置就會在最後一個塊之外,在這種情況下,最後一個塊也會被保留而不被佔用。
參考資料
  • 1.    劉偉.數據恢復技術深度揭秘:電子工業出版社,2010