Windows 版 (精华区)

发信人: stary (到底想要什么,想追求什么。。。), 信区: Windows
标  题: 分区表、文件分配表探秘
发信站: 哈工大紫丁香 (2002年11月12日23:08:44 星期二), 站内信件

1、分区表 
硬盘只有经过物理格式化、分区、逻辑格式化后才能使用,在进行分区时,FDISK会在硬盘
的0柱面0磁头1扇区建一个64字节的分区表,在分区表的前面是主引导记录(MBR),后面是
两个字节的有效标志55h、AAh(h表示16进制)。此扇区被称为主引导扇区,也是病毒最爱侵
袭的地方,它由主引导记录+分区表+有效标志组成。 

分区表对于系统自举十分重要,它规定着系统有几个分区;每个分区的起始及终止扇区、
大小以及是否为活动分区等重要信息。分区表由4个表项组成,每个表项16个字节,各字节
含义如表1: 

表1 

 字节       含  义 

第0字节 是否为活动分区,是则为80h,否则为00h 

第1字节 该分区起始磁头号 

第2字节 该分区起始扇区号(低6位)和起始柱面 

号(高2位) 

第3字节 该分区起始柱面号的低8位 

第4字节 系统标志,00h表该分区未使用,06h表高 

版本DOS系统,05h扩展DOS分区、65h表 

Netware分区 

第5字节 该分区结束磁头号 

第6字节 该分区结束扇区号(低6位)和结束柱面号 

(高2位) 

第7字节 该分区结束柱面号的低8位 

第8~11字节 相对扇区号、该分区起始的相对逻辑扇区 

号,高位在后低位在前 

第12~15字节 该分区所用扇区数,高位在后、低位在前 

注意: 

1分区表有四个表项,表示硬盘最多只能容纳四个分区。 

2磁盘的各个面称为磁头,软盘只有两个磁头,而硬盘往往有多个。各个磁头相同半径的
磁道合称为柱面。 

3高位在后,低位在前是一种存储数字方式,读出时应对其进行调整,如两字节12h、34h
,应调整为3412h。 

现在举例说明,有如下一分区表(16进制): 

┋ 

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 80 01 

01 00 06 0B 23 9B 23 00 00 00 CD FF 00 00 00 00 

01 9C 05 0B E3 DB F0 FF 00 00 00 55 05 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 55 AA 

此分区表两个表项已被使用,说明此硬盘上存在两个分区(DOS主引导分区和扩展DOS分区)
,还有两个表项未用,最后是2个字节的有效标志。现以第一个表项为例说明各字节作用。
 

第0字节80h表明此分区为活动分区,系统启动时将从此分区读取系统文件,当硬盘上存在
一个以上分区时,只能有一个是活动的。 

第1字节01h表明此分区起始于第1磁道。 

第2个字节01h用二进制表示为00000001,低6位为000001,合十进制为1,表此分区起始扇
区为1。 

第3字节00h,用二进制表示为00000000,加上第2个字节的高2位00作为高位,表示为00000
00000,合十进制0,表此分区起始柱面为0。 

第4字节06h表此分区为基本DOS分区。 

第5字节0Bh表示该分区结束在第11磁头。 

第6字节23h合二进制00100011,低6位100011合十进制35,此分区结束扇区则为35。 

第7字节9Bh合二进制10011011,加上第6字节的高2位00作为高位,表示为0010011011,合
十进制155,表此分区结束在第155柱面。 

第8~11字节为23h,表此分区从相对逻辑35扇区开始。 

第12~15字节为FFCDh,表此分区共有65985个扇区。综上所述,此分区为活动的基本DOS分
区,分区从0柱面1磁头1扇区开始,即相对逻辑35扇区,终之于155柱面11磁头35扇区。 

硬盘自举时,先将主引导扇区的主引导记录读入内存,主引导记录将检查结束标志是否为5
5AAh,并在分区表中找到唯一的一个活动分区,并根据该分区表项记载的起始扇区地址读
入引导文件,完成启动过程。 

要注意用PCTOOLS等一般软件无法访问主引导记录,因为它的磁盘编辑功能只能访问到逻辑
0扇区,即BOOT扇区。但我们可以通过KV300或Norton的主引记录导出功能,观察自己的磁
盘的分区表。也可对它进行修改,实现在不破坏原有数据的情况下增加分区、对某个分区
加锁等功能,但用户最好谨慎行事,分区表可是“军事禁区”。 

二、文件分配表 

当一个磁盘format后,在其逻辑0扇区(即BOOT扇区)后面的几个扇区中存在着一个重要的数
据表——文件分配表(FAT),文件分配表一式两份,占据扇区的多少凭磁盘类型大小而定。
顾名思义,文件分配表是用来表示磁盘文件的空间分配信息的。它不对引导区、文件目录
表的信息进行表示,也不真正存储文件内容。 

我们知道磁盘是由一个一个扇区组成的,若干个扇区合为一个簇,文件存取是以簇为单位
的,哪怕这个文件只有1个字节。每个簇在文件分配表中都有对应的表项,簇号即为表项号
,每个表项占15个字节(磁盘空间在10MB以下)或2个字节(磁盘空间在10MB以上)。为了方
便起见,以后所说的表项都是指2个字节的。 

文件分配表结构如表2(h表示16进制)。 

注意: 

1不要把表项内的数字误认为表示当前簇号,而应是该文件的下一个簇的簇号。 

2高字节在后,低字节在前是存储数字的一种方式,读出时应进行调整,如两字节12h,3
4h,实际应为3412h。 

文件分配表与文件目录表(FDT)相配合,可以统一管理整个磁盘的文件。它告诉系统磁盘上
哪些簇是坏的或已被使用,哪些簇可以用,并存储每个文件所使用的簇号。它是文件的“
总调度师”。 

当DOS写文件时,首先在文件目录表中检查是否有相同文件名,若无则使用一个文件目录表
项,然后依次检测FAT中的每个表项,找到第一个为0000h的表项后,将文件写入与该表项
相对应的簇中,同时将该簇号写入文件目录表项的第26-27字节,如文件长度不止一簇,
则继续向后寻找可用簇,找到后将其簇号写入上一次找到的表项中,如此直到文件结束,
在最后一簇的表项里填上FFF8h,形成一个单向链表。 

DOS删除文件时只是把文件目录表中的该文件的表项第0个字节改为E5h,表此表项已被删除
,并在文件分配表中把该文件占用各簇的表项清0,以释放空间。其实文件的内容仍在盘上
,并没有被真正删除,这就是undelete.exe、unerase.exe等一类恢复删除工具能起作用的
原因。 

文件分配表在系统中的地位十分重要,用户最好不要去修改它,以免误操作带来严重的后
果。 

表2 

字 节 含 义 

第0字节 表头,表磁盘类型。 

FFh 双面软盘 每磁道8扇区 

FEh 单面软盘 每磁道8扇区 

FDh 双面软盘 每磁道9扇区 

FCCh 单面软盘 每磁道9扇区 

FC8h 硬盘 

第1~2字节(表项号1) 表示第一簇状态,因第一簇已被系统占据, 

 故此两字节为FFFFh 

第3~4字节(表项号2) 表示第二簇状态,若为FFFTh表此簇为坏 

 的,DOS已标记为不能用;0000h表示此簇 

 为空,可以用;FFF8h表示该簇为文件的最 

 后一簇;其余数字表示文件的下一个簇号, 

 注意高字节在后,低字节在前 

第5~6字节(表项号3) 表示第三簇状态,同上 

--
      ω            ω            ω            ω            ω         
  ◢      ◣    ◢      ◣    ◢      ◣    ◢      ◣    ◢       ◣    
    ●  ●        ●  ●        ●  ●        ●  ●        ●  ●       
  ●  ⅴ  ●    ●  ⅴ  ●    ●  ⅴ  ●    ●  ⅴ  ●    ●  ⅴ  ●     
◢          ◣◢          ◣◢          ◣◢          ◣◢          ◣   
  ◥㎜  ㎜◤    ◥㎜  ㎜◤    ◥㎜  ㎜◤    ◥㎜  ㎜◤    ◥㎜  ㎜◤     

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 218.7.25.44]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.007毫秒