您当前的位置:首页 > 解决方案

文件恢复基础知识:带你走进数据恢复的神秘世界!

时间:2022-03-28 10:24:27

   作为鸿萌的从业近二十年数据恢复工程师,我经常会被客户问到:为什么删除的数据还可以恢复?为什么有时候恢复的文件没有了文件名,甚至丢失了原来的目录结构等等问题。我打算通过这篇文章来回答有兴趣了解数据恢复知识的朋友。
 

数据恢复基础知识


   没有两种数据恢复情况是相同的。很多时候,有可能完全恢复磁盘中丢失的文件,包括原始文件名和文件夹结构。而有的时候,文件和数据可能会被恢复,但文件名、日期、时间戳和文件夹路径会丢失。在某些情况下,无法找到完整的文件。这引起了我们用户的一个共同问题:为什么会这样?

   为了帮助了解这个问题的答案的来龙去脉,我们了解一下文件是如何存储在磁盘上以及数据是如何被恢复的是有助于回答这个问题的。虽然专业的数据恢复通常需要多年的经验和对文件系统和磁盘物理的技术细微差别的深入了解,但学习基本知识可以帮助你对数据恢复软件设定合理的期望。

   在这篇文章中,我们将从一个非常高的层面来看看文件恢复是如何进行的。我们还将向你展示如何将这些知识应用于一些常见的场景,以帮助你评估数据恢复的成功率。
 

文件是如何存储在磁盘上的

   我们今天重点了解机械硬盘的文件存储情况,关于SSD设备文件恢复的内容我将通过另外一篇专门的文章来说明。

   要了解如何从磁盘中恢复文件,了解一下文件在丢失之前是如何存储在硬盘上的是有帮助的。

   大多数现代操作系统将整个物理硬盘分割(或 "分区")为一个或几个独立的部分("分区")。在基于DOS/Windows的操作系统系列中,这些分区被称为 "逻辑磁盘"。逻辑磁盘被指定为驱动器字母和可选的描述性标签。例如,C:(系统)或D。(数据)。每个分区都有自己的文件系统类型,独立于同一物理磁盘上的其他分区。例如,一个Windows系统的物理硬盘可能包含两个逻辑磁盘:一个NTFS,另一个FAT32。磁盘上的分区信息存储在硬盘驱动器的开头。这通常被称为 "分区表 "或 "分区地图"。

一个典型的磁盘分区结构如图1所示:


图1:硬盘结构

   图1中显示的硬盘服务数据和关于分区结构部分的信息被称为 "元数据"。也就是说,关于磁盘上的数据的信息(相对于数据本身而言)。同样,每个分区或逻辑磁盘被分为两部分:一部分存储关于磁盘的信息(文件夹结构、文件系统等),另一部分存储包括这些文件的数据。这种将数据从元数据中划分出来的做法,可以更好地管理磁盘空间,加快文件搜索,并提高可靠性。
 

图2显示了一个典型的逻辑磁盘结构:

图2:逻辑磁盘结构

   图2所示的磁盘服务信息包含关于分区大小、文件系统类型等具体信息。这对于计算机正确查找分区上的必要数据是必要的。

   关于文件和文件夹的信息包含存储文件名、大小、日期/时间和其他技术信息的文件记录。这些信息还包括磁盘上文件数据的确切物理位置(地址)。这些信息通常备份在驱动器本身,以备第一份副本损坏。

   各种文件系统有不同的形式来存储这些信息。例如,FAT文件系统将这些信息存储在文件分配表(FAT)中,而NTFS文件系统将其存储在主文件表(MFT)中。

   当计算机需要读取一个文件时,它首先进入有关文件和文件夹的信息,搜索该文件的记录。然后,它查找该文件的地址,到磁盘上的指定位置,然后读取文件数据。

   对于连续的文件,即数据在磁盘上组合在一起的文件,这个过程是非常直接的。然而,磁盘上的文件可能是碎片化的。也就是说,它们可能占据了几个不相邻的磁盘区域。这种情况比大多数用户意识到的还要普遍。毕竟,当你从Windows资源管理器或Finder查看一个文件时,它总是被表示为一个文件。这是因为文件系统在幕后做了所有拼凑碎片的工作。关于文件和文件夹的信息存储了每个碎片数据的地址,所以当计算机需要读取文件时,它们可以被快速和可靠地检索到。这些信息以及如何检索在文件恢复中起着重要作用。

   当一台计算机想要删除一个文件时,它不会立即销毁其数据。相反,它对有关文件和文件夹的信息做一些改变,以指定该文件已被删除。一些操作系统只是将文件标记为已删除,保留所有关于该文件的元数据,直到有必要用新文件的元数据来覆盖它。这就是Windows文件系统处理删除的方式。其他操作系统,如Mac OS X,则完全销毁被删除文件的文件记录。虽然操作系统在是否立即保留或删除有关文件和文件夹的信息方面有所不同,但所有操作系统都不碰触实际的文件数据,直到有必要为另一个文件分配磁盘空间。如果没有文件要被写入磁盘,关于文件的数据信息和它的数据可能永远保留。

   如上所述,磁盘中存储文件数据的部分也包含关于文件和文件夹信息的备份。磁盘的这一部分还可能包含一些散落在整个磁盘上的关于文件和文件夹结构的额外信息。

文件恢复方法

   在我们讨论不同的文件恢复方法之前,必须注意一件事。

   如果磁盘上的数据被覆盖,那么旧的数据就会消失。没有任何程序或市面上的数据恢复方法可以恢复它。

   这就是为什么在尝试数据恢复之前,没有新的文件被写入磁盘是最重要的。

   对于没有被覆盖的文件,有两种文件恢复方法。所有的数据恢复软件都使用其中一种或两种技术。
 

方法一:通过分析文件和文件夹的信息进行文件恢复

   是文件恢复程序试图执行的第一个方法。这是因为它可以恢复文件的原始名称、路径、日期/时间戳及其数据(如果成功的话)。

   文件恢复软件开始尝试读取和处理关于文件和文件夹的第一份信息。在某些情况下(如意外的文件删除),这是唯一需要采取的步骤,以便完整地恢复文件。

   如果关于文件和文件夹的第一份信息被严重损坏,软件会扫描磁盘,寻找关于文件和文件夹的第二份信息。它还试图收集可能存在于磁盘数据部分的有关文件夹和文件结构的额外信息。然后,它处理所有这些信息以重建原始文件夹和文件结构。

   如果磁盘上的文件系统没有严重损坏,通常有可能恢复整个文件和文件夹结构。

  如果磁盘上的文件系统被严重损坏,这种恢复方法就不能重新创建整个文件夹结构。那么恢复的文件将出现在 "孤儿 "文件夹中。

  我们以数据恢复软件R-STUDIO为例,来帮助说明。图3显示了R-Studio中这些 "无主 "的文件夹。
 

图3:恢复的文件和文件夹结构以及 "无主 "文件夹

方法二:使用搜索已知文件类型来恢复文件(原始文件恢复)。

   如果第一种方法未能产生令人满意的结果,就会进行原始文件搜索。这第二种数据恢复方法可以比第一种方法更成功地恢复文件数据,但它不能重建原始文件名、日期/时间戳或磁盘的整个文件夹和文件结构。

   对已知文件类型的搜索,或原始文件的恢复,是通过分析磁盘内容的 "文件签名 "来实现的。文件签名是标志着一个文件的开始或结束的常见模式。几乎每个文件类型都有至少一个文件签名。例如,所有png(便携式网络图形)文件类型以"‰PNG "字符串开始,许多MP3文件以 "ID3 "字符串开始。这样的文件签名可以用来识别磁盘上的某个数据属于某个文件类型,因此可以被恢复。

   执行原始文件搜索后,R-Studio会将可能的可恢复文件显示为 "额外发现的文件"。这些文件会根据已识别的文件签名分配文件扩展名,并给出占位文件名(顺序号)。见图4和图5。

图4:使用搜索在逻辑磁盘内发现的已知文件类型(额外发现的文件)恢复的文件

图5:使用搜索已知文件类型(额外发现的文件)恢复的文件,在逻辑磁盘之外发现的文件

原始文件恢复的局限性

   虽然这种方法通常是恢复严重损坏的文件系统中的数据的最佳技术,但也有一些限制。首先是有些文件类型有 "开始 "和 "结束 "的文件签名,有些只有 "开始 "的文件签名(而没有 "结束 "的文件签名),有些文件类型根本就没有可立即识别的文件签名。

   如果数据恢复软件能够识别 "开始 "和 "结束 "的文件签名,文件就很容易被识别和恢复。对于没有 "结束 "文件签名的文件,软件有时可以通过假设它在下一个文件的开头结束来恢复文件。对于没有签名的文件,如加密的磁盘容器,原始文件搜索将无法将数据与未分配的磁盘空间的碎片区分开。

   这些情况中的每一种都会因为文件碎片化而进一步复杂化。此外,没有终端文件签名的文件在恢复后可能有很长的 "垃圾 "痕迹。图6说明了原因。

图6:磁盘上的文件数据
 

在图6所示的情况下,文件1和文件3将被成功恢复,而恢复文件2和文件4将不成功。表1解释了原因。
 

表1: 碎片文件的数据恢复

   除了碎片化文件的复杂情况外,原始文件搜索偶尔也会产生 "误报"。例如,字符串 "ID3 "可能出现在一个文件中,但却不是一个文件签名。例如,你目前正在阅读的文本包括 "ID3 "字符串,但不是一个MP3文件。因此,原始文件搜索可能会错误地将这个文本的一部分识别为一个MP3文件的开头。

高级文件恢复

   虽然所有的数据恢复程序都使用上述方法中的一个变种,但还有一些额外的搜索参数和数据恢复技术可以应用,以获得更好的结果。高级文件恢复程序,如R-Studio或者超级数据恢复大师,允许用户手动指定非常复杂和先进的文件签名集,包括自定义文件签名。

   在实践中,这两种文件恢复方法通常一起使用:使用一种方法恢复一些文件,而使用第二种方法恢复其余文件。像R-Studio这样的高级文件恢复程序可以通过应用IntelligentScan(智能扫描)数据恢复技术并与上述另种方式之一同时使用。也就是说,它们可以在同一次磁盘扫描中分析受损文件系统的残余部分并搜索已知的文件类型。

估算文件恢复的结果

   利用上述信息,你可以对成功恢复文件的机会做出相当准确的估计。然而,重要的是要牢记以下因素。

   对文件系统造成的损害可能是不可预知的。文件状况将取决于导致文件丢失的原因、故障或数据丢失前磁盘的健康状况以及在尝试数据恢复之前采取的任何行动。本文的介绍是基于没有新数据被写入受损磁盘的情况。

   不应该在有硬件故障的磁盘上尝试数据恢复。如果你怀疑磁盘可能有物理损坏,那么最好的行动方案就是将存储介质提交给具有适当经验和设备的数据恢复专家。任何试图自行修复物理损坏的磁盘的行为都可能导致进一步的数据丢失,使后续的数据恢复尝试变得徒劳。

   我们建议从磁盘的镜像中执行所有的数据恢复任务,以保存磁盘上的原始数据。这样可以运行多个数据恢复的尝试,而不会对磁盘造成改变或有进一步数据丢失的风险。像R-Studio、UFS explorer和Reclaime pro等这样的高级文件恢复程序可以创建磁盘镜像并同时扫描数据。

案例1:从服务信息受损的硬盘中恢复文件

   如果磁盘被不当安装或移除(例如,由于停电或用户错误),可能会导致部分或全部硬盘元数据被损坏或丢失。虽然原来的硬盘服务数据和分区结构的信息丢失了,但其余的硬盘数据仍然是完整的。在这种情况下,文件恢复程序可以分析分区上仍然完整的文件和文件夹的信息,并恢复其中的所有文件和文件夹。在这些情况下,很少需要对已知文件类型进行额外的搜索。这是数据恢复的最佳情况,通常可以获得最成功的结果。

案例2:从文件系统受损的磁盘中恢复文件

   这种情况在很大程度上取决于文件系统被破坏的严重程度。我们上文讲过,磁盘包含两个关于文件和文件夹信息的副本。如果只有一个副本被损坏,文件恢复程序可以从备份副本中读取数据并恢复所有的文件信息和数据。如果两个副本都严重损坏,那么成功恢复文件的前景就会非常暗淡。与案例3一样,对已知文件类型的额外搜索可能就是救命稻草。

案例3:从重新分区的硬盘(物理磁盘)中恢复文件

   如果一个磁盘意外地被重新分区,其前景与案例1相似,但有一个重要的例外。当一个新的分区结构被创建时,一些新的数据被写入磁盘。这些新数据将覆盖整个物理磁盘的现有磁盘服务信息。然而,来自旧分区的其余数据仍未被触及,包括有关文件和文件夹的信息。因此,文件恢复程序可以扫描磁盘,找到这些信息,并恢复那些没有被新分区数据影响的文件和文件夹。额外搜索已知的文件类型是很少需要的。

案例4:从重新格式化的分区(逻辑磁盘)恢复文件

   重新格式化通常比重新分区更具破坏性,这取决于所执行的磁盘格式操作的类型。

   完全格式化会导致分区上的所有数据被某种模式(通常是00或FF)覆盖。这样就不可能从该分区恢复任何文件。

   快速格式化会导致关于文件和文件夹的部分或全部信息被覆盖,但会保留文件数据不被触及。文件恢复程序可以扫描磁盘,找到以前的文件系统的残留部分,并相应地恢复文件和文件夹。根据重新格式化前后的文件系统,使用第一种方法的数据恢复结果会有很大差异。在这种情况下,即使第一种方法未能找到任何文件,对已知文件类型的额外搜索也会非常成功。

案例5: 文件在磁盘上被移动时的文件恢复

   如果计算机在磁盘碎片整理或重新分区操作期间死机或崩溃,其结果可能是灾难性的。这通常是文件恢复的最坏情况。虽然有关文件和文件夹的信息可能看起来很正常,但元数据可能指向正在被移动的文件的错误物理地址。例如,数据可能已经被写入一个新的位置,但有关文件和文件夹的信息可能还没有被更新。或者,关于文件和文件夹的信息可能已经更新,但部分或全部的文件数据还没有被移动。在这些情况下,即使对已知的文件类型进行额外的搜索也可能不成功,因为许多文件可能是碎片化的。

结论

   尽管这篇文章只是简要介绍了基本的文件恢复概念,但它应该可以帮助你了解在数据恢复的情况下应该做什么和期待什么的结果。