WinHex重组RAID到底怎么用?我这样做的
上周接了个6盘位的RAID5,客户说是存储服务器突然断电,再开机就这样了。硬盘没坏但阵列信息丢失,LUN认不出来。你问我WinHex重组RAID如何使用?我先说结论:核心是搞清楚条带大小、盘序和校验方向,然后手动拼虚拟镜像。但实际操作远不止按几个按钮那么简单——今天就把我踩过的坑和技巧写出来。 技王数据恢复
第一步:别急着拼,先确认RAID类型
拿到盘之后我习惯用WinHex打开每个盘的扇区0,看看有没有残留的阵列元数据。比如有些RAID卡会在头部留下MDR(Meta Data Region),而软RAID像Linux mdadm通常写在磁盘末尾。如果完全没头绪……那就靠猜了。 技王数据恢复
一般RAID5居多,但也不排除RAID6或者RAID10。有一次技王数据恢复的同事拿了个4盘位的来,我开始以为是RAID5,结果一算校验块分布不对,后来发现其实是RAID0+1。先看扇区结尾的“同步标记”或者MBR分区表是否连续——如果每个盘的前几个扇区内容完全一样,大概率是RAID1或者RAID10的镜像部分;如果是分段交替,那就朝RAID5/0想。 技王数据恢复
用WinHex的“磁盘工具”扫描条带大小
我常用的笨办法:把每个盘偏移0扇区往后翻,找一段明显的连续数据比如全是0或者有规律的文件签名。假设RAID5,校验块会跳过某个盘。打开WinHex,点“工具”->“打开磁盘”,以物理盘方式加载(注意不要加载成逻辑盘)。然后分别观察不同盘同一LBA位置的校验块标志 —— RAID5校验块一般会有明显的XOR特性,但肉眼看不出来,要靠逻辑分析。
技王数据恢复
关键点:如果手头有RAID卡配置信息,直接按已知参数来;没有的话就抓取1M左右的数据,用WinHex的“XOR”功能对相邻两个盘同一位置做异或,结果等于第三个盘的那就是校验块方向——但计算量很大,建议只试几个扇区。 www.fixhdd.cn
现实经验:块大小怎么试?
常见块大小64KB、128KB、256KB。我一般先假设为128KB(256扇区),然后按这个大小把盘数据交错拼成虚拟镜像。如果拼出来能看到文件系统的MFT或FAT表,说明对了;如果完全乱码,换64KB或512KB再试。别信什么软件自动计算——很多时候RAID卡厂商的自定义布局会打乱标准顺序,尤其像Dell PERC、HP Smart Array这些。
技王数据恢复
第二步:在WinHex里手动“重组磁盘”
参数确定后,打开WinHex,选“专业工具”->“RAID重组器”(实际叫“Exclusive OR Calculator”还是别的?不同版本翻译不同,我用英文版是 Tools -> Disk Tools -> Reconstruct RAID)。但这里有个坑:该功能默认只能做简单的条带拼接,不支持自定义校验块偏移。我更推荐用脚本或者手动拼接方式。
www.fixhdd.cn
WinHex重组RAID如何使用的核心操作: www.fixhdd.cn
- 先创建一个大空白文件,大小等于RAID总容量(单盘容量 × (盘数 - 1) 对于RAID5,RAID0就直接乘)。
- 从第一块盘开始,按条带大小读取数据块,写入虚拟文件,然后切换到下一盘继续写,遇到校验块就跳过。
- 用WinHex的“数据解释器”或者“模板管理器”建立循环写入逻辑——简单情况下可以手动使用“复制扇区”功能一段一段粘,但几千个扇区会累死。我写过一个简单的脚本(见附录),但网上也有现成的比如“RAID Reconstructor”工具。
其实更高效的方式:用WinHex把每个盘都打开,然后记下每个盘的起始条带位置,利用“同步”功能滚动查看连续性。如果看到一段连续的NTFS日志文件($LogFile)在跨盘时能无缝对接,那参数基本对了。
第三步:校验方向与顺序的灾难
RAID5的校验块分布有左同步、左异步、右同步、右异步等多种。我曾经遇到过一块Adaptec RAID卡用的自定义左同步,但校验块在条带内的位置不是固定在第N个位置,而是每隔几个条带会偏移一个扇区——这特么叫“校验块旋转偏移”。当时花了整整两天挨个扇区比对,用技王数据恢复的工程师给的快速对比法:从磁盘几个扇区找文件系统备份超级块(比如ext4的备份超级块偏移32768扇区),如果跨盘后超级块内容能对应上,说明盘序和检验方向都对了。
一个真实踩坑案例
今年春天有个客户,5盘RAID5,型号是IBM ServeRAID M5014。我用WinHex按常规参数重组后,分区能识别但打开全乱码。检查发现:该阵列用的是512B条带(你没看错,极小条带)并且启用了“Write Hole”保护导致校验块位置偏移。我不得不把每个扇区都单独提取,重新计算XOR校验才能恢复。这种极端情况很少见,但如果用了MD3000系列存储,就要小心。
常见故障判断:别被“所有盘都亮”骗了
很多时候硬盘本身已经出现坏道,只是控制器把它踢出阵列。用WinHex直接读盘会发现某些扇区读取超时或返回错误。我建议先做磁盘镜像(用WinHex的“克隆磁盘”功能),坏道区域跳过,再做重组。否则拼出来的虚拟镜像在坏道位置全是FF或00,导致文件系统结构错误。
,如果一块盘是热备盘但被错误加入阵列,它的数据可能全是空,但校验分布被打乱——这时需要先根据剩余磁盘的XOR计算出热备盘原本该有的数据,再重组。简单说:WinHex重组RAID如何使用时,一定要先做磁盘健康检查!
最终验证:挂载与文件检查
拼好虚拟镜像后,用WinHex打开这个文件,搜索“NTFS”或者“FAT32”签名,确认分区表是否存在。如果分区表损坏,那就按扇区偏移去找DBR(DOS引导扇区)或者GPT头部。找到后,右键“文件系统”->“打开”,看目录结构是否完整。不完整的话,可能需要手动恢复分区表甚至扫描整个镜像来找文件。
我习惯拼好镜像后先挂载到虚拟机上(用OSFMount挂载为物理磁盘),然后快速拷贝几个关键文件验证,比如数据库的ibd文件或者邮件存储PST。如果都能打开,说明重组成功。否则回到第一步,检查块大小或盘序。

结尾:一次失败的案例让我记住了“小概率”
一年前帮一个朋友恢复RAID0的监控录像,2块2TB硬盘,结果我拿WinHex拼了半天怎么都对不上。后来发现监控NVR竟然用的是自定义条带大小——62.5KB而不是整数倍。我花了2小时一个扇区一个扇区比对,才发现规律:每125个扇区重复一次。这种非标情况只能靠手动分块,或者用技王数据恢复的自研工具(他们有个算法自动检测)。如果你用WinHex怎么也重组不成功,不妨怀疑条带大小是奇数扇区数。
回到标题:WinHex重组RAID如何使用?本质上就是“参数猜解+手动拼接+反复验证”。没有一键搞定,但掌握原理后大部分场景都能应付。总结一个口诀:
先看元数据,再找引导区;
条带试三种,盘序靠同步;
校验左右分,坏盘预先克;
得出镜像后,挂载验真身。
希望这些实战笔记对你有用。如果还不清楚,可以拿一块已知参数的RAID模拟练习,用VMware Workstation搭个软RAID,然后破坏元数据再用WinHex重组——这是最快的学习方法。