用WinHex直接修改磁盘分区表找回丢失的分区

1. 为什么写这篇blog
  上个星期SATA开始不停地出问题,经常性的在使用中分区信息丢失。开始只是C盘信息丢失,也就忍了,每次用Ghost还原。最后一次居然整个扩展分区没了,所有电影音乐游戏一概报销。只好临时把系统又装回老硬盘。虽然丢失的没有重要资料,毕竟是一大堆攒下来的东西,很不爽,决定找回来。在网上搜硬盘工具没找到理想的,倒是顺便又温习了一遍分区表知识,于是决定自己动手,丰衣足食。装上WinHex,直接开干。
2. MBR (主引导记录)and Partition Table(分区表)
MBR 是磁盘第一个扇区,CHS地址是0柱面,0磁头,1扇区;LBA地址是0。布局如下:
MBR
扇区内偏移
描述
0x0000
引导代码
0x 018A
4 9字节供IBM扩展的分区表项
0x01B8
4 字节磁盘签名
0x01BE
4 16字节主分区表项
0x01FE
2 字节MBR签名(0xAA55[1]
 
[1]
0x01FE 550x01FFAA
 
分区表项
表项内偏移
描述
0x00
可引导标志
0x01
起始CHS地址
0x04
分区类型
0x05
结束CHS地址
0x08
4 字节起始LBA地址
0x 0C
4 字节分区大小,以扇区计算

3.
修复过程
  理解了MBRPartition Table,修复思路就很清晰了。我的数据分区大概是占用 250G 硬盘的后 180G ,所以从硬盘头六分之一的位置开始,搜索分区表的明显标志0x55AAWinHex的方便的搜索功能还可以设置只搜索存在于整数倍于512字节块的末尾的0x55AA,速度快很多。每找到一个最后两字节为0x55AA的扇区,就分析4个分区表项是不是合理的,以及它所描述的分区大小,终于找到一个扇区,含有一个分区表项,大小 180G ,哈哈,肯定就是它了。这个扇区肯定就是扩展分区的起始扇区,它含有的那个分区表项肯定就是它唯一包含的一个逻辑分区了。
MBR中创建一条属性为扩展分区(05)的分区表项,填入其他相关位置信息,以描述刚才找到的这个扩展分区:
CHS 起始位置:一般是逻辑分区表项中的CHS起始位置,把磁头数改为0
-----------------------------------------------------------------------
完整DOC有带图在附件里,技术强的文章。 完整DOC有带图在附件里,技术强的文章。
----------------------------------------------------------------------------\

你可能感兴趣的:(职场,分区表,休闲,winhex)