-1-了解硬盘●C/H/S:磁头(Head):硬盘为数个金属磁性物叠加而成的同心圆盘片,每盘片分两面(Side),依次为0和1、2和3…(最少为单面,即只有0),每盘片分为上下两磁头读写。由于每个盘面都有自己的磁头,因此,盘面数等于总的磁头数,盘面号又叫磁头号。磁道和柱面(TrackandCylinder):同一盘片不同半径的若干同心圆被划分为若干数目相等的磁道,并从外缘的“0”开始编号。柱面是具有相同编号的磁道形成一个圆柱(不同盘片相同半径构成的圆柱面,但不是一体的)。0柱面最外面,依次向里编号。一磁道对应一柱面,磁盘的柱面数与一个盘面上的磁道数是相等的。扇区(Sector):磁盘上的每个磁道被等分为若干个弧段(与下图不同),这些弧段便是磁盘的扇区。每扇区一般可存储512字节(Byte)的信息。如按公式计算,每个扇区可以存储128×2的N次方(N=0.1.2.3)字节信息。在DOS中每扇区是128×2的2次方=512字节512个字节的信息。在向磁盘读取和写入数据时,都以扇区为单位。磁道和扇区是由低级格式化产生的。低格的作用是将空白的磁片划分一个个半径不同的同心圆磁道(几百到几千),还将磁道划分为若干个扇区,每个扇区的容量一般为512字节。CHS(3D参数):Cylinder(柱面)/Head(磁头)/Sector(扇区),是硬盘的重要参数。一般书写时按照CHS的次序来做,如0,0,1。硬盘示意图:-2-●硬盘数据的记录方式◇两种地址:1.物理地址(“绝对扇区”):信息记录被表示为:××柱面(磁道),××磁头,××扇区,从0柱0磁1扇开始,编号整个硬盘。2.逻辑(logic)地址(“相对扇区”):只有一个逻辑扇区号,可以从0柱0磁1开始计数(如LBA),也可以从0柱1磁1扇开始计数(如DOS扇区)即各分区单独计数。DOS扇区即是一种相对扇区,它从0柱1磁1扇(DBR)开始计数,把第一个DOS扇区(DOS能访问的第一个扇区)编号为逻辑0扇(即C盘逻辑0扇,而MBR所在的0柱0磁1扇则没有DOS扇区编号,只能调用BIOS访问)。两种地址在不同地方称呼各不相同。◇硬盘的工作模式:1.NORMAL:最大1024柱,16磁头,63扇,因此最大容量528MB。2.LARGE:当柱面大于1024时,把柱面数除以2,把磁头数乘以2,其总容量不变。3.LBA:由IDE控制器中的地址翻译器把CHS参数转换为单一的扇区参数。◇硬盘的寻址方式:1.CHS寻址方式(物理寻址方式,8.4GB以下使用):柱面:范围为0~1023柱,表示硬盘每一面盘片上有几条磁道,最大为1024。磁头:范围为0~254个,表示硬盘总共有几个磁头,也就是有几面盘片,最大为255。扇区:范围为1~63扇,表示每一条磁道上有几个扇区,最大为63。NORMAL和LARGE使用的是CHS寻址方式。在CHS寻址方式中,最大寻址范围是:255×1024×63×512/1000/1000/1000=8.4G。注意:这里的CHS参数与硬盘真实的CHS其实并不相同(硬盘中一般一个盘片对应两个磁头。单碟对应两个磁头;双碟则只有三个磁头,其中一个磁头被两张盘片共用;有的硬盘则只有一磁头。因此物理磁头数不可能多达255个)。硬件意义上的CHS与文件系统的CHS的转换是由硬盘的固件来完成的。2.LBA寻址方式(LogicBlockAddress,逻辑块寻址,8.4GB以上使用):早期硬盘的扇区在同心圆磁道中呈扇面形状(如上图),由于每个磁道的扇区数相等(与软盘一样),所以外磁道的记录密度要远低于内磁道,会浪费很多磁盘空间。现在改用等密度结构生产硬盘,外侧磁道一圈因周长更大,所以扇区数量更多(大于63个,在磁道数量一样的情况下,文件系统的柱面数因此变多了),内侧则更少。采用这种结构后,硬盘不再具有实际的CHS参数。系统在写入数据时是从柱面的0磁头1扇区开始写入,第一个磁道写满后,就在同一柱面的下一盘面来写。一个柱面写满后才移动磁头到下一个柱面,从而使磁盘性能最优。硬盘读写数据时采用以扇区(即逻辑块)为单位进行线性寻址的方式,扇区编号也就是该扇区的LBA地址。LBA方式把0柱0磁1扇编为逻辑“0”扇区(即零磁道,与“DOS扇区”的“0”扇区不同),0,0,2为逻辑1扇区,0,0,63为逻辑62扇区(此扇后为非隐藏扇区),0,1,1,为逻辑63扇区,0柱编完后再转到1,0,1依次进行,直至把所有的扇区都编上号。WinHex把LBA扇区(及DOS扇区)称为“逻辑扇区”,PM则称为“绝对扇区”。查看LBA扇区都应先打开它们HD0的“扇区查看”,然后再输入LBA号。LBA是逻辑地址(但-3-不同于相对地址的“DOS扇区”),也可以说成是物理地址。一般我们称CHS模式下的扇区号为物理扇区号,扇区编号是1”至“63”,而LBA方式的扇区从“0”开始。LBA(逻辑扇区号)=总磁头数×每磁道扇区数×当前所在柱面号+每磁道扇区数×当前所在磁头号+当前所在扇区号–1例如:CHS=0/0/1,则根据公式LBA=255×63×0+63×0+1–1=0,也就是说物理0,0,1为LBA逻辑0扇。现在的硬盘一般都支持LBA和CHS寻址,是因为在HD控制器内部安装了一个地址翻译器,可以将C/H/S参数翻译成LBA地址。小于8.4G的分区仍需用CHS方式寻址,在大于8.4G的分区,CHS参数就没有什么意义了,此时须用LBA方式寻址。现代硬盘件系统的柱面数已经突破了1024的限制,最大磁头数和扇区数仍为255和63,所以硬盘的大小一般是与柱面的多少相联系的。相对于LBA来说,CHS模式较为直观,所以磁盘编辑器通常采用CHS模式来作为磁盘逻辑结构划分方式。●硬盘存储计数存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数。一个扇区若为512字节大小,那么硬盘容量=C(柱面数)×H(磁头数)×S(扇区数)×512Byte。若干扇区为一簇(文件最小单位),FAT32一簇最大为32扇区,NTFS一簇4K。硬盘的容量以兆字节(MB)或千兆字节(GB)为单位,1GB=1024MB,1M=1024KB,1KB=1024B(yte)1Byte=8bit(二进制位)。但硬盘厂商在标称硬盘容量时通常取1G=1000MB,因此我们在BIOS中或在格式化硬盘时看到的容量会比厂家的标称值要小。DOS/Windows下硬盘数据结构一个完整硬盘的数据应该包括五部分:MBR,DBR,FAT,DIR区和DATA区。其中只有MBR(主引导扇区)是唯一的,其它则随你的分区的不同而不同。●MBR(MasterBootRecord,主引导扇区或主引导记录):主引导扇区,位于0柱0磁1扇(大小是512字节,也就是零磁道),外加DPT,由Fdisk命令产生,以55AA标志结束。◇MBR主要完成的任务是:(1)存放硬盘分区表(DPT),这是硬盘正确读写的关键数据。(2)检查硬盘分区的正确性,要求只能并且必须存在一个活动分区。(3)确定活动分区号,并读出相应操作系统的引导记录。(4)检查操作系统引导记录的正确性,DOS引导扇区末尾也存在着一个AA55H标志,供引导程序识别。(5)释放引导权给相应的操作系统。例如,当确认DOS操作系统引导纪录存在时,则调出DOS引导程序并执行。-4-硬盘主引导区截图:注:HEX为地址数值,十六进制。DEC为十进制。BIN为二进制。OCT为八进制。◇MBR的结构:1.主引导程序(446字节,含出错提示),偏移地址为0H-1BDH。其中0000H-00D9H为主引导记录代码区(0000H-008AH寻找开机分区;008BH-00D9H启动字符串)。00DAH-01BDH为保留的空闲区。DOS命令Fdisk/MBR可以重写这一部分,内容较为固定。其在截图的上面,占了MBR的最大部分。2.DPT(DiskPartitionTable)硬盘分区表(主分区表):01BEH-01FDH。有四个分区表项,各16字节,共64字节,后两项常不用。其内容在截图下面的最后五行内,以80开头,以55AA结束。※第一分区项(指向活动主分区):01BEH-01CDH(参照上图来寻找此地址,01BEH纵坐标为1B0,横坐标为最上面一行的E,其它地址与此相同)。800101000CFEFFFF3F0000009AE53F01各字节含义有以下几项:①引导标志:第一表项第1字节,必须是80(表示为活动分区,00则表示非活动分区,那么操作系统将不能启动)。②C盘逻辑0扇:2、3、4字节即010100,依次为磁/扇/柱,为0柱1磁1扇,表示DBR(DOS引导记录)所在位置。分区项将指向活动主分区(一般就是C盘)的DOS引导记录DBR。-5-③分区类型:为各表项的第5字节,0C表示DBR所在分区为FAT32主分区(LBA)。④C盘逻辑尾扇:6、7、8字节FEFFFF,由于该分区大于8G,所以它的CHS参数已经没有意义,大硬盘中的C盘逻辑尾扇一般都是此数,下同。⑤C盘零扇前的隐含扇区总数:9-12字节3F000000,为63扇(一般都如此),MBR就位于隐含扇区首扇。硬盘主分区和每一个逻辑分区前都有63个隐含扇区,一般都保存有一个分区表。因为在OS中被隐藏,所以各分区的开始扇区应该是DBR或EBR所在扇区。⑥C盘扇区总数(不含隐藏扇区):13-16字节9AE53F01。由于所用扇区数是用十六进制表示,低位在前,高位在后,扇区数应该是0x13FE59AH。用十六进制计算器(Windows中自带计算器选程序员或科学型也可进行换算),计算后为20964762个扇区,大小约为10G。※第二分区项(指向扩展区):01CEH-01DDH。0000C1FF0FFEFFFFD9E53F0127C01008…55AA各字节含义有以下几项:①扩展区标志:首字节00。②扩展区首扇:234字节00C1FF,一般为D盘分区表所在扇区(00C1FF无意义,道理同上)。CHS为:0磁1扇x柱(x柱=主分区扇区总数/63×255,x柱在此为1305柱)。LBA为:“C盘扇区总数+MBR所在的63个隐藏扇区”(即9-12字节数)。③扩展分区类型标志:第5字节0F,为Win95Extended分区(大于8GB)。④扩展区尾扇:678字节FEFFFF(大硬盘都是此数,无意义),为扩展分区结束的C/H/S。CHS为:(HD总磁头数-1)63扇(HD总柱数-1),处于HD尾。⑤主分区扇区总数(含隐藏扇区):9-12字节D9E53F01,位于扩展扇区前。主分区扇区总数=C盘逻辑扇区数+隐含扇区数(63个),此处为20964825个扇区,比C盘扇区总数(无隐藏扇区)多63,此LBA号即D盘分区表所在。⑥扩展扇区总数(含隐藏扇区):13-16字节27C01008。主分区、扩展扇区两数相加为HD扇区总数。※其它分区项:分区3(01DEH-01EDH)、分区4(01EEH-01FDH):可以为隐藏分区。隐藏分区为主分区,一键还原精灵所产生的隐藏分区,想把它变成逻辑分区,可直接操作DPT,把代表它的分区表项删除,即可顺利完成。3.结束标志55AA,位于1FEH-1FFH。其值为AA55,十六进制存储时低位在前,高位在后,即看上去就是55AA。FDISK/MBR,再SYSC:,再难缠的引导扇区病毒都OK了。其它磁盘工具也可以完成同样的工作。注:Fdisk/MBR在结构正常下重写MBR不破坏DPT,55AA错则全部重写。为保护分区表(DPT)数据,需要先修复55AA标志,才能进行此操作。在0柱0磁2扇(MBR的下一扇区),可以备份MBR。当MBR出错时,把它复制、粘帖到MBR扇区,可以恢复原来的MBR。DBR前的空白隐藏扇区都可以用来备份或存文件。MBR先于操作系统装入内存,具有公共引导的特性。但安装某些多重引导功能的软件或LINUX的LILO时有可能改写它。●DBR(DosBootRecord):DOS引导记录,又称DOS引导区或BOOT区,位于0柱1磁1扇(C盘逻辑0扇),由Format命令产生,可用sysc:修复。在FAT32-6