手工恢复硬盘分区表记述(zt)想必大家都有过数据丢失的糟糕经历,费尽心力收集的数据,由于病毒破坏、误删除、误格式化、分区软件误操作、存储设备损坏等原因而毁之一旦,真是令人痛心。其实我们只要静下心来学习一点数据恢复方面的浅近知识,遇上这样的倒霉事,只要不是严重的硬件损坏,就能挽回一部分数据,运气不错的话,找回全部数据也是可能的。讨论数据恢复,我们先来看看最简单的情况:单纯的硬盘分区表损毁(非硬件损坏),现象——分区丢失。要重建硬盘分区表,就得搞清楚硬盘分区是如何组织的,下面先介绍相关的背景知识。一、磁盘寻址方式:CHS和LBA1.CHS寻址方式CHS是Cylinder(柱面)/Head(磁头)/Sector(扇区)的缩写。为什么会有这些参数,这要从早期的磁盘结构说起。很久以前,硬盘的容量还非常小的时候,为了扩大磁盘容量,人们把几个盘片叠加在一起,每个盘面由一个磁头访问,盘面又划分为许多同心圆环,这就是磁道,每条磁道又划分为许多区段,每个区段就称为一个扇区。由此产生了所谓的3D参数(DiskGeometry),即磁头数(Heads)、柱面数(Cylinders,所谓柱面是由半径相同分属不同盘面的若干磁道组成)、扇区数(Sectors),以及相应的寻址方式。见附图:图片附件:1.jpg(2006-12-1320:16,54.09K)其中:磁头数(Heads)表示硬盘总共有几个磁头,也就是有几面盘片,最大为255(用8个二进制位存储);柱面数(Cylinders)表示硬盘每一面盘片上有几条磁道,最大为1024(用10个二进制位存储);扇区数(Sectors)表示每一条磁道上有几个扇区,最大为63(用6个二进制位存储)。每个扇区一般是512个字节,理论上讲这不是必须的,但好象没有取别的值的。所以磁盘最大容量为:255*1024*63*512/1024/1024=8032.5MB。在CHS寻址方式中,磁头,柱面,扇区的取值范围分别为0到Heads-1,0到Cylinders-1,1到Sectors(注意是从1开始)。只要确定CHS参数,硬盘就指定相应的磁头到相应的磁道和扇区去读写数据。2.LBA寻址方式随着硬盘技术的不断发展,其容量也不断增大,现在的硬盘早就超过了8G的容量,那么现代硬盘又是如何寻址的呢?现在的硬盘都采用线性寻址的方式,即把硬盘上所有可用扇区(假定数目为N)从0到N-1按序编号,硬盘读写数据时按扇区号寻址,这就是LBA寻址方式(logicblockaddress),扇区编号也就是该扇区的LBA地址。出于习惯,CHS寻址方式仍被沿用,只是其中参数不再具有实际意义,我们只能把它看作一种逻辑上的磁盘结构划分方式。现代磁盘的柱面数已经突破了1024的限制,最大磁头数和扇区数仍为255和63。相对于LBA来说,CHS模式较为直观,所以磁盘编辑器通常采CHS模式来作为磁盘逻辑结构划分方式。二、MBR(MasterBootRecord)、DPT(DiskPartitionTable)、主分区(PrimaryPartition)、扩展分区(ExtendedPartition)和逻辑分区(LogicalPartition)硬盘的第一个扇区被称为主引导扇区,习惯上称为MBR,CHS参数为0,0,1,LBA参数为0,它包含了硬盘引导程序和硬盘分区表(DPT),作用十分重要,如果MBR扇区受损,那么系统就无法访问这个磁盘了。1.MBR引导程序概述MBR扇区的512字节数据中,前446字节(0to0x1BD)存放硬盘引导程序代码。电脑从硬盘启动时,系统从硬盘中首先读取MBR引导代码,其流程大致如下:(1)将程序代码由0:7C00H移动到0:0600H(注,BIOS把MBR放在0:7C00H处)(2)搜索可引导分区,即80H标志成功:goto3失败:跳入ROMBASIC无效分区表:goto5(3)读引导扇区失败:goto5成功:goto4(4)验证引导扇区最后是否为0xAA55H失败:goto5成功:goto6(5)打印错误进入无穷循环(6)跳到0:7C00H进行下一步启动工作然后MBR引导程序就把系统控制权交给操作系统引导程序。如果MBR损坏硬盘无法访问,可在DOS下输入:Fdisk/cmbrX(X=1,第一块硬盘;X=2,第二块硬盘),重写主引导记录。2.硬盘分区表(DPT)MBR扇区的最后66字节除去末尾的标志0xAA55H(所有引导扇区的标志。由于磁盘编辑器中的显示内容是从低址到高址排列的,所以AA55显示为55AA)外,剩余的64字节被称为硬盘分区表。硬盘分区表包含四个项目,每项16字节,代表四个分区的参数。分区表项的各字节含义如下:偏移意义0自举...