標籤:檔案系統 dbr 作業系統引導記錄
要想瞭解檔案系統,不得不熟悉DBR,下面我們一起來解析一下DBR中的資料。
Dos Boot Record(DBR)作業系統引導記錄是由作業系統的格式化程式建立的,在檔案系統驅動操作任何一個磁碟卷時,這一部分的資訊將被讀取並作為檔案系統在這個磁碟卷上的參數被使用。它包含了有效引導程式、廠商標誌、BPB資料區塊等。
1.那麼怎麼得到DBR呢?它位於分區的第一個扇區。而分區的地址可以從磁碟的第一個分區的分區表項中獲得。
具體可參考http://blog.csdn.net/liyun123gx/article/details/38420665
2.分析本扇區資料
下面是一個DBR的資訊
(注意 資料以小端格式儲存的)
0x11~0x02: 3個位元組,跳轉指令。跳轉到DBR後面一點的引導程式處。引導程式是一段用來載入真正作業系統的程式。
0x03~0xA: 8個位元組,OEM串。本例中是MSDOC5.0
0X0B~0X0C: 2個位元組,每扇區的位元組數。本例是0X0200,512
0X0D 1個位元組,每簇的扇區數。本例是0x8
0X0E~0X0F: 2個位元組,保留扇區數。本例是0x0026
0X10: 1個位元組,FAT表個數。本例是0x02
0X11~0X12: 2個位元組,根目錄最多可容納的目錄項數。FAT12和FAT16通常為512,FAT32不使用此值,為0.本例中是FAT32,所以為0.
0X13~0X14: 2個位元組,扇區總數。小於32MB時使用該處存放,超過32MB的使用位移0x20~-x23位元組處的4位元組存放。本例中磁碟為7G多,故為0.
0X15: 1個位元組,介質描述。本例中0XF8表示本地硬碟。
0X16~0X17: 2個位元組,每個FAT表的扇區數。同樣,FAT32不使用,為0.
0X18~0X19: 2個位元組,每個磁軌的扇區數。本例是0X3F,63
0X1A~0X1B: 2個位元組,磁頭數。本例是0XFF,255
0X1C~0X1F: 4個位元組,分區前已經使用的扇區數。本例是 0X 00 00 00 3F,63
0X20~0X23: 4個位元組,檔案系統扇區數。本例是 0X00 EA 58 78,15358072
0X24~0X27: 4個位元組,每個FAT表的扇區數。本例是 0X00 00 3A 79,14969
0X28~0X29: 2個位元組,標記。
0x2A~0x2B: 2個位元組,版本號碼。
0x2C~0x2F: 4個位元組,根目錄簇號,2。(雖然在FAT32檔案系統下,根目錄可以存放在資料區的任何位置,但是通常情況下還是起始於2號簇)
0x30~0x31: 2個位元組,FSINFO(檔案系統資訊扇區)扇區號,1。該扇區為作業系統提供關於空簇總數及下一可用簇的資訊。
0x32~0x33: 2個位元組,備份開機磁區的位置,6。備份開機磁區總是位於檔案系統的6號扇區。
0x34~0x3F: 12個位元組,未使用。
0x40~0x40: 1個位元組,BIOS INT 13H 裝置號,0x80。
0x41~0x41: 1個位元組,未用。
0x42~0x42: 1個位元組,擴充引導標誌。0x29。
0x43~0x46: 1個位元組,卷序號。通常為一個隨機值。
0x47~0x51: 11個位元組,卷標(ASCII碼),如果建立檔案系統的時候指定了卷標,會儲存在此。本例中是NO NAME
0x52~0x59: 8個位元組,檔案系統格式的ASCII碼,FAT32。
0x5A~0x1FD: 410個位元組,未使用。該部分沒有明確的用途。
0x1FE~0x1FF: 簽名標誌“55 AA”。
3.FAINFO資訊扇區
FAINFO一般位於檔案系統的1號扇區,就是DBR的下一個扇區。
下面介紹一下FSINFO的結構
0x00~0x03: 4個位元組,擴充引導標誌“52526141”。
0x04~0x1E3: 480個位元組,未使用,全部置0。
0x1E4~0x1E7: 4個位元組,FSINFO簽名“72724161”。
0x1E8~0x1EB: 4個位元組,檔案系統的空簇數,41207688(0x00 12 6D 88)。
0x1EC~0x1EF: 4個位元組,下一可用簇號,663(0x00 00 02 97)。
0x1F0~0x1FD: 14個位元組,未使用。
0x1FE~0x1FF: 2個位元組,“55 AA”標誌。
注意:通常情況下,檔案系統的2號扇區結尾也會被設定“55 AA”標誌。6號扇區也會有一個開機磁區的備份,相應的,7號扇區應該是一個備份FSINFO資訊扇區。8號扇區可以看做是2號扇區的備份,它的結尾也會有一個“55 AA”標誌。