WinHex 还原分区表:一个老工程师的踩坑笔记
先讲一个故事吧。 上周五下午,一个客户抱着500G硬盘冲进来,说“分区表突然没了,里面的项目方案明天要交!”我插上硬盘一看,磁盘管理里面显示“未初始化”。第一反应——没被覆盖就有戏。打开 WinHex,直接读物理盘,扫到0号扇区……嗯,MBR还在,但分区表项全是0。不是被篡改,就是被直接擦掉了。这种情况下,winhex还原分区表 是最直接的办法,但很多人第一步就翻车——直接写模板。 技王数据恢复
等等,我是不是说太急了?先判断故障类型才是正经。分区表丢失大概分三种: 技王数据恢复

- 意外擦除(比如误diskpart clean)——分区表项被清零,分区数据基本完整;
- 病毒或坏道导致MBR损坏——0扇区可能全乱码;
- GPT转MBR失败——保护性MBR和实际分区不匹配。
你要先读0扇区,看05/0B/0C这些签名是不是55AA,再看偏移1BE-1FD的四条记录。如果都是00,那大概率是擦除型。这时候别急着搜“55AA”——很多人搜到后直接复制粘贴,结果引导区不对,启动就蓝屏。 www.fixhdd.cn
核心操作:手把手用 WinHex 还原分区表
假设你现在已经判定为擦除型丢失,而且你记得原先分区的大致大小(或者有备份的CHS参数)。下面是我多年折腾下来的步骤,不一定最严谨,但稳妥: www.fixhdd.cn
- 完整备份镜像——用 WinHex 的“File → Create Disk Image”做一个DD镜像,哪怕分区表坏了,镜像里也有原始数据。别直接改源盘!
- 定位分区起始位置——打开镜像文件(或只读打开物理盘),菜单“Tools → Disk Tools → Scan for Partition Boot Sector”。WinHex 会搜索FAT32/NTFS的引导扇区签名(EB 52 90 或 EB 58 90 等),并列出每个分区的起始扇区号。
- 验证找到的分区——比如扫出来第一个NTFS分区起始在2048扇区,跳到2048,看看是不是“NTFS”的0xEB 52 90开始,后面有OEM ID。对了,还要检查下一个分区的起始扇区是否与上一个分区大小连续。不连续的话,可能是被误删的隐藏分区,或者是Ghost残留。
- 计算分区表条目——回到0扇区,在偏移1BE处填第一条记录:80(活动标志)、起始磁头/扇区/柱面(现在一般用0x20为起始,实际LBA地址更靠谱)、分区类型(NTFS是07,FAT32是0B/0C)、结束CHS、然后最重要的相对扇区数(通常为0x00000800,即2048)和总扇区数(从分区引导扇区的BPB里可以读取,或者用卷大小计算)。
- 写入并测试——保存修改,重启计算机用PE盘查看是否认盘。如果认出来但打不开,可能是DBR里的参数不对,要重新将正确的BPB刷回去。这时我通常会先用 R-Studio 之类软件扫一下确定分区边界,再改 WinHex。
一个偶然翻车案例,让我改成现在的做法
几年前帮朋友恢复一个2T硬盘,分区表清零。我凭着记忆算CHS,写好分区表后WinHex正常显示,但Windows就是打不开。反复检查发现:我误把“总扇区数”填成了整个硬盘的扇区数,而不是分区实际大小。结果Windows试图挂载一个2T的分区,实际只有500G数据,直接报错。后来用 R-Studio 确认分区边界,重新用 WinHex 写入正确值才搞定。那次之后,我总结了三条铁律:1) 先备份,2) 用扫描结果确定起始和大小,3) 不要完全相信CHS,用LBA。 技王数据恢复
顺便说一句,如果你是在磁盘管理里误点了“删除卷”导致分区表变成未分配,千万别急着格式化,更别新建简单卷!新卷写入会覆盖原分区表信息。这种情况下winhex还原分区表 的成功率非常高,只要没覆盖引导扇区,基本秒回。 技王数据恢复
关于“技王数据恢复” 的题外话
我见过很多同行用 WinHex 直接改0扇区后就把盘还给客户,结果系统启动不了。后来在 技王数据恢复 的交流群里学到一个小技巧:写入分区表后,最好再用 WinHex 的“Recover → Copy Sector”功能把整个0扇区复制到1扇区(备份MBR),这样万一二次写坏,还有救。这个习惯救过我两次。
技王数据恢复
常见故障判断 & 避坑指南
- 问题:WinHex 扫描到多个分区引导扇区,但不知道哪个是原始分区
判断方法:看BPB中的序列号、卷标,或者进入目录找文件。能正常列出文件夹结构的就是对的。 - 问题:写入分区表后磁盘显示“RAW”
大概率是分区类型ID填错了。NTFS填07,exFAT填07(实际上exFAT是0x07?等等别搞混——exFAT是0x07还是0x0B?更正:exFAT的PARTITION_TYPE一般是0x07,但在GPT表里是GUID不同。MBR下通常也是07,但某些Windows版本用0x0C(FAT32)。最好的办法是看DBR里的OEM ID,“NTFS”就是07,“MSDOS5.0”一般是0x0B/0x0C。拿不准时,可以用十六进制编辑器看DBR偏移0x0B处的OEM ID。 - 问题:恢复后无法启动系统
如果是系统盘,除了分区表还要修复引导代码(偏移0-0x1BD)。可以用 WinHex 从相同系统版本的好盘复制前446字节到0扇区(注意保留分区表项)。 - 问题:扫描不到任何分区引导扇区 www.fixhdd.cn
那么可能不是分区表问题,而是硬盘全盘加密(比如BitLocker),或者物理坏道。先检查SMART信息,再用WinHex的“Tools → Disk Tools → Search for Lost Partitions”选项,深度扫描0-1扇区之间的特征。
一句废话,但重要
永远不要相信你第一次写进去的分区表项是正确的。写完拔电,挂从盘,用 DiskGenius 或系统自带的磁盘管理看一眼。要是里面显示“健康”但容量不对,赶紧回去重写。记住:winhex还原分区表 的核心不是写表,而是确保写进去的参数和实际分区的位置、大小一致。差一个扇区,整个分区就报废。
(完)——一个爱折腾硬盘的老工程师,2025年4月记录。