|
发表于 2010-7-18 10:29:45
|
显示全部楼层
一客户,160GB硬盘,分成5个区,其中c盘10GB左右,一日,用ghost重做系统,结果变成一个区,并向桌面拷贝入10GB左右的文件,现要求恢复d,e,f,g中的数据。
用diskman扫描出两个逻辑分区,进入winpe确认内容完好,下面进行剩余分区的恢复。
首先介绍分区表原理
以一个主分区,其余扩展分区为例
主mbr:
63(隐藏扇区) A(本分区扇区数)
63+A(本分区之前的隐藏扇区) 整个硬盘扇区-A
第一虚拟mbr 的位置在63+A 处,数据为:
63 B(逻辑第一分区扇区数)
63+B 63+C(逻辑第二分区扇区数)
第二虚拟mbr的位置在63+A+63+B处,数据为:
63 C
63*2+B+C 63+D (第三分区大小)
用winhex打开后显示:
分区1(149GB)
分区2(37.3GB) 起始扇区97675263
分区3(37.3GB) 起始扇区175815423
分区4(28GB) 起始扇区253955583
整个硬盘扇区数为:312581808
分区1显然是错误分区,分区2和分区4的内容完好。
从分区2的位置看,前面还有46GB左右空间,应该为原来的c盘和d盘。
那么分区2实际为扩展分区的第二个逻辑分区,初步判断主mbr和第一虚拟mbr破坏。
第二虚拟mbr的位置在97675263-63=97675200处;
数据为
由前面公式:
C=(4a852c1)H= 78140097
63*2+B+C=(950a600)H=156280320
可得B=78140097
由于第二虚拟mbr的位置在63+A+63+B处
所以63+A+63+B=97675200
所以A=19534977
根据主分区的公式为
63(隐藏扇区) A(本分区扇区数)
63+A(本分区之前的隐藏扇区) 63*n+B+C+D+…
所以其数据为:
63 19534977
19535040 312581808-19534977=293046831
转换为十六进制:
0000003F 012A1481
012A14C0 11778A2F
用winhex修改主mbr如下图:
第一虚拟mbr的位置在63+A处,也就是19535040,其公式为:
63 B(逻辑第一分区扇区数)
63+B 63+C(逻辑第二分区扇区数)
对应数据:
63 78140097
78140160 78140160
转换为十六进制:
0000003F 04A852C1
04A85300 04A85300
修改,重启后效果: |
|