天天看點

FAT16檔案系統之DBR(二)

FAT16檔案系統的DBR由5部分組成,跳轉指令,OEM,BPB,引導程式,結束标志

FAT16檔案系統之DBR(二)

1:跳轉指令

         跳轉指令本身占用2位元組,它将程式執行流程跳轉到引導程式處。例如,目前DBR中的“EB 3C”,就是代表彙編語言中的“JMP 3C”。需要注意該指令本身占用2個位元組,計算跳轉目标位址時該指令的下一個位元組為基準,是以實際上執行的下一條指令應該位于3E。緊接着跳轉是一條空的指令NOP(90H)

2:OEM代号

         占用8個位元組,這個說明了微軟不同的作業系統版本。修改這個值不影響檔案系統的使用。

3:BPB(BIOSParameter Block,BIOS參數塊)

         BPB從DBR的第12個位元組開始,占用51個位元組,記錄了有關該檔案系統的重要資訊,其中各個參數的含義見下表

位元組偏移 字段長度 字段名與定義
0X0B 2 每扇區位元組數
0X0D 1 每簇扇區數
0X0E 2 DBR及保留扇區數
0X10 1 FAT個數
0X11 2 根目錄最大所能容納的目錄項數
0X13 2 扇區總數
0X15 1 媒體描述符
0X16 2 每FAT表包含的扇區數
0X18 2 每磁道扇區數
0X1a 2 磁頭數
0X1C 4 隐藏扇區數
0X20 4 扇區總數,大于32M的分區扇區總數記錄在這裡
0X24 1 BIOS驅動器号
0X25 1 未使用
0X26 1 擴充引導标記
0X27 4 卷序列号
0X2B 11 卷标
0X36 8 檔案系統類型

下面對這些參數做詳細的分析

(1)      每扇區位元組數

每扇區位元組數記錄每個邏輯扇區的大小,其常見的值為512,但是并不是固定的值。該值可以由程式定義,合法值包括512,1024,2048,4096。

(2)      每簇扇區數

每簇扇區數記錄着檔案系統的簇大小,即由多少個扇區組成一個簇。

簇是FAT12,FAT16及FAT32檔案系統下資料的最小存儲單元,一個簇由一組連續的扇區組成,簇所含的扇區數必須是2的整數次幂,如1,2,4,8,16,32,64,128.

在Windows 2000以前族最大值為64扇區,之後最大值為128.

在FAT檔案系統中,所有的族是從2開始編号,每個簇都有一個自己的位址編号,但是所有的族都位于資料區,在資料區之前沒有族。

(3)      DBR及保留扇區數

DBR及保留扇區數是DBR到FAT1表之間的扇區數,或者說是FAT1的開始扇區号

(4)      FAT個數

一般為2.

(5)      根目錄項數

根目錄項數是指FAT16的FDT中最大所能容納的目錄項數,這個數值一般都是512,也就是說FDT中隻能存放512個目錄項,而每一個目錄項的大小為32位元組。

(6)      分區總扇區數

小于32M的分區記錄在這裡,因為這個位置隻有2個位元組,也就是16位,是以能管理的最大分區為216 * 512 = 32M。對于大于32M的分區,用32位記錄在20H-23H偏移處。

(7)      媒體描述符

媒體描述符是描述磁盤媒體的參數,根據磁盤性質的不同,取不同的值

如F8  硬碟

     F9  雙面5.25英寸軟碟(15扇區高密度),雙面3.5英寸軟碟

。。。。。。。。。。。。。。。。不一一列舉了。

(8)      每FAT扇區數

(9)      每磁道扇區數

其值一般為63.

(10)磁頭數

                其值一般為255.

(11)隐藏扇區數

是MBR到DBR之間的扇區數,對于擴充分區中邏輯驅動順來說,是其EBR到DBR之間的扇區數。

(12)分區總扇區數

(13)BIOS驅動器号

                這是BIOS的INT 13H所描述的裝置号碼,一般把硬碟定義為8xh.

(14)擴充引導标記

                用來确認後面的三個參數是否有效,一般值為29H

(15)卷序列号

(16)卷标

                不在這裡進行記錄,放到目錄項中來管理

(17)檔案系統類型

                使用ASCII碼記錄目前分區的檔案系統類型

4:引導程式

                Fat16的DBR引導程式占用448個位元組,在98 之前的系統之下,這段代碼負責完成DOS三個系統檔案的裝入; 2000之後的系統中,其負責完成将系統檔案NTLDR裝入。對于一個沒有作業系統的分區來講,這段代碼是沒有作用的。

5:結束标志

         為固定值“55 AA”