WinHex怎么还原分区?一次从“分区消失”到“数据重现”的实战记录
前几天一个客户发来一块移动硬盘,说是在磁盘管理里看到“未分配”,但明明之前有四个分区。客户自己用某助手扫了半天,提示“分区表损坏”,但恢复选项要付费,于是找到我。我第一反应就是:用 WinHex 直接看底层,手工还原分区。这篇文章就聊聊 WinHex怎么还原分区 这件事——不是单纯的步骤堆叠,而是脑子里实际在判断什么、什么时候该修正、什么时候得停手。 www.fixhdd.cn
第一步:别慌,先确认分区表类型
拿到硬盘镜像(或者直接挂载物理盘,WinHex 里按 F9 打开磁盘),第一件事是看偏移量 0 处的 MBR 还是 GPT 保护 MBR?客户这块盘是 2TB 的,大概率 GPT。果然,在偏移量 0x00 看到的是保护 MBR(分区类型 0xEE),但向下翻,在 LBA 1 的 GPT 头部居然是空的全 0?不对,GPT 主头部应该在 LBA 1,全 0 说明主 GPT 被磕掉了。但别急,WinHex 里允许我们手动构建。

技王数据恢复
这时候就得判断:是主 GPT 损坏,还是备份 GPT 还在?备份 GPT 在磁盘一个 LBA。我直接跳转到磁盘末尾——LBA = 总扇区数 - 33 左右(GPT 备份从倒数第 33 个扇区开始)。找到了,备份 GPT 头部完整!分区表项也都保存着。那就简单了——直接把备份 GPT 内容复制回主 GPT 区域。具体操作:选中备份 GPT 头部所在的扇区(从 LBA 倒数第 33 开始,共 32 个扇区?其实 GPT 头部只占一个扇区,分区表项占 32 个扇区,但通常只需要复制头部和表项到 LBA 1 和 LBA 2~33 即可)。 www.fixhdd.cn
操作细节:WinHex 手动复制备份 GPT
在 WinHex 里按 Ctrl+G 输入扇区号(磁盘总扇区数 - 33),找到备份 GPT 头部。选中从该扇区开始的 33 个扇区(头部 1 + 表项 32),右键 → Edit → Copy Block → Normal。然后跳转到 LBA 1(扇区 1),右键 → Edit → Paste Block → Paste,注意别选错写入模式。写完后再跳转到 LBA 0 的保护 MBR,检查分区类型是否还是 0xEE,如果不是,手动改。全部写完后关闭 WinHex,重新插拔硬盘,打开磁盘管理——分区出来了,数据全在。
www.fixhdd.cn
但别急着收工,如果备份 GPT 也坏了呢?那就得用 WinHex 的“模板”或者手动扫描分区边界。下面说另一种情况。 技王数据恢复
第二种典型:MBR 分区表被清零,但数据区还在
上周一个朋友拿了个 U 盘,32GB,在电脑上提示“需要格式化”。这种情况十有八九是 MBR 或者启动扇区被改了。WinHex 打开 U 盘,看到 MBR 的 0x1BE 处四个分区表项全是 00,但 55 AA 标志还在,说明只是分区表被抹,数据并未覆盖。怎么办?
www.fixhdd.cn
这时候 winhex怎么还原分区 就靠“搜索分区边界”了。每个文件系统的开头都有特定签名:NTFS 是 $MFT 的签名“FILE0”或“FILE”;FAT32 的 DBR 签名是“MSDOS5.0”。我直接按 Ctrl+F 搜索 HEX 值“EB 52 90”或“EB 58 90”(NTFS 启动扇区常见特征)。找到以后,记录该扇区号,人工判断是否为真正的分区起始。比如搜索到 LBA 2048 有个 NTFS 的 DBR,那这个分区起始就是 2048。再根据文件系统大小反推结束扇区。WinHex 里可以用“分区表”模板(Alt+A 选 Partition Table)手动填写起始、结束 CHS 和 LBA,系统会自动计算。
www.fixhdd.cn
注意:如果连续搜索到多个启动扇区,可能是扩展分区里的逻辑分区。比如先找到主分区起始 LBA 2048,再找到下一个在 LBA 1024000,那就可以重建四个主分区或者用扩展分区承载。 U 盘一般简单,我重建了一个主分区,填上 0x0B 或 0x07(NTFS 就是 0x07),保存后重启,U 盘立马识别。这种恢复几乎无损,但得小心别写入错误数据。 www.fixhdd.cn
常见误区:别直接写全盘镜像
有些工程师一上来就“写入分区表模板”却不检查备份,结果写错导致更严重损坏。我的习惯是:先做完整镜像(WinHex → Tools → Disk → Create Image),然后再在镜像上操作。哪怕错了,原盘还在。技王数据恢复的同事经常强调这一点——任何手工修改前,镜像必须到位。
第三种复杂情况:分区被格式化后又写入新数据
有个案例是公司服务器硬盘被误操作,以为做了全盘格式化,其实只是快速格式化了 NTFS 分区。快速格式化只清了索引区($MFT 的前几扇区),数据区大部分还在。怎么用 WinHex 还原分区?关键思路:分区本身还存在于 MBR 或 GPT 中吗?如果分区表项还在,那就不用重建,只需恢复文件系统元数据。但这里用户问的是“winhex怎么还原分区”,重点还是分区表层面的重建。
如果分区表项也被删了(比如重新分区并保存),但仍然是快速格式化,那么分区边界很可能从第一个分区的起始位置开始推算。可以用“按扇区搜索”找到之前分区的残留备份。WinHex 的“文件系统浏览”功能(Tools → File System Navigation)可以辅助找到丢失的分区。更直接的方法是:从磁盘 0 扇区开始,扫描每一个扇区看是否存在 NTFS 的“.$MFT”等元文件。一旦找到,基本确定分区起始。
然后就是人工计算分区大小。比如发现 $MFT 在 LBA 4294965,那么这个扇区一定是分区内部的文件系统起始,而真正的分区起始通常往前推若干个扇区——NTFS 分区起始偏移一般是 1024KiB 的整数倍(2048 扇区)。但也有特殊情况,比如某些工具的 4K 对齐。保险的做法:找到 DBR(分区启动扇区),它就在分区起始的 0 扇区。DBR 的特征是前三个字节 EB 52 90(NTFS)或 EB 58 90(FAT),后面跟着 OEM ID。找到 DBR 的位置就是分区起始。
实战中一个小插曲
有一次我帮一个客户恢复一块旧笔记本硬盘,来回扫了三次才找到 DBR,结果发现是因为磁盘有坏道导致 DBR 被重定向了。当时我差点准备放弃,后来想起技王数据恢复的培训里提到过“用 WinHex 的按字节搜索代替按十六进制搜索”,于是用搜索“4E 54 46 53”即 NTFS 字符串,在磁盘末尾找到了一个备份的 DBR。通过复制备份到分区起始位置,分区成功恢复。说,多了解点底层签名总是有用的。
操作步骤总结(核心结论)
不管哪种场景,WinHex还原分区 的核心流程可以归结为:
- 备份原始数据:先在 WinHex 中创建磁盘镜像(File → Create Image),防止误操作导致不可逆损坏。
- 判断分区表类型:看 0 扇区是 MBR (以 55AA 结尾,且分区表项非零) 还是 GPT (保护 MBR 为 0xEE) 。
- 寻找有效分区表信息:
- GPT:检查备份 GPT(磁盘 33 个扇区)。
- MBR:搜索 NTFS/FAT32 的 DBR 签名,或扫描分区边界。
- 手工重建或复制:使用 WinHex 的“Partition Table”模板或直接十六进制写入。
- 验证并保存:写入后重启系统,或用 WinHex 自带的“文件系统检查”工具看是否能列出目录。
说一句:以上方法仅适用于分区表被误删或逻辑损坏的场景,如果是物理坏道、固件故障,那就得用更专业的手段了。经验越丰富,越懂得什么时候停手、什么时候求助。技王数据恢复的工程师们遇到复杂案例也经常在内部群里讨论,互相验证思路。
写在:winhex怎么还原分区,答案不唯一
回到最初的问题。其实“winhex怎么还原分区”没有一个固定脚本,全看现场证据。你要学会像侦探一样,在十六进制数字里找线索:保护 MBR 的 0xEE、GPT 头的签名“EFI PART”、DBR 的 OEM 标识……每一条都是拼图。下次再遇到分区丢失,别急着用一键工具,先打开 WinHex,看一眼底层,心里就有数了。
(本文基于真实工作笔记,案例细节已脱敏处理。)