近日,通过技术合作,成功恢复了一例被判定为无法恢复的数据,不免想谈一谈软件恢复与手工恢复。
        事情的经过是,某公司的税务开票系统安装在C分区,数据库内存有近两千张发票记录。工作人员误将该分区格式化后重新装入操作系统及应用软件,致使数据丢失。
        该公司的工作人员在电话中说,先行进行恢复的业内人士在原盘上进行扫描,将数据库恢复后,可以打开,但数据不完整,只能显示到08年10月末的信息,之后的发票记录丢失,被判定为数据被覆盖,无法恢复。
        为了保证数据的安全,接到磁盘后先行做了镜象。在对镜象盘进行分析的过程中发现,数据不完整的原因并非部分数据内容被覆盖,而是因为数据没有连续存储,也就是发生“片段化”。该分区为FAT32文件系统,格式化的过程中将FAT表链全部清空,导致数据片段间的关系链丢失,软件扫描后,由文件头开始向后截取数据大小的磁盘内容,将其视为原数据内容,但文件后部的数据并不是原数据的内容,所以才会造成部分数据信息丢失的现象。
        万幸的是,由于该C分区经常被用于存储下载的电影,致使原数据库文件存储时的位置距离分区起始位置较远,而且重新格式化时也是格式化成FAT32文件系统,写入数据时位置比较靠前,使数据的其他片段得以幸运的保留下来。最终得到了恢复。
        通常情况下,数据恢复是通过使用软件进行扫描恢复。软件是人类智慧的结晶,在有软件可用的情况下非得使用“手工恢复”,脑子一定有问题!但软件又确实不是万能的,因为数据的存储与丢失情况并不是一成不变的,而是存在太多的变数。因此,只有深入地了解了文件系统,了解了数据在文件系统中的管理方式,才能在软件无法切实解决问题时进行手工分析并进而恢复数据。当然,数据得到恢复后还需要考虑另一件事:如何使软件能够具备应对这种情况的能力,以便下次再遇到这种情况时不再需要手工恢复。