巧用WinHex找回消失的磁盘数据

互联网 | 编辑: 吴宏 2008-11-12 00:30:00转载

由于我是个对磁盘空间过敏的人,每当磁盘空间少到几百兆,就会想办法删掉不用的软件,时间一长,系统会变的千疮百孔,直到有一天实在无法忍受,决定重装系统,麻烦极了。与是想用Guest做个系统映象,没想到人世间最痛苦的事情发生了。

我有两个物理硬盘,主盘分了两个区,分别为一个C盘,一个E盘,所以把Guest这个软件放到第二个硬盘D盘的根目录下。重起进入DOS进入到软件的画面,不管三七二十一,玩玩再说。好奇的我直接选择第一项功能: To Disk,经过乱七八糟的英文提示后,毅然点了OK按扭,接下来两个硬盘开始狂响,我突然意识到事情不对,强行重起动后,打开资源管理器,点下D盘,发现已经空白一片了。天哪!我的软件!我的游戏!我的一切!我浑身冒汗,好像做梦一样,早知道……咦,对了!好像WinHex有打开磁盘的功能,只要知道一些文件的开头标记,兴许能恢复一些文件。

小提示:硬盘修复是一个高危险的操作,在http://www.it8g.com/YingJian/200808/107.htm一文中介绍了硬盘主引导记录等多种不同故障的处理方法,希望对大家有所参考。

幸好WinHex装到C盘上了,启动后选“OpenDisk”打开D盘,在WinHex子窗口的表格内共有三个列,最左边的是偏移值,相当于行号;中间显示的是16进制代码,右边是每组代码对应显示的文字。因为无论是那种格式的文件开头都会有特定的标记,所以只要知道对应的代码就能知到文件的类型。由于我D盘上大部分是RAR压缩格式的文件,所以我先用WinRar创建一个RAR文件,再用WinHex打开,在右边开头显示出Rar!字样(图1),对应的16进制的值就是“52 61 72 21”,一同选中后按“Ctrl+Shift+C”把这串代码复制到剪贴板,然后切换到刚才打开D盘的窗口,依次选择 “Search >> Find Hex Values”,按“Ctrl+V”或在输入框内点右键选择“粘贴”,确认无误后点“OK”开始搜索。

因为D盘容量是10GB,所以要经过漫长的等待。为了恢复文件,等他个一二天也值得。好在只用了5分钟的时间,便找到了第一个数值完全相同的一串代码,双击选种开头部分。

在此说明一下,有些软件在结尾也会有标记,比如ZIP格式,但RAR的结尾没有标记,这并不是件坏事,打个比方,一个RAR文件有300K大小,如果你选择的数值超过了300K而达到10M,那么用WinRar压时还可将原内容完整解压出来,只是在后面提示“非预期的压缩包结尾!”,你想一下,不可能多个RAR文件都会按顺序排列,中间可能会加入其它的文件,比如EXE文件,所以如果恢复的是RAR文件,选多点也无所谓,就怕选少了。所以下面我还要按F3键继续查找。

好在运气不错,硬盘上的RAR文件排列紧密,很快找到了第二个相同的代码串,这回要在代码串的前一个位置点击右键,在弹出的快捷菜单中选择“End of block”,选中区会变成浅兰色,这样就成功的选择住了一个RAR文件。

在此为你提个建议,最好每找到一串代码,就用笔记下它的偏移值,免得误操作后还得重头查找,这将是件非常麻烦的事。

那么怎样把选好的编码提取出来并变成文件呢?很简单,WinHex提供了这项功能,打开菜单上的“Edit”项,指向“Copy Block”,在弹出的子菜单中选择“Into New File”项(图2)。

在弹出的“Save File As”窗口下方写入建立的文件名,别忘了加上扩展名,比如“noname1.RAR”,点“Save”按扭后,会出现保存文件的进度条,快慢要看这个文件的大小了。待保存完成后,在保存的目录内就会出现刚命名的那个文件,双击用WinRar打开,哈哈!压缩包的文件目录完好,不过不要高兴的过早,解压试试,索性没提示错误,至此,我成功抢救了第一个文件。用同样的方法恢复了部分重要的文件,不过也有一些文件提示损坏,原因就是被Guest重新写入的文件给覆盖掉了。

以后大家遇到类似现象后千万不要着急,首先要做的就是尽量保证不要对硬盘进行写操作,只有这样,你才能把损失降到最小。

相关阅读

网友评论

每日精选

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑