刚刚学完数据恢复,老师给我们一块虚拟硬盘让我们恢复数据。其实就是分区误删除。把分区表重建出来,数据就恢复啦,并且删除分区之前的数据可以百分之百的恢复出来。完全恢复的前提是没有对该分区重新分区格式化,没有再写入数据。
     下图是在计算机管理中看的硬盘
 
数据恢复之分区误删除
 
     下面介绍一下我恢复的过程。
     首先我用WinHex分析了一下硬盘的分区表。从WinHex中我们可以知道原来该硬盘共有4个分区,如图
 
数据恢复之分区误删除
 
     该硬盘的分区结构有点复杂前两个文件系统类型是FAT32、后两个的类型是NTFS。接下来我算了一下这四个分区的起始和结束。
     我的计算方法是:通过“访问”找到分区的起始记录下来,然后在找到下一个分区的起始。一般情况下分区与分区之间很紧凑,首尾相连。找到下一个分区的起始就可以推算出上一个分区的结束。分区的大小在每个分区的第一个扇区中有记录,由文件系统的类型决定记录的位置。FAT32类型:分区大小记录的位置在0x20H (也就是该分区起始扇区第三行的前四个字节)这四个字节表示该分区的实际扇区数;NTFS类型:分区大小记录的位置在0x28H(也就是该分区起始扇区第三行第8~12)这四个字节表示的扇区数比该分区的实际扇区数少一个扇区。
     演示一个:
     1、第一个分区 “访问”——“打开起始扇区”  
 
数据恢复之分区误删除
 
这是第一个FAT32分区的大小:  00  82  3E  00     
将十六进制的熟转换为十进制:4096512
用LBA表示起始扇区是:63
用C/H/S 表示起始扇区:0/1/1
     2、第二个分区   “访问”——“打开起始扇区” 
 
数据恢复之分区误删除
 
只需要看扇区:4096575       所以第一个分区的结束就是它的上一个扇区:4096574
    3、总结分区起始和结束是:
          LBA     63——4096574
          C/H/S   0/1/1——254/254/63
     按照以上方法算出每个分区的起始和结束。在算到第三个扇区时有点问题,它的起始和上一个分区的结束相差63个扇区。初步推断那应该有一个分区表。并且在第四个分区的前面也有一个分区表,该分区表保存完整不需要改动。只需要修复前两个分区表就行啦。所以我绘制了如下硬盘分区示意图
 
数据恢复之分区误删除
 
     这样分区表中重要的数据就有啦。BIOS识别分区表主要是看它下面三项:
     1、第一个字节(是否可引导)
     2、第五个字节(文件系统的类型)
     3、后八个字节(前四个字节分区之前的扇区数、后四个字节分区的大小)
    
     接下来开始计算分区表,一共有三个分区表只需要恢复前两个就可以啦。下面是我经过计算得出来的分区表:
分区表<一>
数据恢复之分区误删除
 
分区表<二>
数据恢复之分区误删除
 
好啦! 分区表已经恢复出来啦 ,只要保存后重启计算机。
 
数据恢复之分区误删除
 
分配新的盘符后打开数据都在。
 
数据恢复之分区误删除
数据恢复之分区误删除
数据恢复之分区误删除
数据恢复之分区误删除
 
并且数据可用,打开该版本的WinHex
 
数据恢复之分区误删除
 
数据都恢复啦!还有一种简单的方法用深山红叶工具盘中的“万用 MS-DOS 工具箱”
 
数据恢复之分区误删除
 
用Diskgen    重建分区表
 
请各位博友多宝贵意见!