U盘提示格式化,别慌——在 WinHex 中找回文件系统的秘诀
有一次,一个老客户急匆匆地跑过来,手里攥着一个128G的闪迪U盘,说插电脑上就弹出“需要格式化”,点取消就啥也没有。我接过来第一件事,不是直接上软件扫描,而是先问了一句:“里面有没有重要数据?之前有没有往U盘里拷过什么大文件?”他犹豫了一下说“就一些合同扫描件,还有几段工作视频”。好,没有做过覆盖写入,那么大概率只是文件系统元数据出问题了。对我来说,这种场景基本就是常规操作——在 WinHex 中,只要分区表没被完全抹掉,数据层往往还是完整的。 技王数据恢复
把U盘插到写保护读卡器上(别问我为什么用写保护,吃过太多亏,有时候Windows自己会写一点日志进去),然后打开WinHex。点“Tools” → “Open Disk”选中U盘,注意别选错成物理盘还是逻辑盘——这里要选物理盘,才能看到完整的MBR或GPT区域。加载出来之后我习惯先看一眼偏移0x0到0x1FF的MBR,发现全是0,RDP扇区也没有。嗯,分区表被干掉了,但数据区的DBR还在不在?往下翻,大概在LBA 2048的位置(因为U盘常用对齐扇区),果然看到了熟悉的“EB 58 90”开头——NTFS的DBR!这说明文件系统主体没被破坏,只是分区入口丢了。 技王数据恢复
第一步:判断故障类型,别急着重建分区
很多人拿到这种盘直接就去搜“分区表模板”,或者去winhex里复制MBR模板。其实不是所有情况都需要重建分区表。我的思路是——先确认DBR里记录的$MFT位置是否正常。比如这个U盘的DBR里,偏移0x30处是$MFT的逻辑簇号,一般NTFS会把它写在3号簇(具体看卷大小)。我读出来是3,然后跳转到该簇对应LBA算一下,果然看到“FILE”签名。好,MFT根在。这时候其实可以直接用WinHex的“Recover Partition”功能,或者手动填一个MBR,但考虑到客户不想折腾,我打算用更稳的方法。 www.fixhdd.cn

用WinHex的“File Recovery”选项?不,先手动确认
有个误区:新手喜欢直接点WinHex的“File Recovery” → “FAT/NTFS”按钮,依葫芦画瓢。但有时候DBR的参数被部分修改了(比如BPB中的扇区总数被清0),软件会计算错误。我习惯先在十六进制窗口里验证一下关键参数: 技王数据恢复
- 偏移0x0B: 每扇区字节数,一般是0x200(512字节)
- 偏移0x0D: 每簇扇区数,NTFS通常为8(4k簇)
- 偏移0x28: 总扇区数(如果是NTFS,这个值在0x28-0x2F,8字节)
确认这些值逻辑上正确,比如总扇区数和U盘标称容量接近。然后从DBR所在扇区往上推,找到之前被擦掉的PBR备份——NTFS通常会在卷末尾保留一个DBR副本,但U盘不一定有。我直接跳转到卷末尾附近,发现全零。那么更稳妥的方式是:在 WinHex 中手动制作一个分区表项,指向这个DBR所在LBA。 技王数据恢复
细节说明:如何手动写分区表项
回到物理盘最前面(LBA 0),把MBR的引导代码(前446字节)保留不动(实际上都是零了,也不用管),在偏移0x1BE处写第一个分区项:
- 字节0:0x00(非启动)
- 字节1-3:起始CHS(可以不写,或者填0xFF,现代系统用LBA)
- 字节4:0x07(NTFS分区类型)
- 字节5-7:结束CHS(同上)
- 字节8-11:LBA起始扇区(此处填DBR所在的LBA,例如2048,十六进制0x00000800)
- 字节12-15:分区总扇区数(从DBR到卷末尾,可以用DBR里算出来的总扇区数)
写完以后别忘了在偏移0x1FE处写入0x55AA。
技王数据恢复
保存后,退出WinHex,把U盘重新插拔(或者用磁盘管理刷新一下),就能看到盘符了,系统自动挂载为正常分区,里面的文件一个不少。这种方法特别适合MBR分区表被清零,但文件系统DBR还在的情况。 技王数据恢复
案例二:误Ghost导致的整个硬盘变一个分区
再讲一个稍微复杂点的。之前有个用户把笔记本硬盘接到台式机上用Ghost装系统,结果选错目标盘,把一个2T的工作盘变成了一个几百兆的FAT32分区。客户打电话的时候语气很绝望,说“里边有三年工程图纸”。我让他别通电,直接把盘寄过来。拿到手以后,开始判断:Ghost通常只会重写分区表和部分前部扇区,后面大量数据应该完好。按经验,原来分区应该是GPT格式(因为大于2T),但Ghost会把GPT破坏掉,只剩一个MBR的假分区。 技王数据恢复
在 WinHex 中,我打开物理盘,第一眼看到MBR,写的是0x0C FAT32分区,然后后面全是空白(GPT头部被干掉了)。想到GPT的保护性分区也没了,只能靠搜索文件系统的特征来找。我直接跳转到2T盘的大致中后部,用搜索功能查找“NTFS”或者“FAT”?——等一下,其实原来的分区大概率是NTFS,因为用户说“工作盘”,而且是近几年配的。但Ghost创建的那个FAT32分区很小,说明数据根本不在那个分区内,而是在未分配的区域。
更好用的方法是搜索DBR的签名“EB 52 90”(FAT32)或“EB 58 90”(NTFS)。我设了个搜索条件:从LBA 0开始,搜十六进制串“EB 58 90”,步长512字节。大概过了十几分钟,在LBA 280万左右命中了一个。跳过去一看,BPB参数显示每簇扇区数、总扇区数,粗算一下卷大小接近2T!就是这个了。然后我记录下这个DBR的起始LBA。接下来要重建GPT分区表吗?不需要,如果用户系统是Legacy BIOS,可以直接写一个MBR分区项指向这个DBR;如果是UEFI,需要手动重建GPT头。
我确认用户笔记本是UEFI+GPT启动,得重建GPT。重建GPT头比较复杂,这里我用了另一个技巧——利用WinHex自带的“Recover Partition”功能,在“Tools” → “Disk Tools” → “Partition Recovery”里,选择“GPT scanning”,WinHex会尝试扫描所有可能的GPT分区入口。但说实话,有时扫描不到正确的,因为GPT头部被覆盖后,WinHex只能靠备份GPT(位于磁盘末尾)来找。而Ghost通常不会动末尾的GPT备份。果然,跳转到磁盘末尾附近(LBA大约4.2亿),看到了“EFI PART”签名——GPT备份头完整!这下轻松了,直接把备份GPT复制到磁盘头部,修正一下起始LBA和分区项,重启后硬盘完美恢复。
这个案例里有个小插曲:第一次我尝试手动复制备份GPT头时,忘了把CRC校验重新计算,结果Windows不认。WinHex里有CRC32计算器,但懒,我直接用另一台电脑上安装的技王数据恢复软件(平时做批量恢复时常用),它有一个“GPT修复”向导,一键把备份头写回首部,还自动修正CRC。其实在 WinHex 中也能算,只是需要点几下:选中备份头部共92字节,右键→“Compute CRC32”,记下值,再写到头部对应的偏移0x1A8处。挺烦的,但能搞定。那次之后我就记住了:不要小看CRC校验,尤其EFI分区的校验卡得很严。
核心操作步骤与注意事项
不管遇到什么情况,只要怀疑是分区表或文件系统结构受损,而数据大概率还在,我的常规流程是:
- 先做物理镜像:用WinHex的“File” → “Create Disk Image”或直接使用其他工具(如HDDSuperClone),尤其对坏道盘。镜像可以避免二次损坏,也方便反复实验。这里不展开,但一定要记着做。
- 分析故障类型:打开镜像文件(或物理盘,如果盘健康),看MBR/GPT头部是否损坏,搜索DBR特征,确认文件系统是否存在。
- 手动重建或使用工具恢复分区:如上面所说,简单的就写个MBR分区项;复杂的就用备份GPT或借助第三方软件。如果你擅长十六进制,在 WinHex 中所有工作都能完成,但效率不一定最高。对于非标簇大小、罕见文件系统,WinHex的灵活性无可替代。
- 验证恢复结果:重建后不要立即写入原始盘,先在WinHex里查看目录结构(在“Directory Browser”窗口里,直接看$MFT或者FAT表),确认能看到文件和文件夹。如果看到乱码或空的,说明DBR参数可能有误,需要调整。
注意事项:
- 不要在原始盘上直接写分区表,除非你百分百确定参数正确。建议先在镜像上实验。
- DBR里的BPB参数,特别是“每簇扇区数”和“$MFT起始簇号”必须和实际文件系统一致,否则挂载后系统会识别为RAW。
- 对于GPT盘,备份GPT通常在磁盘一个扇区,如果盘末尾有坏道,备份也可能损毁。这时候就需要通过搜索GPT分区项(每个128字节,带唯一GUID)来逐个重建。
- 在WinHex里搜索时,注意搜索范围别太大,比如2T的盘全盘搜索DBR可能要几小时。可以结合分区大小估算,只搜索可能的前几个GB或者中间区域。
写在:什么时候该求助专业工具,什么时候该用WinHex
说实话,我做这行十几年,大部分常规逻辑坏道或者误删除,我都会先用自动化软件比如R-Studio或者技王数据恢复的版本快速扫一遍,能省很多时间。但遇到分区表结构性破坏、MBR/GPT混合问题、或者文件系统参数被篡改的情况,这些软件往往会抽风——比如扫半天出一堆无效文件。这时候拿在 WinHex 中手动分析是最可靠的。它就像一个手术刀,让你看到最底层的字节,但需要懂得文件系统原理。
回到开头那个U盘案例,我重建分区后,客户当场验货,所有文件都在,就连文件夹时间戳都保留了。他感叹“一直以为数据恢复就是点几下扫描”,其实背后都是这些十六进制下的反复确认。,无论你是刚入门还是老手,在 WinHex 中能够帮你理解数据恢复的本质,而不是仅靠运气。
(本文作者有多年数据恢复经验,案例部分基于真实经历,已脱敏。如果你遇到类似的故障,建议先断电咨询专业人士,不要自行反复插拔尝试。)