tengjiao 发表于 2010-7-11 17:29:35

谢谢分享!!

niku 发表于 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

修改,重启后效果:

a821741315 发表于 2010-7-19 10:17:49

呵呵。支持一下了

quhaiboo 发表于 2010-7-19 10:48:33

下了,谢谢楼主

sk_roger 发表于 2010-7-29 00:52:08

lz厚道,学习了

init0 发表于 2010-9-1 21:43:19

学习一下。谢谢提供教程。

tomboy2008 发表于 2010-9-13 12:03:51

支持下来学习

jtchuchu 发表于 2010-9-15 16:09:33

本贴适合会使用diskgen恢复分区,但当diskgen只能恢复部分分区,利用分区表之间的联系,用winhex恢复剩余分区的网友学习,至于金钱,也希望大家理解

cjteam 发表于 2010-9-22 21:38:22

江老师也来基地了~~~欢迎哦~~~

servepc 发表于 2010-9-22 22:18:02

呵呵,DISKGEN不是可以做的事吗?
页: 7 8 9 10 11 12 13 14 15 16 [17] 18 19 20 21 22
查看完整版本: 使用winhex手工恢复已覆盖的主分区表和第一虚拟mbr