手工恢复硬盘分区表记述.doc

上传人:小pp老弟 文档编号:7331157 上传时间:2024-09-27 格式:DOC 页数:26 大小:2.18MB
返回 下载 相关 举报
手工恢复硬盘分区表记述.doc_第1页
第1页 / 共26页
手工恢复硬盘分区表记述.doc_第2页
第2页 / 共26页
手工恢复硬盘分区表记述.doc_第3页
第3页 / 共26页
手工恢复硬盘分区表记述.doc_第4页
第4页 / 共26页
手工恢复硬盘分区表记述.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《手工恢复硬盘分区表记述.doc》由会员分享,可在线阅读,更多相关《手工恢复硬盘分区表记述.doc(26页珍藏版)》请在三一办公上搜索。

1、手工恢复硬盘分区表记述(zt)想必大家都有过数据丢失的糟糕经历,费尽心力收集的数据,由于病毒破坏、误删除、误格式化、分区软件误操作、存储设备损坏等原因而毁之一旦,真是令人痛心。其实我们只要静下心来学习一点数据恢复方面的浅近知识,遇上这样的倒霉事,只要不是严重的硬件损坏,就能挽回一部分数据,运气不错的话,找回全部数据也是可能的。 讨论数据恢复,我们先来看看最简单的情况:单纯的硬盘分区表损毁(非硬件损坏),现象分区丢失。要重建硬盘分区表,就得搞清楚硬盘分区是如何组织的,下面先介绍相关的背景知识。一、磁盘寻址方式:CHS和LBA1.CHS寻址方式 CHS是Cylinder(柱面)/Head(磁头)/

2、Sector(扇区)的缩写。 为什么会有这些参数,这要从早期的磁盘结构说起。很久以前,硬盘的容量还非常小的时候,为了扩大磁盘容量,人们把几个盘片叠加在一起,每个盘面由一个磁头访问,盘面又划分为许多同心圆环,这就是磁道,每条磁道又划分为许多区段,每个区段就称为一个扇区。 由此产生了所谓的3D参数(Disk Geometry),即磁头数(Heads)、柱面数(Cylinders,所谓柱面是由半径相同分属不同盘面的若干磁道组成)、扇区数(Sectors),以及相应的寻址方式。见附图:图片附件: 1.jpg (2006-12-13 20:16, 54.09 K)其中: 磁头数(Heads) 表示硬盘总

3、共有几个磁头,也就是有几面盘片, 最大为 255 (用 8 个二进制位存储); 柱面数(Cylinders) 表示硬盘每一面盘片上有几条磁道, 最大为 1024(用 10 个二进制位存储); 扇区数(Sectors) 表示每一条磁道上有几个扇区, 最大为 63 (用 6个二进制位存储)。 每个扇区一般是 512个字节,理论上讲这不是必须的,但好象没有取别的值的。 所以磁盘最大容量为: 255 * 1024 * 63 * 512 / 1024 / 1024 = 8032.5 MB。 在 CHS 寻址方式中,磁头,柱面,扇区的取值范围分别为 0到 Heads - 1, 0到 Cylinders -

4、 1,1到Sectors (注意是从1开始)。 只要确定CHS参数,硬盘就指定相应的磁头到相应的磁道和扇区去读写数据。2.LBA寻址方式 随着硬盘技术的不断发展,其容量也不断增大,现在的硬盘早就超过了8G的容量,那么现代硬盘又是如何寻址的呢?现在的硬盘都采用线性寻址的方式,即把硬盘上所有可用扇区(假定数目为N)从0到N - 1按序编号,硬盘读写数据时按扇区号寻址,这就是LBA寻址方式(logic block address),扇区编号也就是该扇区的LBA地址。 出于习惯,CHS寻址方式仍被沿用,只是其中参数不再具有实际意义,我们只能把它看作一种逻辑上的磁盘结构划分方式。现代磁盘的柱面数已经突破

5、了1024的限制,最大磁头数和扇区数仍为255和63。相对于LBA来说,CHS模式较为直观,所以磁盘编辑器通常采CHS模式来作为磁盘逻辑结构划分方式。二、MBR(Master Boot Record)、DPT(Disk Partition Table)、 主分区(Primary Partition)、扩展分区(Extended Partition) 和逻辑分区(Logical Partition) 硬盘的第一个扇区被称为主引导扇区,习惯上称为MBR,CHS参数为0,0,1,LBA参数为0,它包含了硬盘引导程序和硬盘分区表(DPT),作用十分重要,如果MBR扇区受损,那么系统就无法访问这个磁盘了

6、。1.MBR引导程序概述 MBR扇区的512字节数据中,前446字节(0 to 0x1BD)存放硬盘引导程序代码。电脑从硬盘启动时,系统从硬盘中首先读取MBR引导代码,其流程大致如下:(1) 将程序代码由0:7C00H移动到0:0600H(注,BIOS把MBR放在0:7C00H处) (2) 搜索可引导分区,即80H标志 成功:goto 3 失败:跳入ROM BASIC 无效分区表:goto 5 (3) 读引导扇区 失败:goto 5 成功:goto 4 (4) 验证引导扇区最后是否为0xAA55H 失败:goto 5 成功:goto 6 (5) 打印错误进入无穷循环 (6) 跳到0:7C00H

7、进行下一步启动工作 然后MBR引导程序就把系统控制权交给操作系统引导程序。 如果MBR损坏硬盘无法访问,可在DOS下输入: Fdisk /cmbr X(X = 1,第一块硬盘;X = 2,第二块硬盘),重写主引导记录。2.硬盘分区表(DPT) MBR扇区的最后66字节除去末尾的标志0xAA55H(所有引导扇区的标志。由于磁盘编辑器中的显示内容是从低址到高址排列的,所以AA55显示为55AA)外,剩余的64字节被称为硬盘分区表。硬盘分区表包含四个项目,每项16字节,代表四个分区的参数。分区表项的各字节含义如下:偏移 意义0 自举标志(80为活动分区,00为非活动分区)1 起始磁头号H2 起始扇区

8、号S3 起始柱面号CYL(CYL的高2位存放在S字节的高2位)4 分区格式标志(05:DOS Extended;06:BIGDOS FAT16; 07:NTFS;0B:FAT32; 0C: FAT32(对INT 13H指令使用LBA); 0E: FAT16(对INT 13H指令使用LBA); 0F: Extended(对INT 13H指令使用LBA); 82:LINUX Swap;83:LINUX;85:LINUX Extended) 5 终止磁头号H6 终止扇区号S7 终止柱面号CYL8-11 本分区之前已用扇区数(当分区表属于扩展分区中的记录时, 该值为相对扩展分区首地址的位置)12-15

9、 本分区扇区总数3.主分区(Primary Partition)、扩展分区(Extended Partition) 和逻辑分区(Logical Partition) DPT中可定义的分区包括主分区和扩展分区。所谓主分区,是指DPT中包含的能够被系统使用的磁盘分区,它是可以设置为活动的,即可以引导操作系统,一个硬盘只能有一个活动分区;而扩展分区并不能被系统使用,它的作用是突破DPT只能定义4个分区的限制。 其做法是:让DPT在定义主分区后,将多余容量定义为扩展分区,指定该分区的起始位置,根据起始位置指向硬盘的某一扇区,称作虚拟MBR,在其中定义下一个分区表。如果只有一个分区,就定义该分区,然后结

10、束;如果不止一个分区,就定义一个基本分区和一个扩展分区,扩展分区再指向下一个分区表,在下一个分区表中继续定义分区,直至结束。这样就形成一个分区链,可以描述所有的分区。 任何分区表中只能有一个扩展分区,扩展分区不能引导操作系统。位于扩展分区中的可被系统使用的磁盘分区称为逻辑分区,逻辑分区不能设置为活动。由于定义了扩展分区和逻辑分区的概念,windows使用的磁盘盘符可以一直到Z,见下图。图片附件: 2.jpg (2006-12-13 20:17, 16.02 K)三、硬盘分区结构实例分析 使用磁盘编辑器可以直接访问硬盘数据,一般磁盘编辑器都是以十六进制显示数据。这里推荐使用数据恢复领域内被广泛使

11、用的软件WinHex,这个软件能在windows下直接读写磁盘扇区。打开WinHex,点击“工具”菜单,选择“磁盘编辑器”“物理媒介”“HD0.”,这样整个硬盘的数据就以十六进制的方式显示于编辑框之内。下面就对本人的硬盘分区情况进行分析。1.MBR扇区图示图片附件: 3.jpg (2006-12-13 20:19, 111.02 K)如图所示,MBR扇区的01bd区段是MBR引导代码, 1be1dd一共有32字节代表两个分区表项,末尾0xAA55H是引导扇区的标志。 第一分区各项参数为: 80,01,01,00,0C,FE,FF,FF,3F,00,00,00,F8,93,32,02。 第一项8

12、0,代表该分区是活动的(可以引导操作系统); 起始位置是0柱面、1磁头、1扇区; 0C代表该分区是FAT32格式;FE、FF、FF三项代表终止柱面磁头扇区的序号, 由于该分区大于8G,所以它的CHS参数已经没有意义; 3F,00,00,00是该分区首扇区的LBA地址,为0x3FH,等于63; F8,93,32,02代表该分区的扇区数 (由于排列是从低址到高址,扇区数应该是0x23293F8H,为36869112个扇区)。 第二分区各项参数为: 00,00,C1,FF,0F,FE,FF,FF,37,94,32,02,49,E8,C9,04。 第一项00,代表该分区是非活动的; 起始CHS参数柱面

13、号无效,磁头号0,扇区号1;0F代表该分区是扩展分区; 37,94,32,02是该分区首扇区的LBA地址,为0x2329437H,等于36869175; 49,E8,C9,04代表该分区的扇区数,为0x4C9E849H,一共80341065个扇区。2.扩展分区首扇区(虚拟MBR)图示(1)第一扩展分区首扇区(虚拟MBR)图示图片附件: 4.jpg (2006-12-13 20:20, 141.63 K)如前文所述,由于DPT只能记录4个分区的信息,windows通过扩展分区来记录多于4个分区的信息。DPT中的扩展分区称为第一扩展分区,它的首扇区称作虚拟MBR。 从示例图上可以看到扩展分区的首扇

14、区之内没有MBR引导代码,只有分区表,一共有两项记录,表示一个逻辑分区和一个扩展分区。 第一分区各项参数: 00,01,C1,FF,0B,FE,FF,FF,3F,00,00,00,37,16,71,02。 第一项00,代表该分区是非活动的; 起始CHS参数柱面号无效,磁头号1,扇区号1;0B代表该分区是FAT32文件系统; 3F,00,00,00是该分区首扇区的LBA地址(相对第一扩展分区首扇区),为63; 37,16,71,02代表该分区的扇区数,一共40965687个扇区。 第二分区各项参数: 00,00,C1,FF,05,FE,FF,FF,76,16,71,02,D3,D1,58,02。

15、 第一项00,代表该分区是非活动的; 起始CHS参数柱面号无效,磁头号0,扇区号1;05代表该分区是扩展分区; 76,16,71,02是该分区首扇区的LBA地址(相对第一扩展分区首扇区); D3,D1,58,02代表该分区的扇区数,一共39375315个扇区。(2)第二扩展分区首扇区(虚拟MBR)图示图片附件: 5.jpg (2006-12-13 20:21, 153.53 K)如图所示,该扩展分区只包含一个逻辑分区,它的分区表各项参数如下: 00,01,C1,FF,07,FE,FF,FF,3F,00,00,00,94,D1,58,02 第一项00,代表该分区是非活动的; 起始CHS参数柱面号

16、无效,磁头号是1,扇区号是1; 07代表该分区是NTFS文件系统; 3F,00,00,00是该分区首扇区的LBA地址(相对第二扩展分区首扇区),为63; 94,D1,58,02代表该分区的扇区数,一共39375252个扇区。 综上所述,该硬盘的分区结构已经搞清楚了,它的主分区表中包括一个主分区(活动的)和第一扩展分区;第一扩展分区中包含一个逻辑分区和第二扩展分区;第二扩展分区包含一个逻辑分区,如图所示。图片附件: 6.jpg (2006-12-13 20:22, 16.22 K)3.主分区和逻辑分区首扇区图示 如前文所述,该硬盘一共有三个分区,C区为主分区、FAT32格式,D区是逻辑分区、FA

17、T32格式,E区是逻辑分区、NTFS格式。我们就来看看这三个分区的第一扇区各自都有什么特点。(1)C区首扇区图示图片附件: 7.jpg (2006-12-13 20:23, 181.84 K)C区首扇区结尾标志是0xAA55H,CHS参数为0,1,1。 扇区第一行出现MSWIN4.1字样(由于文本显示不正确,“M”被省略掉了), 说明该分区是FAT32文件系统,在偏移5259区段还有FAT32字样。 C区首扇区内保存着该分区的引导代码,这略去不谈,我们只关注1C23字段。 其中1C1F字段是3F,00,00,00,这是LBA地址,表示该分区之前有63个扇区; 2023字段是F8,93,32,0

18、2,是该分区的总扇区数。 以上这些信息十分重要,对于我们下面手工恢复磁盘分区结构十分关键。(2)D区首扇区图示图片附件: 8.jpg (2006-12-13 20:23, 120.57 K)D区首扇区结尾标志是0xAA55H,CHS参数为X,1,1,扇区第一行出现MSDOS5.0字样 (由于文本显示的问题,“M”被省略掉了), 说明该分区是FAT32文件系统,在偏移5259区段还有FAT32字样。 1C1F字段是3F,00,00,00,这是D区的LBA地址,表示该分区之前有63个扇区 (相对于扩展分区首扇区而言),2023字段是37,16,71,02, 是该分区的总扇区数。(3)E区首扇区图示

19、图片附件: 9.jpg (2006-12-13 20:24, 151.31 K)E区首扇区结尾标志是0xAA55,CHS参数为X,1,1,扇区第一行出现NTFS字样 (由于文本显示的问题,“N”被省略掉了,在磁盘编辑器中是显示完全的), 说明该分区是NTFS文件系统。 282F字段是93,D1,58,02,00,00,00,00,是E区可使用的总扇区数, 与第二扩展分区表中记录的E区总扇区数相差1。为何相差1呢?那是因为NTFS 文件系统的一个特性,它会把分区最后一个扇区用来保存首扇区的备份,这个 扇区是保留的,不能被用户使用。一般保留扇区数目为1,但也有大于1的情况, 这时NTFS分区首扇区

20、中记录的可用扇区数和分区表中记录的总扇区数相差就不是1了。4.总结 综上所述,有几点经验值得重视:(1)所有引导扇区的末尾都是0xAA55H。(2)硬盘MBR扇区的CHS参数是0,0,1; 所有扩展分区首扇区的CHS参数是X,0,1; 主分区、逻辑分区的首扇区CHS参数是X,1,1, 主分区的CHS参数也可以是X,0,1 主分区、逻辑分区的首扇区也可能不是1号扇区,这个现象是存在的。(3)所有扩展分区、主分区、逻辑分区终止CHS参数都为:X,254,63。 综合(2)、(3)来看,所有分区的大小都是整数柱面,绝对不能跨柱面存在。(4)所有扩展分区一般只包含分区表数据和0xAA55H标志,不含引

21、导代码,有例外。(5)第一扩展分区的LBA地址是相对于MBR而言,而之后的扩展分区的LBA地址计算 都是以第一扩展分区的位置为基准。(6)主分区、逻辑分区的首扇区常常带有FAT32、NTFS之类的字符串, MSWIN4.1、MSDOS5.0是FAT32分区的标志,MSDOS5.0还可能是 FAT16分区的标志。引导扇中保存有该分区的大小数据,对于NTFS 分区来说,引导扇中记录的分区扇区数和分区表中记录的数据相差个位数, 通常是1。这对我们找回丢失的分区十分关键。(7)似乎第一扩展分区类型是0F,之后的扩展分区为05类型,主分区为FAT32格式, 类型为0C,逻辑分区若为FAT32格式则为0B

22、类型。四、硬盘分区表恢复实战经历1.使用工具软件自动恢复硬盘分区 这里选用深山红叶的硬盘分区表管理软件进行操作,为了截图方便,整个过程都在虚拟机中进行。(1)首先查看一下硬盘的分区情况,有三个分区,C区是活动的主分区,NTFS格式,D、E是逻辑分区,FAT32格式,接着用分区软件把硬盘所有分区删除,如图。图片附件: 10.jpg (2006-12-13 20:25, 73.27 K)图片附件: 11.jpg (2006-12-13 20:26, 58.58 K)2)打开硬盘分区表修复与管理软件Partition Table Doctor 3.0,点击“操作”菜单,选“重建分区表”交互模式,软件

23、自动搜索,找到三个分区,如图。图片附件: 12.jpg (2006-12-13 20:27, 40.93 K)图片附件: 13.jpg (2006-12-13 20:27, 64.99 K)(3)在“文件”菜单中选择保存,于是丢失的分区又回来了,如图。图片附件: 14.jpg (2006-12-13 20:28, 57.36 K)2.使用磁盘编辑器手工恢复磁盘分区表 有朋友可能会问,既然有软件能自动恢复,为何还要费时费力地手动恢复呢?其实手动恢复的过程虽然繁琐,却能让我们对磁盘分区的结构有清楚的了解,再说软件虽好却不够智能,遇到比较复杂的情况就无能为力了,这时只能借助磁盘编辑器手动恢复,我们只

24、要了解了原理,在实际情况中就能游刃有余。(1)打开硬盘分区表修复与管理软件Partition Table Doctor 3.0,点击“扇区”“编辑扇区”,弹出十六进制磁盘编辑器,首先显示的是硬盘主引导扇区,CHS:0,0,1,如图。图片附件: 15.jpg (2006-12-13 20:29, 109.41 K)从图上可以看到,主分区表已经被清空,说明删除分区的操作其实就是清除分区表中的相关项,只要正确地填写出分区表数据,那么丢失的分区就找回来了。(2)恢复C分区: 移动扇区至0,1,1位置,这是C区的首扇区。图片附件: 16.jpg (2006-12-13 20:29, 110.65 K)从

25、图上可以看到该分区是NTFS系统, 大小是7F,E2,5D,00,实际大小还要再加上1,为80,E2,5D,00。 移动扇区至0,0,1位置,填写1BE1CD字段。 由于该分区小于8G,所以CHS参数要填写正确。 起始CHS参数是0,1,1,终止CHS参数是382,254,63。 终止柱面号可以这样计算: (终止柱面号 + 1)X 255 X 63 分区总扇区数 + 分区之前的总扇区数。 于是C分区的分区表参数如下: 80,01,01,00,07,FE,7F,7E,3F,00,00,00,80,E2,5D,00, 填写完毕,保存。图片附件: 17.jpg (2006-12-13 20:30,

26、106.47 K)(3)恢复第一扩展分区: 第一扩展分区首扇区的LBA地址应为63 + C分区扇区总数, 为BF,E2,5D,00(6152895)。 起始CHS参数应为:383,0,1,终止CHS参数为1043,254,63 (此处柱面号大于1023,填写分区表时按1023计)。 扩展分区大小为10618965个扇区,换算为十六进制为55,08,A2,00。 再移至硬盘主引导扇区,编辑1CE1DD字段,输入: 00,00,41,7F,0F,FE,FF,FF,BF,E2,5D,00,55,08,A2,00,保存。图片附件: 18.jpg (2006-12-13 20:31, 108.5 K)(

27、4)恢复D分区: 把磁盘编辑器移动至383,1,1扇区,这就是D区首扇区。图片附件: 19.jpg (2006-12-13 20:32, 110.02 K)由图可知该分区是FAT32格式,大小是80,E2,5D,00。 移动扇区至383,0,1位置,此处为第一扩展分区首扇区。先在末尾填上55AA标志。 起始CHS参数为383,1,1,终止CHS参数为765,254,63。 于是D分区的分区表参数如下: 00,01,41,7F,0B,FE,BF,FD,3F,00,00,00,80,E2,5D,00, 填写1BE1CD字段,保存。图片附件: 20.jpg (2006-12-13 20:32, 10

28、4.35 K)5)恢复E分区: 第二扩展分区首扇区位于766,0,1; LBA地址为D区扇区数 + 63,等于BF,E2,5D,00。 把磁盘编辑器的当前扇区移到这里,发现分区表依然完好,如图所示。图片附件: 21.jpg (2006-12-13 20:33, 105.6 K)这样的话剩下的过程就很容易了,从分区表中可以获知E区大小是57,25,44,00, 由此可知第二扩展分区大小为E区扇区数 + 63,等于96,25,44,00。 把磁盘编辑器移至383,0,1,即第一扩展分区首扇区, 编辑1CE1DD: 00,00,81,FE,05,FE,FF,FF,BF,E2,5D,00,96,25,44,00,保存。图片附件: 22.jpg (2006-12-13 20:34, 107.32 K)至此大功告成,如图所示,丢失的分区已经全部找回。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 临时分类 > 大杂烩


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号