Chinaunix首页 | 论坛 | 博客
  • 博客访问: 770877
  • 博文数量: 803
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 5015
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-28 10:29
文章分类

全部博文(803)

文章存档

2011年(1)

2008年(802)

我的朋友

分类:

2008-10-29 11:43:10


  前几天,一个朋友的重要文稿不见了,系统提示存放文件的U盘没有格式化,所以不能读出任何有效的文件,情急之下只得请我出马。下面就给大家说说笔者从U盘上找回丢失文件的过程。
  
  小知识:删除的文件为什么可以恢复?
  
  一个文件的时候,操作系统首先在记录所有空间使用情况的文件分配表(FAT)中找到足够容纳文件的空间,然后把文件内容写到相对应的硬盘扇区上,并在文件分配表中标出该空间已经被占用。删除文件的时候,一般并不对文件所占用的扇区进行操作,而仅仅是在文件分配表中指明哪些空间可以分配给别的文件使用。
  
  这个时候,被删除文件的实际内容仍然存在,可以被恢复。如果删除文件后又创建了新文件,那么被删文件所占用的扇区就有可能被新文件所使用,这时候就无法恢复被删文件的数据了。所以一旦误删除了文件,就不要再对该文件所在的分区进行写操作了,否则有可能覆盖原有数据,造成文件无法恢复。
  
  小知识:恢复文件的三个阶段
  
  1.使用自动化恢复软件
  
  恢复软件(如Finaldata或EasyRecovery等)使用很简单,根据向导的指示操作就可以了。
  
  2.手工恢复被删除数据
  
  手工恢复的原理是直接在设备上寻找被删除文件的关键内容。这种方法适合恢复有明显特征而且结构简单的文件,如文本文件。如果文件很大,且分散于磁盘的不同位置,还需要根据文档的内部结构重新组织文档,才能彻底恢复数据。
  
  3.找专业的数据恢复公司
  
  备份数据
  
  由于数据很重要,所以首先要进行备份,万一出现误操作,还可以把U盘恢复到最初的状态。这一步很重要,并且U盘容量不大,备份不会占用太大磁盘空间。进行扇区级别的磁盘数据备份有很多工具,如Ghost、WinHex和DiskExplorer,下面主要介绍WinHex。WinHex是一个16进制文件编辑工具,可以跳过操作系统的文件系统直接读取磁盘和U盘等设备,从而进行数据恢复。
  
  使用WinHex的“Tools”菜单下面的“Open Disk”命令,打开物理U盘。
  
 

  
图1

  
  在WinHex中看到U盘的引导数据全是“FF”,分区表和文件系统完全丢失了。从“Edit”菜单中选择“Define Block”,选择起止为“Beginning of file”和“End of file”。
  
 

  
图2

  
  然后再从“Edit”菜单中选择“Copy Block”→“Into New File”,把整个U盘的数据写到一个文件中(例如“u.img”),这样就完成了U盘的备份。
  
 

  
图3

  
  自动恢复
  
  完成备份后,笔者尝试用数据恢复工具Finaldata、EasyRecovery和Recover4All进行恢复,由于U盘容量很小,很快就搜索出很多文件,但是就是没有发现要找的那个重要文件,看来只能手工操作了。
  
  手工修复
  
  确定文件位置
  
  询问朋友得知该文件是中英文混合的Word文档,大部分是中文,含有少量英文,因此笔者决定通过查找文件内容尝试恢复文件。
  
  用WinHex打开前面保存的U盘镜像文件(在镜像文件上进行数据恢复的好处是访问速度比直接访问U盘快,而且还可以避免破坏U盘原有数据。)选择“Search”菜单中的“Find Text”命令,从镜像文件中直接搜索文中包含的英文字符串“control needed”。由于搜索到太多的字符串“control needed”,因此目前还无法对文件进行定位。
  
 

  
图4

  
  如果能记住部分中文内容,搜索中文可以避免找到太多的结果。Word文档中的中文用Unicode编码,因此打开记事本输入文章包含的中文字符“决策”,另存为Unicode编码的文件(test.txt)。
  
 

  
图5

  
  用WinHex打开文件“test.txt”,开始的“FFFE”代表字符编码的顺序,因此随后的“B351567B”就是“决策”的Unicode格式的16进制表示。
  

  
图6
【责编:admin】

--------------------next---------------------

阅读(311) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~