1 HFS文件系統(tǒng)概念
分層文件系統(tǒng)(Hierarchical File System,HFS)是一種由蘋果電腦開(kāi)發(fā),并使用在Mac OS上的文件系統(tǒng)。最初被設(shè)計(jì)用于軟盤和硬盤,同時(shí)也可以在在只讀媒體如CD-ROM上見(jiàn)到。
2 HFS文件系統(tǒng)開(kāi)發(fā)過(guò)程
HFS 首次出現(xiàn)在1985年9月17日,作為Macintosh電腦上新的文件系統(tǒng)。它取代只用于早期Mac型號(hào)所使用的平面文件系統(tǒng)Macintosh File System(MFS)。因?yàn)镸acintosh電腦所產(chǎn)生的數(shù)據(jù),比其它通常的文件系統(tǒng),如DOS使用的FAT或原始Unix文件系統(tǒng)所允許存儲(chǔ)的數(shù)據(jù) 更多。蘋果電腦開(kāi)發(fā)了一種新式更適用的文件系統(tǒng),而不是采用現(xiàn)有的規(guī)格。例如,HFS允許文件名最多有31個(gè)字符的長(zhǎng)度,支持metadata和雙分支 (每個(gè)文件的數(shù)據(jù)和資源支分開(kāi)存儲(chǔ))文件。
盡管HFS象其它大多數(shù)文件系統(tǒng)一樣被視為專有的格式,因?yàn)橹挥兴鼮榇蠖鄶?shù)最新的操作系統(tǒng)提供了很好的通用解決方法以存取HFS格式磁盤。
在1998年,蘋果電腦發(fā)布了HFS Plus,其改善了HFS對(duì)磁盤空間的地址定位效率低下,并加入了其它的改進(jìn)。當(dāng)前版本的Mac OS仍舊支持HFS,但從Mac OS X開(kāi)始HFS卷不能作為啟動(dòng)用。
3 構(gòu)成方式
分層文件系統(tǒng)把一個(gè)卷分為許多512字節(jié)的“邏輯塊”。這些邏輯塊被編組為“分配塊”,這些分配塊可以根據(jù)卷的尺寸包含一個(gè)或多個(gè)邏輯塊。HFS對(duì)地址分配塊使用16位數(shù)值,分配塊的最高限制數(shù)量是65536。
組成一個(gè)HFS卷需要下面的五個(gè)結(jié)構(gòu):
1.卷的邏輯塊0和1是啟動(dòng)塊,它包含了系統(tǒng)啟動(dòng)信息。例如,啟動(dòng)時(shí)載入的系統(tǒng)名稱和殼(通常是Finder)文件。
2.邏輯塊2包含主目錄塊(Master Directory Block,簡(jiǎn)稱MDB)。
3.邏輯塊3是卷位圖(Volume Bitmap)的啟動(dòng)塊,它追蹤分配塊使用狀態(tài)。
4.總目錄文件(Catalog File)是一個(gè)包含所有文件的記錄和儲(chǔ)存在卷中目錄的B*-tree。
5.擴(kuò)展溢出文件(Extent Overflow File)是當(dāng)最初總目錄文件中三個(gè)擴(kuò)展占用后,另外一個(gè)包含額外擴(kuò)展記錄的分配塊對(duì)應(yīng)信息的B*-tree。

4 HFS和HFS+文件系統(tǒng)異同比較
HFS+文件系統(tǒng)是HFS 文件系統(tǒng)的更新版本,它改進(jìn)了HFS 文件系統(tǒng)的結(jié)構(gòu)和對(duì)數(shù)據(jù)管
理中存在的不足。HFS+文件系統(tǒng)的主要特點(diǎn)體現(xiàn)在以下幾個(gè)方面:
(1)采用32bit 記錄分配塊數(shù)量
HFS 和HFS+文件系統(tǒng)對(duì)磁盤卷采用分塊進(jìn)行分配,將一個(gè)卷分成等大的分配塊。HFS
文件系統(tǒng)采用16bit 來(lái)記錄分配塊的數(shù)量,最多只能描述216個(gè)分配塊。而對(duì)于HFS+文件系
統(tǒng),采用32bit 來(lái)記錄分配塊的數(shù)量,最多能描述232 個(gè)分配塊。對(duì)于Mac 系統(tǒng)上的非空數(shù)
據(jù),都必須占用整數(shù)個(gè)分配塊,也就是說(shuō),即使一個(gè)數(shù)據(jù)只有一個(gè)字節(jié),也要占用一個(gè)分配
塊。而HFS+文件系統(tǒng)增大了每個(gè)卷分配塊的數(shù)量,可以使分配塊的單位空間更小,從而達(dá)
到減少存儲(chǔ)空間浪費(fèi)的目的。
(2)目錄樹(shù)節(jié)點(diǎn)大小增加到4KB
HFS 文件系統(tǒng)的目錄樹(shù)節(jié)點(diǎn)大小為512 字節(jié),由于HFS+文件系統(tǒng)目錄樹(shù)索引節(jié)點(diǎn)需要
存儲(chǔ)附加指針和節(jié)點(diǎn)描述符兩個(gè)關(guān)鍵值,HFS+文件系統(tǒng)的目錄樹(shù)節(jié)點(diǎn)大小增加到4KB。
(3)單一文件大小得到提升
HFS 文件系統(tǒng)的單一文件大小上限為231bit,而HFS+文件系統(tǒng)的單一文件大小最大可
達(dá)到263bit。
(4)支持長(zhǎng)文件名
HFS 文件系統(tǒng)對(duì)文件名最長(zhǎng)支持到31 個(gè)字符,而HFS+文件系統(tǒng)對(duì)文件名采用Unicode
編碼,最長(zhǎng)達(dá)到255 個(gè)字符。
5 HFS文件系統(tǒng)恢復(fù)案例詳解
在HFS+文件系統(tǒng)里,卷頭位于卷的2號(hào)扇區(qū),并在卷尾倒數(shù)第二個(gè)扇區(qū)有個(gè)備份,下圖是一個(gè)完整的卷頭的圖:

各字節(jié)含義:
0x00~0x01:2個(gè)字節(jié),簽名標(biāo)志0x482B(H+);
0x02~0x03:2個(gè)字節(jié),版本;
0x04~0x07:4個(gè)字節(jié),屬性;
0x08~0x0B:4個(gè)字節(jié),最后裝載版本;
0x0C~0x0F:4個(gè)字節(jié),日志信息塊;
0x10~0x13:4個(gè)字節(jié),建立時(shí)間;
0x14~0x17:4個(gè)字節(jié),修改時(shí)間;
0x18~0x1B:4個(gè)字節(jié),備份時(shí)間;
0x00~0x23:4個(gè)字節(jié),文件數(shù);
0x24~0x27:4個(gè)字節(jié),文件夾數(shù);
0x28~0x2B:4個(gè)字節(jié),分配塊大小字節(jié)數(shù),默認(rèn)為4096;
0x2C~0x2F:4個(gè)字節(jié),總塊數(shù);
0x30~0x33:4個(gè)字節(jié),空閑塊數(shù);
0x34~0x37:4個(gè)字節(jié),下一個(gè)分配塊號(hào);
0x38~0x3B:4個(gè)字節(jié),資源交叉組大小;
0x3C~0x3F:4個(gè)字節(jié),數(shù)據(jù)交叉組大?。?/div>
0x40~0x43:4個(gè)字節(jié),下一目錄ID;
0x44~0x47:4個(gè)字節(jié),寫入計(jì)數(shù);
下圖是winhex模板分析的結(jié)果

轉(zhuǎn)載請(qǐng)注明:成都千喜數(shù)據(jù)恢復(fù)中心 » 蘋果分區(qū)HFS文件系統(tǒng)介紹