FAT16文件系统之DBR(二)
FAT16文件系統(tǒng)的DBR由5部分組成,跳轉(zhuǎn)指令,OEM,BPB,引導(dǎo)程序,結(jié)束標(biāo)志
1:跳轉(zhuǎn)指令
???????? 跳轉(zhuǎn)指令本身占用2字節(jié),它將程序執(zhí)行流程跳轉(zhuǎn)到引導(dǎo)程序處。例如,當(dāng)前DBR中的“EB 3C”,就是代表匯編語言中的“JMP 3C”。需要注意該指令本身占用2個字節(jié),計算跳轉(zhuǎn)目標(biāo)地址時該指令的下一個字節(jié)為基準(zhǔn),所以實際上執(zhí)行的下一條指令應(yīng)該位于3E。緊接著跳轉(zhuǎn)是一條空的指令NOP(90H)
2:OEM代號
???????? 占用8個字節(jié),這個說明了微軟不同的操作系統(tǒng)版本。修改這個值不影響文件系統(tǒng)的使用。
3:BPB(BIOSParameter Block,BIOS參數(shù)塊)
???????? BPB從DBR的第12個字節(jié)開始,占用51個字節(jié),記錄了有關(guān)該文件系統(tǒng)的重要信息,其中各個參數(shù)的含義見下表
?
| 字節(jié)偏移 | 字段長度 | 字段名與定義 |
| 0X0B | 2 | 每扇區(qū)字節(jié)數(shù) |
| 0X0D | 1 | 每簇扇區(qū)數(shù) |
| 0X0E | 2 | DBR及保留扇區(qū)數(shù) |
| 0X10 | 1 | FAT個數(shù) |
| 0X11 | 2 | 根目錄最大所能容納的目錄項數(shù) |
| 0X13 | 2 | 扇區(qū)總數(shù) |
| 0X15 | 1 | 介質(zhì)描述符 |
| 0X16 | 2 | 每FAT表包含的扇區(qū)數(shù) |
| 0X18 | 2 | 每磁道扇區(qū)數(shù) |
| 0X1a | 2 | 磁頭數(shù) |
| 0X1C | 4 | 隱藏扇區(qū)數(shù) |
| 0X20 | 4 | 扇區(qū)總數(shù),大于32M的分區(qū)扇區(qū)總數(shù)記錄在這里 |
| 0X24 | 1 | BIOS驅(qū)動器號 |
| 0X25 | 1 | 未使用 |
| 0X26 | 1 | 擴(kuò)展引導(dǎo)標(biāo)記 |
| 0X27 | 4 | 卷序列號 |
| 0X2B | 11 | 卷標(biāo) |
| 0X36 | 8 | 文件系統(tǒng)類型 |
| ? | ? | ? |
| ? | ? | ? |
?
?
下面對這些參數(shù)做詳細(xì)的分析
(1)??????每扇區(qū)字節(jié)數(shù)
每扇區(qū)字節(jié)數(shù)記錄每個邏輯扇區(qū)的大小,其常見的值為512,但是并不是固定的值。該值可以由程序定義,合法值包括512,1024,2048,4096。
(2)??????每簇扇區(qū)數(shù)
每簇扇區(qū)數(shù)記錄著文件系統(tǒng)的簇大小,即由多少個扇區(qū)組成一個簇。
簇是FAT12,FAT16及FAT32文件系統(tǒng)下數(shù)據(jù)的最小存儲單元,一個簇由一組連續(xù)的扇區(qū)組成,簇所含的扇區(qū)數(shù)必須是2的整數(shù)次冪,如1,2,4,8,16,32,64,128.
在Windows 2000以前族最大值為64扇區(qū),之后最大值為128.
在FAT文件系統(tǒng)中,所有的族是從2開始編號,每個簇都有一個自己的地址編號,但是所有的族都位于數(shù)據(jù)區(qū),在數(shù)據(jù)區(qū)之前沒有族。
(3)??????DBR及保留扇區(qū)數(shù)
DBR及保留扇區(qū)數(shù)是DBR到FAT1表之間的扇區(qū)數(shù),或者說是FAT1的開始扇區(qū)號
(4)??????FAT個數(shù)
一般為2.
(5)??????根目錄項數(shù)
根目錄項數(shù)是指FAT16的FDT中最大所能容納的目錄項數(shù),這個數(shù)值一般都是512,也就是說FDT中只能存放512個目錄項,而每一個目錄項的大小為32字節(jié)。
(6)??????分區(qū)總扇區(qū)數(shù)
小于32M的分區(qū)記錄在這里,因為這個位置只有2個字節(jié),也就是16位,所以能管理的最大分區(qū)為216 * 512 = 32M。對于大于32M的分區(qū),用32位記錄在20H-23H偏移處。
(7)??????介質(zhì)描述符
介質(zhì)描述符是描述磁盤介質(zhì)的參數(shù),根據(jù)磁盤性質(zhì)的不同,取不同的值
如F8? 硬盤
?? ? F9? 雙面5.25英寸軟盤(15扇區(qū)高密度),雙面3.5英寸軟盤
。。。。。。。。。。。。。。。。不一一列舉了。
(8)??????每FAT扇區(qū)數(shù)
略
(9)??????每磁道扇區(qū)數(shù)
其值一般為63.
(10)磁頭數(shù)
??????????????? 其值一般為255.
(11)隱藏扇區(qū)數(shù)
是MBR到DBR之間的扇區(qū)數(shù),對于擴(kuò)展分區(qū)中邏輯驅(qū)動順來說,是其EBR到DBR之間的扇區(qū)數(shù)。
(12)分區(qū)總扇區(qū)數(shù)
(13)BIOS驅(qū)動器號
??????????????? 這是BIOS的INT 13H所描述的設(shè)備號碼,一般把硬盤定義為8xh.
(14)擴(kuò)展引導(dǎo)標(biāo)記
??????????????? 用來確認(rèn)后面的三個參數(shù)是否有效,一般值為29H
(15)卷序列號
(16)卷標(biāo)
??????????????? 不在這里進(jìn)行記錄,放到目錄項中來管理
(17)文件系統(tǒng)類型
??????????????? 使用ASCII碼記錄當(dāng)前分區(qū)的文件系統(tǒng)類型
4:引導(dǎo)程序
??????????????? Fat16的DBR引導(dǎo)程序占用448個字節(jié),在98 之前的系統(tǒng)之下,這段代碼負(fù)責(zé)完成DOS三個系統(tǒng)文件的裝入; 2000之后的系統(tǒng)中,其負(fù)責(zé)完成將系統(tǒng)文件NTLDR裝入。對于一個沒有操作系統(tǒng)的分區(qū)來講,這段代碼是沒有作用的。
5:結(jié)束標(biāo)志
???????? 為固定值“55 AA”總結(jié)
以上是生活随笔為你收集整理的FAT16文件系统之DBR(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UFT(QTP) 录制 回放 原理
- 下一篇: (转载)sql语句大全