FAT文件系統

一、分區與分區表

分區和卷是一個經常換着使用的術語。通常情況下沒有什麼問題,因爲他們是同一件事情。只是說法上稍有不同而已。當然,理解這兩個術語之間的差異也是成爲專業的調查人員所必須掌握的一部分。一個分區是一系列的連續的扇區所組成的,這些扇區由一個文件系統來進行編址。一個卷,是一組編址的扇區,可以用於組織並存儲相關的數據。這些可以編址的地址可以是不連續的―― 這就是他們之間的不同。

 

當卷只由一個分區組成的時候,他們在功能上是一致的。當卷跨越了多個分區或者磁盤的時候,這個區別就很明顯了。卷是邏輯的存儲單元,並由操作系統分配了一個盤符。從理論上來講,絕大多數的操作系統可以支持24個卷,從C到Z。A和B是保留供軟盤使用的。如果在系統上只安排一塊物理硬盤,在理論上來講可以分爲24個卷。但從我們對MBR的討論來看,我們最有64個字節可以用來跟蹤分區的分配,每個分區只可以用16個字節,最多可以有4個分區。那麼他們是如何來組織24個分區的呢?

 

答案就是擴展分區。在定義的4個分區裏,至少得有一個是擴展分區。分配到擴展分區的空間可以被進一步劃分爲更小的分區。每個子分區都包含一個分區表,它位於該分區的第一個扇區 。每個分區都指向下一個分區。按照這樣的方式可以擴展至24個分區,每個分區都這樣描述自己,並指向下一個,一直到最後一個分區。你很少會遇到比較少的分區的這種情況,在理論上講,你可以最多遇到24個分區。分區的類型也是可以由操作系統和主機來決定的。每16個字節中的第5個字節決定了分區的類型。在擴展分區及其子分區裏都是使用如上相同的設置。四個分區中的第一個字節決定了某一個分區是否爲活動分區,也就是啓動分區。只能存在一個活動分區,0x80表明它是活動分區。而其他的分區標識爲0x00。表1.1 定義了分區表的字段。

 

這些都是分區爲FAT12, FAT16, FAT32,及 NTFS 時的典型設置。基本都爲這一規則:

 

偏移(十進制)

名稱

長度

描述

446

啓動字節

1 字節

啓動狀態:0x80表示活動狀態,否則,它會是0x00

447

起始磁頭號

1 字節

對於CHS模式,這是起始磁頭號或者分區的駐面號

448

起始柱面與扇區號

2 字節(16 位)

對於CHS模式,起始柱面爲10位。而起 扇區爲6位。一共爲16位。

450

分區類型

1 字節

這爲分區和文件系統的類型。

451

結束磁頭號

1 字節

對於CHS模式,這是一個分區的結束 磁頭號。

452

結束柱面與扇區號

2 字節

對於CHS模式,結束柱面爲10位,而結束扇區爲6位,共16位。

454

相對扇區號

四字節(32比特或者DWORD)

對於LBA模式,這是分區之前的扇區數,也是該分區的起始扇區號。

458

總扇區號

四字節(32比特或者DWORD)

對於LBA模式,這是該分區裏的所有的扇區總和。

* 該字段將重複很多次,如果定義了分區的話,其他的起始點爲偏移462, 478, 和 494。

 

1 . 1 分區表字段的定義

 

經常使用的磁盤分區工具,如FDISK, DISKPART, 或者Disk Manager.。其他的常見的分區是Linux的EXT2/3 和Reiser,交換分區,Solaris (UFS), 和Mac OSX (HFS+), 這些分區在EnCase的版本5裏都支持。在Windows的操作系統裏,分區利用這些工具來傳遞操作系統。如果你需要建立其他的分區,你可以使用第三方的工具,如Symantec的PartitionMagic和V-Communications的Partition Commander。

 

使用磁盤管理器(在Windows 2000/XP),當你使用嚮導創建一個分區的時候,格式化是自動完成的。如果使用FDISK來創建分區的話,分區必須使用高級格式化命令。當你使用格式化命令來格式 化FAT12/16/32 分區時,將會發生下列過程:

1. 磁盤掃描該錯誤,然後把壞扇區標識出來。

2. 驅動器的頭將放在分區的第一個柱面,並寫入一個VBR。

3. FAT 1將寫入磁頭1的第二扇區。緊跟其後的爲FAT 1, FAT 2。FAT表爲空,除了標識爲壞簇的簇。

4. 寫入一個空白的根目錄。

5. 如果指定/s 這一參數,將傳遞系統文件。

6. 如果指定了/v 這一參數,將提示用戶輸入一個卷標。在使用FDISK或者磁盤分區處理的過程中,將會寫入MBR。它包括MBR的啓動代碼。同時,也將寫分區表項。在一個高級格式化的過程中,將寫入一個VBR,和其他的文件系統特徵。

我們提到了一些文件系統的名字,例如:FAT,NTFS和Linux。在本章裏,我們從頭到尾徹底地來了解FAT文件系統的內容結構和功能,並且我們還要了解CDFS文件系統,並跟大家瞭解如果在刪除分區之後如何查找並恢復分區表。

     FAT文件系統已經存在了近四分之一個世界了,而且還要陪伴我們不知多少年。它仍用於軟盤,閃存媒體,USB指盤中,而且還在繼續使用。Windows 2000默認爲FAT文件系統,Windows XP也可以選擇安裝爲FAT文件系統。所以,作爲一名計算機調查人員,你可能接觸到的很多案件涉及到FAT文件系統。

     在本章,你將瞭解到FAT文件系統的數據結構,主要由兩部分組成:文件分配表(FAT=File Allocation Table)和目錄項所組成。你將學習到目錄項是如何存儲文件名和屬性的(我們又把屬性稱爲元數據Metadata),以及FAT如何用來跟蹤數據存儲區域的分配狀態(是按照“簇”的方式來進行組織的),及它們之間是如何連接到一起並存儲數據的。

 你將理解FAT文件系統是如何交叉引用來應對比較大的數據存儲設備。最後,你將要了解各種CD文件系統和NTFS文件系統的各個組件。在這些不同的文件系統中,我們將同時向大家介紹它們之間的共同點與不同點。

FAT基礎

FAT文件系統的第一個組件是目錄項。在所有的FAT文件系統中(FAT12, FAT16, 和FAT32),每個文件和目錄項都被參考並且在一個獨立的表項中進行描述。目錄項是32個字節長,並且包括了文件或目錄的名字,它的長度、它的起始盤區(或者開始簇號),及其他的文件屬性或者元數據(創建時間,最後一次訪問時間,最後一次寫入的時間)。數據的內容並不存在於目錄項中,而是存儲於我們稱之爲“簇”的數據空間中。簇由一個或多個扇區組成,簇是文件或目錄能夠存儲的最小單元。如果一個文件的大小超過了一個簇的空間,它將會被分配另外的簇來存儲數據。目錄項只跟蹤起始扇區,但並不跟蹤文件所使用的其他簇。

 

在FAT文件系統中,一個主要的組件我們稱爲文件分配表(FAT--File Allocation Table)。在其他的功能中,如果一個文件超過了一個簇的話,可以跟蹤一個文件的簇的順序。FAT同時跟蹤簇的分配狀態,確保操作系統可以把數據存儲在可用的區域,並且存儲的數據不會被覆蓋。FAT同時也跟蹤壞的簇,以確保它們不會被使用。

 

隨着存儲器容量的越來越大的發展,相繼出現了FAT的三個版本,就是我們所說的FAT12,FAT16,FAT32。下列的數據描述了在一個FAT表中的一個項的大小。

 

在一個FAT12的系統中,目錄項是一個12個比特項的數組。每個12位比特的順序代表一個簇,從0開始,到卷的最後一個簇結束。理論上來講,一個12位比特可以表示4096個簇。但由於指定的簇是保留着的,所以FAT12最多可以支持4084個簇。

 

與此相類似,一個FAT16的文件系統有一個16個比特的目錄項,一個32位的FAT文件系統有32位的目錄項。考慮指定的保留值,一個FAT16的文件系統最多可以支持65,524個簇,一個FAT32文件系統理論上最多可以支持268,435,445個簇(但是因爲MBR的限制爲67,092,481簇,所以一個分區最多支持的容量爲2TB)。在FAT12/16及FAT32上還有一些區別,但主要體現在他們所支持的簇的數量上面,見表2.1.

 

FAT類型

最大可以支持的簇數

FAT12

4,084

FAT16

65,524

FAT32

67,092,481

 

表3 . 1 每一類的FAT類型所支持的最大扇區數

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章