①零磁道零磁道处于硬盘上一个非常重要的位置,硬盘的主引导记录区(MBR)就在这个位置上。零磁道一旦受损,将使硬盘的主引导程序和分区表信息遭到严重破坏,从而导致硬盘无法自检。②MBR当通过FDisk或其他分区工具对硬盘进行分区时,分区软件会在硬盘0柱面0磁头1扇区建立MBR(Main Boot Record),即为主引导记录区,位于整个硬盘的第一个扇区,在总共512字节的主引导扇区中,主引导程序只占用了其中的446个字节,64个字节交给了DPT(Disk Partition Table硬盘分区表),最后两个字节(55 AA)属于分区结束标志。主引导程序的作用就是检查分区表是否正确以及确定哪个分区为引导分区,并在程序结束时把该分区的启动程序调入内存加以执行。③DPT分区表DPT(Disk Partition Table),把硬盘空间划分为几个独立的连续的存储空间,也就是分区。分区表DPT则以80H或00H为开始标志,以55AAH为结束标志。分区表决定了硬盘中的分区数量,每个分区的起始及终止扇区、大小以及是否为活动分区等。通过破坏DPT,即可轻易地损毁硬盘分区信息。分区表分为主分区表和扩展分区表。主分区表位于硬盘MBR的后部。从1BEH字节开始,共占用64个字节,包含四个分区表项,这也就是为什么一个磁盘的主分区和扩展分区之和总共只能有四个的原因。每个分区表项的长度为16个字节,它包含一个分区的引导标志、系统标志、起始和结尾的柱面号、扇区号、磁头号以及本分区前面的扇区数和本分区所占用的扇区数。其中“引导标志”表明此分区是否可引导,即是否活动分区。当引导标志为“80”时,此分区为活动分区;“系统标志”决定了该分区的类型,如“06”为DOS FAT16分区,“0b”为DOS FAT32分,“63”为UNIX分区等;起始和结尾的柱面号、扇区号、磁头号指明了该分区的起始和终止位置。分区表项的16个字节分配如下:第1字节: 引导标志第2字节: 起始磁头第3字节: 低6位为起始扇区, 高2位与第4字节为起始柱面第4字节: 起始柱面的低8位第5字节: 系统标志第6字节: 终止磁头第7字节: 低6位为终止扇区, 高2位与第8字节为终止柱面第8字节: 终止柱面的低8位第9-12字节: 该分区前的扇区数目第13-16字节: 该分区占用的扇区数目扩展分区作为一个主分区占用了主分区表的一个表项。在扩展分区起始位置所指示的扇区(即该分区的第一个扇区)中,包含有第一个逻辑分区表,同样从1BEH字节开始,每个分区表项占用16个字节。逻辑分区表一般包含两个分区表项,一个指向当前的逻辑分区,另一个则指向下一个扩展分区。下一个扩展分区的首扇区又包含了一个逻辑分区表,这样以此类推,扩展分区中就可以包含多个逻辑分区。为方便说明,我们把这一系列扩展分区和逻辑分区分别编号,主扩展分区为1号扩展分区,第一个逻辑分区表所包含的两个分区分别标为1号逻辑分区和2号扩展分区,依次类推。主分区表中的分区是主分区,而扩展分区表中的是逻辑分区,并且只能存在一个扩展分区。④DBRDBR(Dos Boot Record)是操作系统引导记录区。它位于硬盘的每个分区的第一个扇区,是操作系统可以直接访问的第一个扇区,它一般包括一个位于该分区的操作系统的引导程序和相关的分区参数记录表。⑤FATFAT(file allocation table)即文件分配表,记录了分区中簇的的使用情况,FAT表的大小与硬盘的分区的大小有关,为了数据安全起见,FAT一般做两个,第二FAT为第一FAT的备份。⑥DIRDIR是DIRECTORY即根目录区的简写,根目录区存储了文件系统的根目录中的文件或者目录的信息(包括文件的名字,大小,所在的磁盘空间等等),FAT12,FAT16的DIR紧接在第二FAT表之后,而FAT32的根目录区可以在分区的任何一个簇。⑦MFTMFT(Master File Table) 是NTFS中存储有关文件的各种信息的数据结构,包括文件的大小,时间,所占据的数据空间等等。
以FAT32为例,FAT32分区的的0-2扇区为FAT32文件系统的DBR即引导扇区,3-5扇区为0-2扇区的备份。6-31扇区为空,32扇区开始为第一个FAT表,FAT表的大小与硬盘的分区的大小有关。随后是第2个FAT表,剩余的空间都是实际的文件所占用的,包括目录和文件。FAT32文件系统的根目录并不一定是数据区的第一个簇,它可以位于数据区的任何一个簇,这也是FAT32的根目录大小不在受255个文件限制的原因,这也是FAT32的文件名可以支持长文件名的原因之一。
硬盘主引导记录结构硬盘的主引导记录在硬盘的0磁头0柱面1扇区。主引导记录由三部分组成:(1)主引导程序;(2)四个分区表;(3)主引导记录有效标志字。详见表1。
表1:主引导记录结构位置内容
0000H-00D9H主引导记录代码区00DAH-01BDH 空闲区01BEH-01CDH分区1结构信息01CEH-01DDH 分区2结构信息01DEH-01EDH分区3结构信息01EEH-01FDH 分区4结构信息01FEH-01FFH55AAH主引导记录有效标志分区表自偏移1BEH处开始,分区表共64个字节,表中可填入四个分区信息,每十六个字节为一个分区说明项,这16个字节含义详见表2。必须注意:扇区号的高二位占用柱面号所在字节的最高二位,即柱面号为10位,扇区号6位。
表2:分区结构信息偏移长度含义
偏移长度含义00H1活动分区指示符,该值为80H表示为可自举分区(仅有一个),该值为00H表示其余分区01H1分区起始磁头号02H1低6位是分区开始的扇区,高2位是分区开始的柱面的头两位03H1分区开始的起始柱面号的低8位04H1系统标志,该值为01H表示采用12位FAT格式的DOS分区,该值04H表示采用16位FAT格式的DOS分区,该值为05H表示为扩展DOS分区,为06H表示为DOS系统05H1分区终止头号06H1低6位为分区结束的扇区号,头2位为结束柱面号的前2位07H1分区结束柱面号的低8位。 08H4本分区前的扇区数,低位字节在前0CH4本分区总的扇区数,低位字节在前下表是一个例子:表3:一个分区表实例:
80 01 01 00 06 1F 3F 98 3F 00 00 00 A1 B4 04 0000 00 01 99 05 1F BF 0E E0 B1 04 00 40 81 0B 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
此例中,每行十六个字节,为一个分区说明,数据为十六进制。
第一个分区(第一行):活动分区指示符为80H,表示该分区为可自举分区。系统标志为06H表示是DOS系统,即C:盘。第二个分区(第二行):系统标志为05H,说明该分区是扩展Dos分区。第三、四个分区数据均为00H,没有定义。
从扩展DOS分区说明项(即第二个分区)知下一个分区表位于:起始磁头为0头,起始柱面为99H=153D,起始扇区为1扇区。
表4:第二个分区表
00 01 01 99 06 1F 7F C9 3F 00 00 00 A1 61 09 0000 00 01 CA 05 1F BF 0E E0 61 09 00 60 1F 02 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
该分区表的格式和含义同第一个分区表。第一个分区(第一行):该分区指示符为00H,说明为不可引导分区。系统标志字节为06H说明为DOS分区,即逻辑D盘。第二个分区(第二行):系统标志字节为05H,说明是扩展DOS分区第三,四个分区说明项数据均为00H没有定义。由第一个分区说明项知D盘开始于153簇0为1扇区。由扩展分区说明项知,扩展分区表起始簇号为01CAH=458D,起始磁头为0头,1扇区。
表5:第三个分区表00 01 41 CA 06 1F BF 0E 3F 00 00 00 21 1F 02 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
第一个分区(第一行)表明,本分区是DOS分区,不可引导。自第二个分区说明项开始,全为00H说明后面不再有分区表。
综上所述:1、每一个分区表中扩展分区说明项实际上指示下一个分区表的位置(簇,磁头号,扇区号)。最后一个分区表没有扩展分区说明项。2、每一个分区表都会有一个实际分区说明项,也就是对逻辑盘的实际起始、终止位置进行说明。3、除逻辑盘C主引导记录及分区表共占用一个扇区,其它分区表则各占一个扇区,自该扇区01BEH处开始,以55AAH结束。
