上周有个同事的电脑出现问题无法启动,结果排查下来之后,发现是硬盘故障,无法读取,似乎是损坏了,数据全部丢失。由于是单位电脑,涉及很多近期编辑的文件,非常重要,领导要求必须进行数据恢复。尝试了不少软件和硬件层面的方法,结果都失败,后来是拿去专业的数据恢复公司了,幸运的是,结果搞定了!在此期间,我也特意学习了一下数据恢复的基本原理。

1、数据丢失原因分类

  数据丢失主要有以下两个原因:

  一是软件层面的原因,主要是误删除、网络删除、病毒感染、误拷贝、误删除分区以及误格式化等情况造成的数据丢失。其中,用户误操作造成的数据丢失占很大比例,主要是指用户不小心或者是不熟悉等原因,将储存在硬盘的数据信息删除等意外情况。软件故障现象主要有操作系统丢失、分区丢失、文件打不开、文件丢失等。

  二是硬件层面的原因,主要指由于硬件物理损伤引起的数据丢失。常见的硬件故障有:线路故障(存储设备的元器件故障,如芯片及其它元器件烧坏等);机械故障(磁盘机构故障,如断针断线、磁组变形、磁头偏移等);介质故障(硬盘表面介质物理性损坏,如磁道损坏、磁盘划伤等)。硬件故障现象主要有不认设备、盘体异响、读写错误等。

  由于硬件故障涉及到更多更深的硬件知识和专业的硬件设备,非专业人员掌握比较困难,因此本文主要讨论软件造成的数据丢失。

数据恢复

2、数据存储的基本知识

  要了解数据恢复的基本原理,首先要对数据在硬盘中的写入方式有所了解。

  硬盘在生产出来之后首先要进行分区,通过分区工具,先在硬盘的第一个扇区标注上硬盘的分区数量、每个分区的大小,起始位置等信息,术语称为主引导记录(MBR)。硬盘分区完毕后,接下来的工作是格式化分区,即根据分区大小,合理的将分区划分为目录文件分配区和数据区。我们向硬盘里存放文件时,系统首先会在文件分配区内写上文件名称、大小,并根据数据区的空闲空间在文件分配表上继续写上文件内容在数据区的起始位置。然后开始向数据区写上文件的真实内容。

3、数据恢复的基本原理

  当前WINDOWS操作系统中主要的文件系统是NTFS。其删除操作后数据恢复的原理是:首先查找出MFT表中做删除标记的表项,依据MFT表中提供的文件数据流属性列表信息,找出数据区中文件内容所在簇空间(即运行位置),从而实现恢复操作。其中MFT 是一个映射磁盘中储存的所有对象的索引文件。在 MFT 中,NTFS 磁盘上的每个文件(包括 MFT 自身)至少有一个映射项。MFT 中的各项包含如下数据:大小、时间及时间戳、安全属性和数据位置。

  这种数据恢复方式有一个重要前提,就是保证被删除文件数据没有被覆盖。因为根据磁盘的存储特性,一个文件被标记上删除标志后,他所占用的空间在有新文件写入时,将有可能被新文件占用覆盖写上新内容。这时删除的文件名虽然还在,但其指向数据区的空间内容已经被覆盖改变,恢复出来的将是错误内容。

  格式化操作和删除相似,并没有对数据区做任何操作,数据还存在,因此借助数据恢复知识和相应工具,数据仍然能够被恢复回来。对于克隆、系统还原等造成的数据丢失也是这样,只要重要数据区未被覆盖,就可能被恢复。