1.
为什么写这篇blog
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
上个星期SATA开始不停地出问题,经常性的在使用中分区信息丢失。开始只是C盘信息丢失,也就忍了,每次用Ghost还原。最后一次居然整个扩展分区没了,所有电影音×××戏一概报销。只好临时把系统又装回老硬盘。虽然丢失的没有重要资料,毕竟是一大堆攒下来的东西,很不爽,决定找回来。在网上搜硬盘工具没找到理想的,倒是顺便又温习了一遍分区表知识,于是决定自己动手,丰衣足食。装上WinHex,直接开干。
2. MBR
(主引导记录)and Partition Table(分区表)
MBR
| |
扇区内偏移
|
描述
|
0x0000
|
引导代码
|
0x<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />018A
|
4
个9字节供IBM扩展的分区表项
|
0x01B8
|
4
字节磁盘签名
|
0x01BE
|
4
个16字节主分区表项
|
0x01FE
|
2
字节MBR签名(0xAA55)[1]
|
[1]
|
0x01FE
是55,0x01FF是AA。
|
分区表项
| |
表项内偏移
|
描述
|
0x00
|
可引导标志
|
0x01
|
起始CHS地址
|
0x04
|
分区类型
|
0x05
|
结束CHS地址
|
0x08
|
4
字节起始LBA地址
|
0x0C
|
4
字节分区大小,以扇区计算
|
3. 修复过程
理解了MBR和Partition Table,修复思路就很清晰了。我的数据分区大概是占用250G硬盘的后180G,所以从硬盘头六分之一的位置开始,搜索分区表的明显标志0x55AA。WinHex的方便的搜索功能还可以设置只搜索存在于整数倍于512字节块的末尾的0x55AA,速度快很多。每找到一个最后两字节为0x55AA的扇区,就分析4个分区表项是不是合理的,以及它所描述的分区大小,终于找到一个扇区,含有一个分区表项,大小180G,哈哈,肯定就是它了。这个扇区肯定就是扩展分区的起始扇区,它含有的那个分区表项肯定就是它唯一包含的一个逻辑分区了。
在MBR中创建一条属性为扩展分区(05)的分区表项,填入其他相关位置信息,以描述刚才找到的这个扩展分区:
CHS
起始位置:一般是逻辑分区表项中的CHS起始位置,把磁头数改为0。
-----------------------------------------------------------------------
----------------------------------------------------------------------------\
转载于:https://blog.51cto.com/adivon/184529