硬盘最基本的组成部分是由坚硬金属材料制成的涂以磁性介质的盘片,不同容量硬盘的盘片数不等。每个盘片有两面,都可记录信息。盘片被分成许多扇形的区域,每个区域叫一个扇区,每个扇区可存储128×2的N次方(N=0.1.2.3)字节信息。在DOS中每扇区是128×2的2次方=512字节,盘片表面上以盘片中心为圆心,不同半径的同心圆称为磁道。硬盘中,不同盘片相同半径的磁道所组成的圆柱称为柱面。磁道与柱面都是表示不同半径的圆,在许多场合,磁道和柱面可以互换使用,我们知道,每个磁盘有两个面,每个面都有一个磁头,习惯用磁头号来区分。扇区,磁道(或柱面)和磁头数构成了硬盘结构的基本参数,帮这些参数可以得到硬盘的容量,基计算公式为:
存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数
要点:(1)硬盘有数个盘片,每盘片两个面,每个面一个磁头
(2)盘片被划分为多个扇形区域即扇区
(3)同一盘片不同半径的同心圆为磁道
(4)不同盘片相同半径构成的圆柱面即柱面
(5)公式: 存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数
(6)信息记录可表示为:××磁道(柱面),××磁头,××扇区
2.簇
“簇”是DOS进行分配的最小单位。当创建一个很小的文件时,如是一个字节,则它在磁盘上并不是只占一个字节的空间,而是占有整个一簇。DOS视不同的存储介质(如软盘,硬盘),不同容量的硬盘,簇的大小也不一样。簇的大小可在称为磁盘参数块(BPB)中获取。簇的概念仅适用于数据区。
本点:(1)“簇”是DOS进行分配的最小单位。
(2)不同的存储介质,不同容量的硬盘,不同的DOS版本,簇的大小也不一样。
(3)簇的概念仅适用于数据区。
3.扇区编号定义:绝对扇区与DOS扇区
由前面介绍可知,我们可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域,或是说柱面/磁头/扇区与磁盘上每一个扇区有一一对应关系,通常DOS将“柱面/磁头/扇区”这样表示法称为“绝对扇区”表示法。但DOS不能直接使用绝对扇区进行磁盘上的信息管理,而是用所谓“相对扇区”或“DOS扇区”。“相对扇区”只是一个数字,如柱面140,磁头3,扇区4对应的相对扇区号为2757。该数字与绝对扇区“柱面/磁头/扇区”具有一一对应关系。当使用相对扇区编号时,DOS是从柱面0,磁头1,扇区1开始(注:柱面0,磁头0,扇区1没有DOS扇区编号,DOS下不能访问,只能调用BIOS访问),第一个DOS扇区编号为0,该磁道上剩余的扇区编号为1到16(设每磁道17个扇区),然后是磁头号为2,柱面为0的17个扇区,形成的DOS扇区号从17到33。直到该柱面的所有磁头。然后再移到柱面1,磁头1,扇区1继续进行DOS扇区的编号,即按扇区号,磁头号,柱面号(磁道号)增长的顺序连续地分配DOS扇区号。
公式:记DH--第一个DOS扇区的磁头号
DC--第一个DOS扇区的柱面号
DS--第一个DOS扇区的扇区号
NS--每磁道扇区数
NH--磁盘总的磁头数
则某扇区(柱面C,磁头H,扇区S)的相对扇区号RS为:
RS=NH×NS×(C-DC)+NS×(H-DH)+(S-DS)
若已知RS,DC,DH,DS,NS和NH则
S=(RS MOD NS)+DS
H=((RS DIV NS)MOD NH)+DH
C=((RS DIV NS)DIV NH)+DC
要点:(1)以柱面/磁头/扇区表示的为绝对扇区又称物理磁盘地址
(2)单一数字表示的为相对扇区或DOS扇区,又称逻辑扇区号
(3)相对扇区与绝对扇区的转换公式
4.DOS磁盘区域的划分
格式化好的硬盘,整个磁盘按所记录数据的作用不同可分为主引导记录(MBR:Main Boot Record),Dos引导记录(DBR:Dos Boot Record),文件分配表(FAT:File Assign Table),根目录(BD:Boot Directory)和数据区。前5个重要信息在磁盘的外磁道上,原因是外圈周长总大于内圈周长,也即外圈存储密度要小些,可靠性高些。
要点:(1)整个硬盘可分为MBR,DBR,FAT,BD和数据区。
(2)MBR,DBR,FAT,和BD位于磁盘外道。
5.MBR
MBR位于硬盘第一个物理扇区(绝对扇区)柱面0,磁头0,扇区1处。由于DOS是由柱面0,磁头1,扇区1开始,故MBR不属于DOS扇区,DOS不能直接访问。MBR中包含硬盘的主引导程序和硬盘分区表。分区表有4个分区记录区。记录区就是记录有关分区信息的一张表。它从主引导记录偏移地址01BEH处连续存放,每个分区记录区占16个字节。
分区表的格式
分区表项的偏移 意义 占用字节数
00 引导指示符 1B
01 分区引导记录的磁头号 1B
02 分区引导记录的扇区和柱面号 2B
04 系统指示符 1B
05 分区结束磁头号 1B
06 分区结束扇区和柱面号 2B
08 分区前面的扇区数 4B
0C 分区中总的扇区数 4B
4个分区中只能有1个活跃分区,即C盘。标志符是80H在分区表的第一个字节处。若是00H则表示非活跃分区。例如:
80 01 01 00 0B FE 3F 81 3F 00 00 00 C3 DD 1F 00
00 00 01 82 05 FE BF 0C 02 DE 1F 00 0E 90 61 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
要点:(1)MBR位于硬盘第一个物理扇区柱面0,磁头0,扇区1处。不属于DOS扇区,
(2)主引导记录分为硬盘的主引导程序和硬盘分区表。
6.DBR
DBR位于柱面0,磁头1,扇区1,即逻辑扇区0。DBR分为两部分:DOS引导程序和BPB(BIOS参数块)。其中DOS引导程序完成DOS系统文件(IO.SYS,MSDOS.SYS)的定位与装载,而BPB用来描述本DOS分区的磁盘信息,BPB位于DBR偏移0BH处,共13字节。它包含逻辑格式化时使用的参数,可供DOS计算磁盘上的文件分配表,目录区和数据区的起始地址,BPB之后三个字提供物理格式化(低格)时采用的一些参数。引导程序或设备驱动程序根据这些信息将磁盘逻辑地址(DOS扇区号)转换成物理地址(绝对扇区号)。BPB格式
序号 偏移地址 意义
1 03H-0AH OEM号
2 0BH-0CH 每扇区字节数
3 0DH 每簇扇区数
4 0EH-0FH 保留扇区数
5 10H FAT备份数
6 11H-12H 根目录项数
7 13H-14H 磁盘总扇区数
8 15H 描述介质
9 16H-17H 每FAT扇区数
10 18H-19H 每磁道扇区数
11 1AH-1BH 磁头数
12 1CH-1FH 特殊隐含扇区数
13 20H-23H 总扇区数
14 24H-25H 物理驱动器数
15 26H 扩展引导签证
16 27H-2AH 卷系列号
17 2BH-35H 卷标号
18 36H-3DH 文件系统号
DOS引导记录公式:
文件分配表≡保留扇区数
根目录≡保留扇区数+FAT的个数×每个FAT的扇区数
数据区≡根目录逻辑扇区号+(32×根目录中目录项数+(每扇区字节数-1))DIV每扇区字节数
绝对扇区号≡逻辑扇区号+隐含扇区数
扇区号≡(绝对扇区号MOD每磁道扇区数)+1
磁头号≡(绝对扇区号DIV每磁道扇区数)MOD磁头数
磁道号≡(绝对扇区号DIV每磁道扇区数)DIV磁头数
要点:(1)DBR位于柱面0,磁头1,扇区1,其逻辑扇区号为0
(2)DBR包含DOS引导程序和BPB。
(3)BPB十分重要,由此可算出逻辑地址与物理地址。
7.文件分配表
文件分配表是DOS文件组织结构的主要组成部分。我们知道DOS进行分配的最基本单位是簇。文件分配表是反映硬盘上所有簇的使用情况,通过查文件分配表可以得知任一簇的使用情况。DOS在给一个文件分配空间时总先扫描FAT,找到第一个可用簇,将该空间分配给文件,并将该簇的簇号填到目录的相应段内。即形成了“簇号链”。FAT就是记录文件簇号的一张表。FAT的头两个域为保留域,对FAT12来说是3个字节,FAT来说是4个字节。其中头一个字节是用来描述介质的,其余字节为FFH 。介质格式与BPB相同。
第一个字节的8位意义:
7 6 5 4 3 2 1 0
└—————-┘ │ │ │┌0非双面
置1 │ │ └┤
│ │ └1双面
│ │┌0不是8扇区
│ └┤
│ └1是8扇区
│┌0不是可换的
└┤
└1是可换的
FAT结构含义
FAT12 FAT16 意义
000H 0000H 可用
FF0H-FF6H FFF0H-FFF6H 保留
FF7H FFF7H 坏
FF8H-FFFH FFF8H-FFFFH 文件最后一个簇
×××H ××××H 文件下一个簇
对于FAT16,簇号×2作偏移地址,从FAT中取出一字即为FAT中的域。
逻辑扇区号=数据区起始逻辑扇区号+(簇号-2)×每簇扇区数
簇号=(逻辑扇区号-数据区起始逻辑扇区号)DIV每簇扇区数+2
要点:(1)FAT反映硬盘上所有簇的使用情况,它记录了文件在硬盘中具体位置(簇)。
(2)文件第一个簇号(在目录表中)和FAT的该文件的簇号串起来形成文件的“簇号链”,恢复被破坏的文件就是根
据这条链。
(3)由簇号可算逻辑扇区号,反之,由逻辑扇区号也可以算出簇号,公式如上。
(4)FAT位于DBR之后,其DOS扇区号从1开始。
8.文件目录
文件目录是DOS文件组织结构的又一重要组成部分。文件目录分为两类:根目录,子目录。根目录有一个,子目录可以有多个。子目录下还可以有子目录,从而形成“树状”的文件目录结构。子目录其实是一种特殊的文件,DOS为目录项分配32字节。目录项分为三类:文件,子目录(其内容是许多目录项),卷标(只能在根目录,只有一个。目录项中有文件(或子目录,或卷标)的名字,扩展名,属性,生成或最后修改日期,时间,开始簇号,及文件大小。
目录项的格式
字节偏移 意义 占字节数
00H 文件名 8B
08H 扩展名 3B
0BH 文件属性 1B
0CH 保留 10B
16H 时间 2B
18H 日期 2B
1AH 开始簇号 2B
1CH 文件长度 4B
目录项文件名区域中第一个字节还有特殊的意义:00H代表未使用
05H代表实际名为E5H
EBH代表此文件已被删除
目录项属性区域的这个字节各个位的意义如下: 7 6 5 4 3 2 1 0
未 修 修 子 卷 系 隐 只
用 改 改 目 标 统 藏 读
标 标 录 属 属 属
志 志 性 性 性
注意:WINDOWS的长文件名使用了上表中所说的“保留”这片区域。
要点:(1)文件目录是记录所有文件,子目录名,扩展名属性,建立或删除最后修改日期。文件开始簇号及文件长度的一张
登记表.
(2)DOS中DIR列出的内容训是根据文件目录表得到的。
(3)文件起始簇号填在文件目录中,其余簇都填在FAT中上一簇的位置上。
9.物理驱动器与逻辑驱动器
物理驱动器指实际安装的驱动器。
逻辑驱动器是对物理驱动器格式化后产生的。
硬盘的dos管理结构 r VyQnVP9AnFsv"`t 1.磁道,扇区,柱面和磁头数
r d ~4H B)e6g@E $~2z&ASXo
硬盘最基本的组成部分是由坚硬金属材料制成的涂以磁性介质的盘片,不同容量硬盘的盘片数不等。每个盘片有两面,都可
V E5]rn6FEZ1X 1{i-rC^WC
记录信息。盘片被分成许多扇形的区域,每个区域叫一个扇区,每个扇区可存储128×2的n次方(n=0.1.2.3)字节信息。在dos
?/z$]p2L!_&PL6N&v3lo v6v xb2eG0],Zf
中每扇区是128×2的2次方=512字节,盘片表面上以盘片中心为圆心,不同半径的同心圆称为磁道。硬盘中,不同盘片相同半径
p%F @w |+NcG&cRd
R t(n5_[ j{W 的磁道所组成的圆柱称为柱面。磁道与柱面都是表示不同半径的圆,在许多场合,磁道和柱面可以互换使用,我们知道,每个磁 G!{Qg5J @
s7F|b7Pc 盘有两个面,每个面都有一个磁头,习惯用磁头号来区分。扇区,磁道(或柱面)和磁头数构成了硬盘结构的基本参数,帮这些 #DBLj7o6P-J ?y
h$dkeB"^-MF*A 参数可以得到硬盘的容量,基计算公式为:
hV*|}*}.^ rMg 5d M+m1aW8Yd({B9F1?
存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数 w Q+i:k ~}
#F8mDBP A+|+u 要点:(1)硬盘有数个盘片,每盘片两个面,每个面一个磁头
cVyc+y C6{+Tp HV| ]w$[
(2)盘片被划分为多个扇形区域即扇区 'b(pb_'p
gKf"e ~Od
(3)同一盘片不同半径的同心圆为磁道
8Z9Y3?G Uc-lZ
-c w3QX}V,u(4)不同盘片相同半径构成的圆柱面即柱面
OF9jbU0U5^n'A}3Ab .o!X-Bl9L
(5)公式: 存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数 Uog3_J!_-jZu
&O[N"SYL$h'g(6)信息记录可表示为:××磁道(柱面),××磁头,××扇区 3u9X)}Z a+[
J]dpOxOhZ 2.簇
5yUp@"BV?,^
?-J'I#tZ “簇”是dos进行分配的最小单位。当创建一个很小的文件时,如是一个字节,则它在磁盘上并不是只占一个字节的空间,
:SD]{ N0u.`+[ )~&lqD5LylxdS6n
而是占有整个一簇。dos视不同的存储介质(如软盘,硬盘),不同容量的硬盘,簇的大小也不一样。簇的大小可在称为磁盘
B5IflJ-Cn5X#Y
`Lu"_2^ q 参数块( )中获取。簇的概念仅适用于数据区。 ,?&} Y.SU7C[.g
(Q6xH2b Fc 本点:(1)“簇”是dos进行分配的最小单位。 NOGg@z7y$p
7bI Iv2?'UQ(2)不同的存储介质,不同容量的硬盘,不同的dos版本,簇的大小也不一样。 /gV eW|N5?
#BeP-C st2`v
(3)簇的概念仅适用于数据区。
y@!~ q'_#gg |$Jp|\$]1epj%g
3.扇区编号定义:绝对扇区与dos扇区
6X._"u1R.N9Im t
8s-M8n,{Rd 由前面介绍可知,我们可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域,或是说柱面/磁头/扇区与磁盘上每一个扇区有
0D8\}u~
A'U2gGj9k_9W#l 一一对应关系,通常dos将“柱面/磁头/扇区”这样表示法称为“绝对扇区”表示法。但dos不能直接使用绝对扇区进行磁盘上的 g&uK h@3@Q
O:V$M T3e 信息管理,而是用所谓“相对扇区”或“dos扇区”。“相对扇区”只是一个数字,如柱面140,磁头3,扇区4对应的相对扇区号 d8U+Xa:XF/x
P6ZGP-wB
为2757。该数字与绝对扇区“柱面/磁头/扇区”具有一一对应关系。当使用相对扇区编号时,dos是从柱面0,磁头1,扇区1开始 ^ s-^9t3qL0Z/Ox
Z ^ha5^{c (注:柱面0,磁头0,扇区1没有dos扇区编号,dos下不能访问,只能调用bios访问),第一个dos扇区编号为0,该磁道上剩余 wPR3S"@2i
9Y3r e6s Q%Gq 的扇区编号为1到16(设每磁道17个扇区),然后是磁头号为2,柱面为0的17个扇区,形成的dos扇区号从17到33。直到该柱面的 )\ YLi3xoH!F(A
2GjXt-N&Ynhu Wg
所有磁头。然后再移到柱面1,磁头1,扇区1继续进行dos扇区的编号,即按扇区号,磁头号,柱面号(磁道号)增长的顺序连续
7P:ul$x psR!I X
^*Bt OSo$]!BQ 地分配dos扇区号。 u_,K ekng ^_
c'^O(I_8Wue
公式:记dh--第一个dos扇区的磁头号
/o+zCCqg.JX v-e-L&W!b/Qe
dc--第一个dos扇区的柱面号
tQ1cz'X%nA'X `2W$h ye o ~[
ds--第一个dos扇区的扇区号
kS4l~"u%Og
*Obv]|X*C3QW --每磁道扇区数
F/n4k8_*S |!R n"] DU/qS,D}k$yly
nh--磁盘总的磁头数 !T@(V U)A$D
/ac A*Q.px a(hi$[则某扇区(柱面c,磁头h,扇区s)的相对扇区号rs为:
#D_TJ:sA~ZC
'`%_L9~1Rg rs=nh× ×(c-dc)+ ×(h-dh)+(s-ds) |cwn9I
?vw_'W若已知rs,dc,dh,ds, 和nh则
va]R` { L E#}1ef,Vx}
s=(rs mod )+ds Bs:z[c3oJY lR
j pm3@'jTyD!NdR h=((rs div )mod nh)+dh
&O{tAU Qo:[
a-zm3S^9L e0[ c=((rs div )div nh)+dc
y)NE8so u/Zp
Cf)`aDG 要点:(1)以柱面/磁头/扇区表示的为绝对扇区又称物理磁盘地址
)N@4QU`1~Yg
xN/Mgi5i#A?l(2)单一数字表示的为相对扇区或dos扇区,又称逻辑扇区号 T"Kxk'?7j
.N2C SMH2@.Ez(3)相对扇区与绝对扇区的转换公式 ~^0Y0oTc"_6m
ot6@6agy D 4.dos磁盘区域的划分 #jjF0c$E F c8j/c"Af
$b)F|5Lx#^Hy&p E[
格式化好的硬盘,整个磁盘按所记录数据的作用不同可分为主引导记录(mbr:main boot record),dos引导记录(dbros
V3B{x Vv*c1DEg c0]*q)tMwK8T^+Z"wK
boot record),文件分配表(fat:file a ign table),根目录(bd:boot directory)和数据区。前5个重要信息在磁盘的外 Dbx6E9a!xp j1b
Je}B5Y }A`
磁道上,原因是外圈周长总大于内圈周长,也即外圈存储密度要小些,可伤心性高些。 -qXnZ^,q7U P
6@$VV:MZt0I-Y 要点:(1)整个硬盘可分为mbr,dbr,fat,bd和数据区。
O tb W8I3g
'y#ObL+N(2)mbr,dbr,fat,和bd位于磁盘外道。
\T,I^K#x,?{,_x
W&Wo2o7M+o4k JP4\ 5.mbr
CA5{+N` Fs`L6a
6R Q-z_%j Ia mbr位于硬盘第一个物理扇区(绝对扇区)柱面0,磁头0,扇区1处。由于dos是由柱面0,磁头1,扇区1开始,故mbr不属于
ak!GCq@yeX
vu!c M'Y1O dos扇区,dos不能直接访问。mbr中包含硬盘的主引导程序和硬盘分区表。分区表有4个分区记录区。记录区就是记录有关分区信
^/TW*K9A }:z9v)J:^%b2b
FL)F_ k$g'Q0Z 息的一张表。它从主引导记录偏移地址01beh处连续存放,每个分区记录区占16个字节。
lX6nYiTy.z
8Kf-MP7H 分区表的格式 N8P^5|#@"G
N!e nr*V)e-xw%V] 分区表项的偏移 意义 占用字节数
4Ux#Z)Q)z H
2cD/PJ j7u8H8sj%\00 引导指示符 1b
v}mO8K0cI!M1\~ D
5k-]#`P P@01 分区引导记录的磁头号 1b
3g5}&`'N7V :s!n+ku j-u wt#L
02 分区引导记录的扇区和柱面号 2b MH k(mP"L3sv
2_b|#FC.@/d,r04 系统指示符 1b
xT~Lb
l*u`CW|-s"Ai05 分区结束磁头号 1b ns4E E9_)B vA#l
Y+zp!JIZ,C(GFg06 分区结束扇区和柱面号 2b $x*hnr0E`X1P
3npglhi(\^%y$o
08 分区前面的扇区数 4b .[ \{7_-l
[0l(g]b0c 分区中总的扇区数 4b
\9\N[1?R3I/r0f Gsg V@(NVy4l^ _
4个分区中只能有1个活跃分区,即c盘。标志符是80h在分区表的第一个字节处。若是00h则表示非活跃分区。例如:
e6V#gJb b9A K
TXU Qd1{ 80 01 01 00 0b fe 3f 81 3f 00 00 00 c3 dd 1f 00 iwW6s$JnIB
HuL.YH8j M 00 00 01 82 05 fe bf 0c 02 de 1f 00 0e 90 61 00 ap"r.J"o Ve
eM F P)b]4c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 QV"b6s])hl
%X` jF0oR 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 $g8y lT2r4y
(v"eSmBCZHW,]}Y
要点:(1)mbr位于硬盘第一个物理扇区柱面0,磁头0,扇区1处。不属于dos扇区, B@[{$?N d_&H6n
@wO3R_@?
(2)主引导记录分为硬盘的主引导程序和硬盘分区表。 `"HIE q(A
Z O1v(t${'p P
6.dbr
gM*@5l5k L/]1}
&W]SS7Ff dbr位于柱面0,磁头1,扇区1,即逻辑扇区0。dbr分为两部分:dos引导程序和 (bios参数块)。其中dos引导程序完成
o0HHs:m$l3~a9{i
.w!Swr8K3Vz4i dos系统文件(io.sys,msdos.sys)的定位与装载,而 用来描述本dos分区的磁盘信息, 位于dbr偏移0bh处,共13字节。
s"ai ge N9MUN *F?J sLpo8R
它包含逻辑格式化时使用的参数,可供dos计算磁盘上的文件分配表,目录区和数据区的起始地址, 之后三个字提供物理格
O1\aE#y,\8nc!T IjaEK2H
式化(低格)时采用的一些参数。引导程序或设备驱动程序根据这些信息将磁盘逻辑地址(dos扇区号)转换成物理地址(绝对
w%v ^ f0Tm
Ddsr l"h4^+F 扇区号)。 格式
4kTu(Z q%d k z PHqh$S0jKg5C/m*O
序号 偏移地址 意义 "y#t C ^,S/lLx+d
xpJ ]7}1o*Im`? 1 03h-0ah oem号 w1J2u ]:Sf~@`.qa
@Qd#o:E/Yn
2 0bh-0ch 每扇区字节数 1cg`WZ,l6p @+b&?S5\
"X#_.S'p!b/M*} M/[ h'} 3 0dh 每簇扇区数 fr V^B:}vt ]
^/b-H yZM 4 0eh-0fh 保留扇区数
#{E[ C7c B gvPi(}.c5j)FZ+p3I6B
5 10h fat备份数 *|0c$s%U({uq
4S3o8\*RhN$V6Z 6 11h-12h 根目录项数
7K km|}#Z"[
s5X0emn!U&c)n%VF 7 13h-14h 磁盘总扇区数
)r9E A\c0}p
t(f!NY4}+` q/f)w 8 15h 描述介质
0]-F1L*[B!j1T
&Y'y"]NKX 9 16h-17h 每fat扇区数
jL/m{/C,l!O
8\Z2_6k0r0`q7nsr} 10 18h-19h 每磁道扇区数 S{X-nc)N9w
EA,DxA XyU%l 11 1ah-1bh 磁头数
'N9Srl~:}L fg7b
"Qj9w(U-T0t H:AO 12 1ch-1fh 特殊隐含扇区数 4`(O6x?"PB"Q
lO n9Z+Lpk(z 13 20h-23h 总扇区数 xj0h&B uL9sy*e
sC z8E`K 14 24h-25h 物理驱动器数
J|9f}c
z{{'y%j-Z#^ 15 26h 扩展引导签证
Q2GDS_4T(]%t
1@F%sW+dX jB VSE 16 27h-2ah 卷系列号
:K8N'W d8m o#N ejA.k[tkY
17 2bh-35h 卷标号
:T*tN-[tEi)`9G `StVQk%Ys
18 36h-3dh 文件系统号 }:gEmB~ u q/il+ni
mjy"p"cz1M
dos引导记录公式:
W/h C(m F8`H
3|2H/op,W5`'} 文件分配表≡保留扇区数
'`,P!J:b L9uzkT9\ %j9K)}(],n:Jq
根目录≡保留扇区数+fat的个数×每个fat的扇区数
_1vGF \8^dN[,b
y7Hq0I EwbN(a)a%e 数据区≡根目录逻辑扇区号+(32×根目录中目录项数+(每扇区字节数-1))div每扇区字节数
QEsac X+C D?(]Z*R5g1Y1?9h
绝对扇区号≡逻辑扇区号+隐含扇区数
-xtSj$\%q S ~@(dD*]3G
扇区号≡(绝对扇区号mod每磁道扇区数)+1
aQ4{4|DKj
+RK`0}9pNa(V8Y4x 磁头号≡(绝对扇区号div每磁道扇区数)mod磁头数
G4GarH2r'A T X-s:L$]:B']| F
磁道号≡(绝对扇区号div每磁道扇区数)div磁头数
N Yg xD(_6@AO H fdh nD} n+D4y3X
要点:(1)dbr位于柱面0,磁头1,扇区1,其逻辑扇区号为0
&O8]^uba^+I
(qYE3Gzg1T(2)dbr包含dos引导程序和 。
5K'IYZ `
zA!gnpMF0Q!s(3) 十分重要,由此可算出逻辑地址与物理地址。 .t&BTJ%~
gbHcgO 7.文件分配表
IwB3h A6Hf8u5Q
F%k+N@#AS`V/\$u 文件分配表是dos文件组织结构的主要组成部分。我们知道dos进行分配的最基本单位是簇。文件分配表是反映硬盘上所
Ba7qV$R6b2U 7{m0Baz|(z
有簇的使用情况,通过查文件分配表可以得知任一簇的使用情况。dos在给一个文件分配空间时总先扫描fat,找到第一个可
|$TUr1hy7We']B0I qoNb3}"{G
用簇,将该空间分配给文件,并将该簇的簇号填到目录的相应段内。即形成了“簇号链”。fat就是记录文件簇号的一张表。 ,IY/mq+S-n6es
_|O3X0lE*Q!nN
fat的头两个域为保留域,对fat12来说是3个字节,fat来说是4个字节。其中头一个字节是用来描述介质的,其余字节为ffh ~gf"L2J ~dL
,EwAu*Vx4st
。介质格式与 相同。 j~,Z/Z%L a
m |X%t:wbH
第一个字节的8位意义: R6eKT Of!S
HB~KC 7 6 5 4 3 2 1 0
&X(l1PL)@1_Y
i`^6HTd7W4s{j └—————-┘ │ │ │┌0非双面
!{/x A!H(y)W C w5K6TY9v:@&K0Q8M
置1 │ │ └┤
0it4G{&@Al
.E#q4ims-BpL7_ │ │ └1双面
Z7i*w |3?0F?b ]
,Q k@1t6E │ │┌0不是8扇区 @a Jr*Bj1A6t/o
3Zk\tk|r7R_
│ └┤ Al"u[pJ
spPCK0E(k ql
│ └1是8扇区
jk_*}3`Nt!l
/`7o,hG Ze0~ ef │┌0不是可换的 Y)Yh*`,s%QMPSU3~
9z:w H2?5S%k
└┤ pU:y'o ~m*b
@)mN }/P
└1是可换的 #F {p!CL%M He(q2L7@XZ
_Q}F:p.f P fat结构含义 F|Zf!m~6@
WD(yoE`pW}U
fat12 fat16 意义
'eb9|(?g/O3R h_0Z3L'q&tX Co? JX+bt
000h 0000h 可用 ` B1f&IkTq
4TyL)Q(n6hH]~ ff0h-ff6h fff0h-fff6h 保留
?#t/oTZ.p)@
1QM|~dV ff7h fff7h 坏 3p3T D{*nVL5a]ns
}#P:a8Bt
ff8h-fffh fff8h-ffffh 文件最后一个簇 q*Fh~){t{"^bC u
'do7bs9t`{J P
×××h ××××h 文件下一个簇 R5bjx#PX i M(s
#Nz:Gd J"@C0{
对于fat16,簇号×2作偏移地址,从fat中取出一字即为fat中的域。 !]Mw.`HI
.lp`}lk
逻辑扇区号=数据区起始逻辑扇区号+(簇号-2)×每簇扇区数
_i%Q/Y5NV!N&z5k8sP
4~9Y8^up3Kr&se 簇号=(逻辑扇区号-数据区起始逻辑扇区号)div每簇扇区数+2
9F*TH!R2T:~ g!qg
g!E_$[(FoxXr 要点:(1)fat反映硬盘上所有簇的使用情况,它记录了文件在硬盘中具体位置(簇)。
V!{{k \`/?
X3R}c~.K:U(2)文件第一个簇号(在目录表中)和fat的该文件的簇号串起来形成文件的“簇号链”,恢复被破坏的文件就是根
,Lt(T8\ ^3n9@-l
5hk8iIg_'[ 据这条链。
If0x!oG2A 8{7IV:_eS,A
(3)由簇号可算逻辑扇区号,反之,由逻辑扇区号也可以算出簇号,公式如上。
G#KMLr
[@%? ~)V5i:j(4)fat位于dbr之后,其dos扇区号从1开始。
Ku?7~g(D{!G/R,@ B w@8wUf
8.文件目录
K }-z:x+l"R&a!F Uz/J
@f(u7Yf4a 文件目录是dos文件组织结构的又一重要组成部分。文件目录分为两类:根目录,子目录。根目录有一个,子目录可以有 9cJ ihh yHY5GY
w{9` |*N |N
多个。子目录下还可以有子目录,从而形成“树状”的文件目录结构。子目录其实是一种特殊的文件,dos为目录项分配32字 x4s.X E+}S!k{
kx.^1]0tPk
节。目录项分为三类:文件,子目录(其内容是许多目录项),卷标(只能在根目录,只有一个。目录项中有文件(或子目
AD(y[9Y PdA C \)?
录,或卷标)的名字,扩展名,属性,生成或最后修改日期,时间,开始簇号,及文件大小。 %u/P&lVV@t}/v
bJPJ6Yr u 目录项的格式
7q^y QS O(m g#uVlQ%X
字节偏移 意义 占字节数 "q}%HC+R%s2d S
4F"g~6Br SW1g~
00h 文件名 8b
ZLo7T ~~ G7Y Q Q`)_
08h 扩展名 3b )zTp`"h*B8U2W
PNE@W!g*dD(L 0bh 文件属性 1b 5XmPW A8Cc
I!s'VXWg-SG 0ch 保留 10b
H|?L+uJ C%?!^Rx8w.[
16h 时间 2b 8n ]n4Q8N(~+[3ffs
3{cn7?T-D 18h 日期 2b 'n,n"Vb2MtH]
0{#@V1@3b
1ah 开始簇号 2b n~xQJT7MH'kLc
M7]#u/fg6tWHgbb
1ch 文件长度 4b
@6sCM(In1N` F fP!m Po]S
目录项文件名区域中第一个字节还有特殊的意义:00h代表未使用 \fE+Er4gc6@ z E
u P+IV zV*V5`
05h代表实际名为e5h
,zx G.h,b'cf lmgK ^3X[
ebh代表此文件已被删除
0L!F0k`O4W2|!o)aC 5~p.K8EI.~:TC)H
目录项属性区域的这个字节各个位的意义如下: 7 6 5 4 3 2 1 0 k*Z@,q?th
D6}#n({n@z5Xs&|
未 修 修 子 卷 系 隐 只 0q,o"a4\`i
}'{9z@'b}z 用 改 改 目 标 统 藏 读
5`9O%v9S@ X:Bdd,P7JEi+X
标 标 录 属 属 属 WmSCj|
-i&in/D^Q4i'Cu 志 志 性 性 性 $t#n?5X/r*]k
:B3A:r5Wa/B
注意:windows的长文件名使用了上表中所说的“保留”这片区域。
s[*TlOGT"B
DSo,u:P[:@#wn$O 要点:(1)文件目录是记录所有文件,子目录名,扩展名属性,建立或删除最后修改日期。文件开始簇号及文件长度的一张 cxF5`1`Vt
5{5@ _ E H
登记表. u'RI`%e l}/_
c*X1s}hUe
(2)dos中dir列出的内容训是根据文件目录表得到的。
zV(T-iq\5W V z*h,|*I+M x/EF X
(3)文件起始簇号填在文件目录中,其余簇都填在fat中上一簇的位置上。 Rb?~7Uv![#v Q
M8f V4pzS^ 9.物理驱动器与逻辑驱动器
y!wh:@ K1~I x)RN`4H7@B
物理驱动器指实际安装的驱动器。 iP-C^ Z9{Vx]
t`i/q+Z%Z.O
逻辑驱动器是对物理驱动器格式化后产生的
\#ngGxR3k-q dQ xS,m
硬盘逻辑锁巧解
p){2T%wsZ H%] m$Q$c
在谈论具体的解决方法前,先讲述一下被"逻辑锁"锁住的硬盘为什么不能用普通办法启 动的原因: (d,uD~nc lq
O gt wg 计算机在引导dos系统时将会搜索所有逻辑盘的顺序,当dos被引导时,首先要去找主引 导扇区的分区表信息,位于硬盘的零头零柱面的第一个扇区的obeh地址开始的地方,当 分区信息开始的地方为80h时表示是主引导分区,其他的为扩展分区,主引导分区被定义 为逻辑盘c盘,然后查找扩展分区的逻辑盘,被定义为d盘,以此类推找到e,f,g..... "逻辑锁"就是在此下手,修改了正常的主引导分区记录将扩展分区的第一个逻辑盘指向 自己,dos在启动时查找到第一个逻辑盘后,查找下个逻辑盘总是找到是自己,这样一来 就形成了死循环,这就是使用软驱,光驱,双硬盘都不能正常启动的原因。实际上这"逻辑锁"只是利用了dos在启动时的一个小小缺陷,便令不少高手都束手无策。知道了"逻辑 锁"的"上锁"原理,要解锁也就比较容易了。以前我看到有位朋友采用"热拔插"硬盘电源的方法来处理:就是在当系统启动时,先不给被锁的硬盘插上电源线,等待启动完成后再给硬盘"热插"上电源线,这时如果硬盘没有烧坏的话,系统就可以控制硬盘了。当然这是一种非常危险的方法,大家不要轻易尝试,下面介绍两种比较简单和安全的处理方法。
'U&RY fa l8f
]$ZJTn:hI$\
Nwxbe'I 方法一:修改dos启动文件
_ K$P$~ Qh9JI(Add{
$f_}SC 首先准备一张dos6.22的系统盘,带上debug、pctools5.0、fdisk等工具。然后在一台正常的机器上,使用你熟悉的二进制编辑工具(debug、pctools5.0,或者windows下的ultraedit都行)修改软盘上的io.sys文件(修改前记住改该文件的属性为正常),具体是在这个文件里面搜索第一个"55aa"字符串,找到以后修改为任何其他数值即可。用这张修改过的系统软盘你就可以顺利地带着被锁的硬盘启动了。不过这时由于该硬盘正常的分区表已经被黑客程序给恶意修改了,你无法用fdisk来删除和修改分区,而且仍无法用正常的启动盘启动系统,这时你可以用debug来手工恢复。使用debug手工修复硬盘步骤如下: ~$Z*R?M Z%k
Z$J wm4m -J+y?RwN"a)Tc
a:\>debug
(GM/G6}oL .r"\ M9eC6Xc
-a 4Kt.rg8n
B+b?0l}tD)e
-xxxx:100 mov ax,0201 读一个扇区的内容
7el2Y4b.L-E W~4Y*i4g-i
-xxxx:103 mov bx,500 设置一个缓存地址 -Va knj-z'l7A
:OL(i YF{l C
-xxxx:106 mov cx,0001 设置第一个硬盘的硬盘指针 &~qN5k o q6sqWX0k
^"C`7^ nU'Hh
-xxxx:109 mov dx,0080 读零磁头 *}uK2F9Ki2ME
'hc2Rz Z-c
-xxxx:10c int 13 硬盘中断 J7{1UdI2x n7g
_|UnF XR5h8u -xxxx:10e int 20 |-Y%Dy&e_s R
jsC\f!K -xxxx:0110 退出程序返回到指示符
)X8uq LGO3G!?A
6b8QI7S"S WZ -g 运行
`J*r7j/Q^N{)x|
DFx ~#y n -d500 查看运行后500地址的内容
%S,K&eb kQ-z !j5@[(x/T{*Uv
'V,~Dx+o
这时候会发现地址6be开始的内容是硬盘分区的信息,发现此硬盘的扩展分区指向自己,这就使dos或windows启动时查找硬盘逻辑盘进去死循环,在debug指示符下用e命令修改内存数据 具体如下:
U~VYh a%^4U%@.Se7_,m1e
5m J~&hn k lp8J n\ e6be "m~K} m8B
[ Xj-u s4`h:Zl&H
xx.0 xx.0 xx.0...............
5F4x3oy[!Bu,q p
.tfar8ja%S .............................
q0EpAt &p I%Y4z ~b4m+}
.......................55 aa
PoFl8S8r6[2X Fx2U5`X+Fx5ct
55 aa表示硬盘有效的标记,不要修改,xx0表示把以前的数据"xx"改成0 0N!Pr9\7_#@ |V#Jn
Q:M#D/g"Dz8s,Gqe
I)_X(NWU9Q
再用硬盘中断13把修改好的数据写入硬盘就可以了,具体如下:
,Il,zk9F \
4hY1t5M R3[U+fg{(V R I*r&Y)}2Y
a:\>debug F1|Kb$`
1S-T$GKhnnPB0Qw3]
a 100 表示修改100地址的汇编指令
8d SPs.@ @@K
%@)kcPe0O-C -xxxx:100 mov ax,0301 写硬盘一个扇区
W[wEx)\` ZZ k&? N1}7pn
-xxxx: 这里直接按回车
tC6^"|#x?R!q^,I O1|'cH!qS\
-g 运行
]{3b%^"F[ t1u@(c:mq
-q 退出 9e^ fuC"}$`:F
7f g"Nr~9x
Uz"u`8N1r4m$L*fn u\ 然后运行 fdisk/mbr(重置硬盘引导扇区的引导程序),再重新启动电脑就行了。 怎么样?用这种方法处理够简单的吧?而且这种方法还有一个好处就是可以保住盘上的 数据!如果你不需要保数据的话,还有更加简单的处理方法:
/ykU+dC0R:r*[ }j:mR_
方法二:巧设bios,用dm解锁大家知道dm软件是不依赖于主板bios的硬盘识别安装软件,(所以在不能识别大硬盘的老主板上也可用dm来安装使用大容量硬盘)。就算在bios中将硬盘设为"none",dm也可识别并处理硬盘。 G h!f|ho(B
`6E"D.~+zf&N6O7_
nA yJC1w
首先你要找到和硬盘配套的dm软件(找js要或去网上荡),然后把dm拷到一张系统盘上。接上被锁硬盘,开机,按住del键,进cmos设置,将所有ide硬盘设为none(这是关键所在!),保存设置,重启动,这时系统即可 "带锁"启动。启动后运行dm,你会发现dm可以绕过bios,识别出硬盘,选中该硬盘,分区格式化,就ok了。这么简单?不过这种 方法的弱点是硬盘上的数据将全部丢失。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)