一种数据恢复方法及装置与流程

文档序号:12363272阅读:334来源:国知局
一种数据恢复方法及装置与流程

本发明属于磁盘管理技术领域,尤其涉及一种数据恢复方法及装置。



背景技术:

固态硬盘(SSD,Solid State Drives)由控制单元即SSD主控制器和存储单元组成,存储单元可采用FLASH芯片或DRAM(Dynamic Random Access Memory,动态随机存取存储器)芯片作为存储介质。固态硬盘具有传统硬盘HDD(Hard Disk Drive,硬盘驱动器)不具备的快速读写、质量轻、能耗低以及体积小等特点。

固态硬盘与传统硬盘的设计及数据读写、清除原理不同,对于传统硬盘来讲,当一个文件被删除后,操作系统并没有立即清除文件数据,事实上,它只是在硬盘前的索引区里标记该文件占用的区域为可覆盖的,在有新数据需写入该标记区域时,可以直接覆盖该区域的原有文件数据进行新数据写入,即被删除文件的数据实质上是在有新数据需写入该文件所占用的区域时才被真正清除,从而在传统硬盘中,对已删除数据的恢复成为可能。而固态硬盘与传统硬盘的数据清除机制不同,当一个文件在支持trim(SSD的数据自动清理功能)并开启trim的系统里被删除后,操作系统会向SSD主控发送一trim指令,以指示SSD主控该文件数据无效,SSD主控在收到trim指令时,随即将该文件的无效数据从固态硬盘清除,即在支持并开启trim的系统里固态硬盘直接在用户删除数据时清除无效数据,从而会导致被删除的数据无法复原。

基于此,本领域需提供一种数据恢复方案,使得在应用固态硬盘的系统中为用户删除数据的恢复提供支持。



技术实现要素:

有鉴于此,本发明的目的在于提供一种数据恢复方法及装置,旨在解决应用固态硬盘的系统存在的上述问题,使得在应用固态硬盘的系统中为用户删除数据的恢复提供支持。

为此,本发明公开如下技术方案:

一种数据恢复方法,包括:

拦截操作系统向固态硬盘发送的第一数据清除指令;

在符合数据恢复条件时,基于所述固态硬盘的数据存储情况进行数据恢复。

上述方法,优选的,所述基于所述固态硬盘的数据存储情况进行数据恢复包括:

确定待恢复时刻固态硬盘中的数据相比于预定还原点时固态硬盘中的数据的新增数据;

从固态硬盘中清除所述新增数据,使得所述固态硬盘的数据存储情况与所述还原点时固态硬盘中的数据状态相一致。

上述方法,优选的,所述确定待恢复时刻固态硬盘中的数据相比于预定还原点时固态硬盘中的数据的新增数据包括:

获取固态硬盘在所述预定还原点的第一数据状态,所述第一数据状态包括在所述预定还原点记录的固态硬盘中的文件数据与存储扇区的对应关系;

获取固态硬盘在所述待恢复时刻的第二数据状态,所述第二数据状态包括在所述待恢复时刻记录的固态硬盘中的文件数据与存储扇区的对应关系;

基于所述第一数据状态及所述第二数据状态,确定所述新增数据。

上述方法,优选的,所述从固态硬盘中清除所述新增数据包括:

向固态硬盘的主控制器发送一第二数据清除指令,使得所述主控制器基于所述第二数据清除指令从固态硬盘中清除所述新增数据。

上述方法,优选的,还包括:

在符合删除数据直接清除条件时,从固态硬盘中清除已删除的文件数据,并不再拦截操作系统向固态硬盘发送的数据清除指令。

上述方法,优选的,所述从固态硬盘中清除已删除的文件数据包括:

确定待清除时刻固态硬盘中的数据相比于预定还原点时固态硬盘中的数据的无效数据;

从固态硬盘中清除所述无效数据。

上述方法,优选的,所述确定待清除时刻固态硬盘中的数据相比于预定还原点时固态硬盘中的数据的无效数据包括:

获取固态硬盘在所述预定还原点的第一数据状态,所述第一数据状态包括在所述预定还原点记录的固态硬盘中的文件数据与存储扇区的对应关系;

获取固态硬盘在所述待清除时刻的第三数据状态,所述第三数据状态包括在所述待清除时刻记录的固态硬盘中的文件数据与存储扇区的对应关系;

基于所述第一数据状态及所述第三数据状态,确定所述无效数据。

上述方法,优选的,所述从固态硬盘中清除所述无效数据包括:

向固态硬盘的主控制器发送一第三数据清除指令,使得所述主控制器基于所述第三数据清除指令从固态硬盘中清除所述无效数据。

一种数据恢复装置,包括:

拦截模块,用于拦截操作系统向固态硬盘发送的第一数据清除指令;

恢复模块,用于在符合数据恢复条件时,基于所述固态硬盘的数据存储情况进行数据恢复。

上述装置,优选的,所述恢复模块具体用于:

确定待恢复时刻固态硬盘中的数据相比于预定还原点时固态硬盘中的数据的新增数据;并从固态硬盘中清除所述新增数据,使得所述固态硬盘的数据存储情况与所述还原点时固态硬盘中的数据状态相一致。

上述装置,优选的,所述恢复模块确定待恢复时刻固态硬盘中的数据相比于预定还原点时固态硬盘中的数据的新增数据,具体包括:

获取固态硬盘在所述预定还原点的第一数据状态,所述第一数据状态包括在所述预定还原点记录的固态硬盘中的文件数据与存储扇区的对应关系;获取固态硬盘在所述待恢复时刻的第二数据状态,所述第二数据状态包括在所述待恢复时刻记录的固态硬盘中的文件数据与存储扇区的对应关系;并基于所述第一数据状态及所述第二数据状态,确定所述新增数据

上述装置,优选的,所述恢复模块从固态硬盘中清除所述新增数据,具体包括:向固态硬盘的主控制器发送一第二数据清除指令,使得所述主控制器基于所述第二数据清除指令从固态硬盘中清除所述新增数据。

上述装置,优选的,所述装置还包括直接清除模块,用于在符合删除数据直接清除条件时,从固态硬盘中清除已删除的文件数据,并不再拦截操作系统向固态硬盘发送的数据清除指令。

上述装置,优选的,所述直接清除模块从固态硬盘中清除已删除的文件数据,具体包括:

确定待清除时刻固态硬盘中的数据相比于预定还原点时固态硬盘中的数据的无效数据;从固态硬盘中清除所述无效数据。

上述装置,优选的,所述直接清除模块确定待清除时刻固态硬盘中的数据相比于预定还原点时固态硬盘中的数据的无效数据,具体包括:

获取固态硬盘在所述预定还原点的第一数据状态,所述第一数据状态包括在所述预定还原点记录的固态硬盘中的文件数据与存储扇区的对应关系;获取固态硬盘在所述待清除时刻的第三数据状态,所述第三数据状态包括在所述待清除时刻记录的固态硬盘中的文件数据与存储扇区的对应关系;并基于所述第一数据状态及所述第三数据状态,确定所述无效数据。

上述装置,优选的,所述直接清除模块从固态硬盘中清除所述无效数据,具体包括:

向固态硬盘的主控制器发送一第三数据清除指令,使得所述主控制器基于所述第三数据清除指令从固态硬盘中清除所述无效数据。

由以上方案可知,本申请提供了一种数据恢复方法及装置,所述方法拦截操作系统向固态硬盘发送的第一数据清除指令;并在符合数据恢复条件时,基于所述固态硬盘的数据存储情况进行数据恢复。本申请方案通过拦截操作系统向固态硬盘发送的数据清除指令,可使得固态硬盘在文件被删除时无法获知文件数据无效,从而无法在文件被删除时刻对该文件对应的无效数据进行清除,即所述无效数据仍在固态硬盘中存在,从而在符合数据恢复条件时,可从固态硬盘中对用户已删除数据进行恢复。由此可见,本申请方案解决了应用固态硬盘的系统存在的上述问题,实现了在应用固态硬盘的系统中为用户删除数据的恢复提供支持。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1是本申请提供的一种数据恢复方法实施例一的流程图;

图2是本申请提供的一种数据恢复方法实施例二的流程图;

图3-图4是本申请提供的一种数据恢复方法实施例三的流程图;

图5-图6是本申请实施例三提供的本申请方案的应用示例图;

图7是本申请提供的一种数据恢复装置实施例四的结构示意图;

图8是本申请提供的一种数据恢复装置实施例六的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

参考图1,图1是本申请提供的一种数据恢复方法实施例一的流程图,所述方法适用于应用固态硬盘的系统,如应用固态硬盘的计算机操作系统等,如图1所示,所述数据恢复方法可以包括以下步骤:

S101:拦截操作系统向固态硬盘发送的第一数据清除指令。

首先,需要说明的是,本申请中数据删除及数据恢复分别指在操作系统层面的数据删除、数据恢复,数据清除指在固态硬盘中的数据删除,是永久性删除。

在应用固态硬盘并开启trim的系统中,当用户对某一文件进行删除时,操作系统会针对该文件向固态硬盘中的SSD主控制器下发一trim指令,以通知SSD主控制器该文件数据无效,从而使得在用户删除文件时刻直接从固态硬盘中清除该文件对应的无效数据。

为实现在应用固态硬盘并开启trim的系统中提供已删除数据的恢复功能,本申请方案提出对操作系统下发的trim指令即所述第一数据清除指令实施拦截,从而使得操作系统的trim指令无法真正下达至SSD主控制器,SSD主控制器由于无法获知被删除文件的数据无效,从而不会对固态硬盘中存储的该文件的无效数据进行清除。

S102:在符合数据恢复条件时,基于所述固态硬盘的数据存储情况进行数据恢复。

所述数据恢复条件可以是执行主体提供的缺省条件,也可以是用户基于其实际的数据恢复需求自行设置的相关条件,例如,假设在实际应用中采用保护软件的形式对本申请方案的各处理步骤进行实施,则所述数据恢复条件可以是所述保护软件提供的进行数据恢复需满足的缺省条件,也可以是用户在所述保护软件中预先设置的相应恢复条件,如用户具体可针对需保护的磁盘分区设置开机恢复或周期性恢复等等。

由于未在被删除文件的删除时刻对其无效数据从固态硬盘中进行清除,从而可为已删除文件的数据恢复提供有效支持,当符合数据恢复条件时,可基于固态硬盘的数据存储情况对已删除文件进行相应的数据恢复。

具体实施时,可基于硬盘空间的占用以及数据恢复的成功率等多方面考虑,对固态硬盘中无效数据(用户已删除的文件数据)的存储情况进行管理,例如,若考虑尽可能节省固态硬盘的空间占用,则可仅仅拦截操作系统的trim指令,而不对操作系统作任何代码调整,即对于操作系统来说,被删除文件的数据已无效,而对于固态硬盘则其仍将该文件数据作为有效数据进行存储,从而后续当有新数据需写入被删除文件所占用的硬盘空间时,固态硬盘才会获知被删除文件的数据已无效从而删除无效数据并写入新数据,此种情况下,固态硬盘仅能够支持在有新数据写入无效数据所占用的空间之前,对被删除文件进行数据恢复。

若考虑需要较高的数据恢复成功率,则可在拦截操作系统trim指令的同时,通知操作系统记录被删除的文件为需要保护的文件,从而后续操作系统不会指示向该文件所占用的空间写入新数据,固态硬盘会一直保持无效数据的存储直至有其他的相关指令,从而此种情况下,固态硬盘可支持一较高的数据恢复成功率。

由以上方案可知,本申请提供的数据恢复方法拦截操作系统向固态硬盘发送的第一数据清除指令;并在符合数据恢复条件时,基于所述固态硬盘的数据存储情况进行数据恢复。本申请方案通过拦截操作系统向固态硬盘发送的数据清除指令,可使得固态硬盘在文件被删除时无法获知文件数据无效,从而无法在文件被删除时刻从固态硬盘中对该文件对应的无效数据进行清除,即所述无效数据仍在固态硬盘中存在,从而在符合数据恢复条件时,可从固态硬盘中对用户已删除数据进行恢复。由此可见,本申请方案解决了应用固态硬盘的系统存在的上述问题,实现了在应用固态硬盘的系统中为用户删除数据的恢复提供支持。

实施例二

本实施例具体提供基于固态硬盘的数据存储情况进行数据恢复的一种可能的实现方式,参考图2示出的数据恢复方法流程图,本实施例中,所述步骤S102可以通过以下步骤实现:

S1021:确定待恢复时刻固态硬盘中的数据相比于预定还原点时固态硬盘中的数据的新增数据;

S1022:从固态硬盘中清除所述新增数据,使得所述固态硬盘的数据存储情况与所述还原点时固态硬盘中的数据状态相一致。

所述待恢复时刻即为符合所述数据恢复条件时对应的时刻,例如针对用户设置的开机恢复或周期性恢复等条件,该时刻即为开机完成时或到达恢复周期时所对应的时刻。

其中,用户具体可针对磁盘分区进行相关的数据保护/恢复设置,比如,用户可设置全磁盘数据或某一个/多个磁盘分区(如C盘、D盘)数据为需保护的数据,并针对需保护的磁盘分区分别设置需采用的恢复条件,如开机恢复或周期性恢复等,同时针对需保护的磁盘分区,用户还可以创建其恢复数据时对应采用的还原点(亦可采用执行主体提供的缺省还原点),例如用户可将当前时刻的C盘文件数据状态设置为C盘文件的还原点,从而后续在对C盘文件进行数据恢复时,具体将其恢复至所述还原点对应的C盘文件数据状态。

在完成固态硬盘(全磁盘或某一个/多个磁盘分区)还原点创建的基础上,本申请方案的执行主体需记录固态硬盘在还原点的第一数据状态,以实现为后续的数据恢复提供数据状态基准,该第一数据状态包括在所述还原点记录的固态硬盘中的文件数据与存储扇区的对应关系。

在之后用户对文件数据进行增删改等操作过程中,执行主体随时记录固态硬盘中文件的最新数据状态,由于操作系统的trim指令被拦截,从而在用户对文件数据进行操作的过程中,固态硬盘(假设未有新数据写入无效数据所在空间)的实际存储状态为:在维持还原点文件数据的存储(包括还原点中未改动的数据以及删除或修改等操作删掉的无效数据)基础上,结合存储有因用户操作而产生的新增数据(包括增加或修改等操作产生的新增数据)。

从而,当符合数据恢复条件时,可获取固态硬盘在其还原点对应的第一数据状态以及在待恢复时刻对应的第二数据状态,第二数据状态包括在所述待恢复时刻记录的固态硬盘中的文件数据与存储扇区的对应关系;并基于所述第一数据状态及所述第二数据状态,确定固态硬盘在所述待恢复时刻相比于还原点的新增数据,该新增数据即为固态硬盘针对所述还原点因用户操作而额外存储的脏数据。在此基础上,可针对该新增数据向SSD主控制器下发一trim指令,例如具体可由保护软件模拟操作系统下发针对所述新增数据的trim指令,SSD主控制器在接收该指令时,从固态硬盘中清除该新增数据,使得其数据状态与还原点对应的第一数据状态相一致,在辅以从操作系统层面对还原点文件状态进行恢复(如恢复显示已删除的文件数据)的情况下可有效实现已删除文件的数据恢复。

需要说明的是,本申请中的数据恢复具体指操作系统层面的文件数据恢复,从而在进行数据恢复时,对固态硬盘中的所述脏数据的清除并不是必需的,因操作系统的trim指令被拦截,从而在用户对文件数据进行操作的过程中,固态硬盘的实际存储情况是:在维持还原点文件数据的存储基础上,还结合存储有因用户操作而产生的新增数据即脏数据,从而无论对固态硬盘中的脏数据清除与否,均可基于固态硬盘维持存储的还原点文件数据,在操作系统层面对用户已删除的文件数据进行恢复。

本实施例在进行数据恢复时同时包含清除固态硬盘中的脏数据仅为本申请提供的一较优实施方式,旨在使得固态硬盘不再将所述脏数据作为有效数据进行存储及管理,从而使得固态硬盘中存储的数据与操作系统层面的有效文件数据一致,无多余的无效数据,进而可达到节省硬盘空间、提升固态硬盘的工作效率,同时延长固态硬盘使用寿命的目的。

实施例三

本实施例继续对以上实施例的方案进行补充,参考图3示出的数据恢复方法流程图,本实施例中,所述方法还可以包括以下步骤:

S103:在符合删除数据直接清除条件时,从固态硬盘中清除已删除的文件数据,并不再拦截操作系统向固态硬盘发送的数据清除指令。

与实施例二的方案相对应,当符合删除数据直接清除条件时,表示被保护的磁盘文件已无需继续被保护,不存在数据恢复需求,从而可直接从固态硬盘中清除已被删除的文件数据,且后续不再拦截操作系统向固态硬盘发送的数据清除指令。

参考图4示出的数据恢复方法流程图,所述步骤S103具体可以通过以下步骤实现:

S1031:确定待清除时刻固态硬盘中的数据相比于预定还原点时固态硬盘中的数据的无效数据;

S1032:从固态硬盘中清除所述无效数据。

具体地,在符合删除数据直接清除条件时,可获取固态硬盘在所述预定还原点的第一数据状态以及在待清除时刻的第三数据状态,并基于所述第三数据状态及所述第一数据状态,确定待清除时刻固态硬盘中的数据相比于预定还原点时固态硬盘中的数据的无效数据;其中,所述第一数据状态包括在所述预定还原点记录的固态硬盘中的文件数据与存储扇区的对应关系;所述第三数据状态包括在所述待清除时刻记录的固态硬盘中的文件数据与存储扇区的对应关系。

在此基础上,可针对所述无效数据向SSD主控制器下发一trim指令,例如具体可由保护软件模拟操作系统下发针对所述无效数据的trim指令,SSD主控制器在接收该指令时,从固态硬盘中清除所述无效数据,从而使得固态硬盘中的数据存储情况与待清除时刻操作系统层面的有效文件数据一致,不存在多余数据,同样可达到节省硬盘空间、提升固态硬盘的工作效率,同时延长固态硬盘使用寿命的目的。

具体实施本申请时,可通过在所述保护软件中提供数据模式设置及切换功能使得用户可基于其实际需求自由选择或切换数据模式,比如可向用户提供可用于对文件数据进行保护/恢复的保护模式以及不对文件数据进行保护/恢复的开放模式,当用户需要对硬盘文件进行保护时,可选择保护模式,从而在该模式下通过拦截操作系统的trim指令,实现对硬盘数据进行保护,后续当有数据恢复需求时,可基于固态硬盘的数据存储情况进行数据恢复,且进行数据恢复时同时包括对固态硬盘中的新增数据形式的脏数据进行清除;当用户不再需要对硬盘文件进行保护时,可切换至开放模式,此时,由于硬盘文件不需要继续被保护,不再存在数据恢复需求,从而保护软件可认为接收到一删除数据直接清除指令,直接将固态硬盘中无效数据形式的脏数据进行清除,且之后不再拦截操作系统的trim指令,即在开放模式下,操作系统能够正常向固态硬盘下达trim指令。

参考图5、图6示出的应用本申请方案进行硬盘文件数据保护/恢复的示例图,其中,图5的应用示例具体在UEFI(Unified Extensible Firmware Interface,统一的可扩展固件接口)BIOS(Basic Input Output System,基本输入输出系统)层对本申请方案进行了实施,图6的应用示例具体在如windows等操作系统层对本申请方案进行了实施。

实施例四

参考图7,图7是本申请提供的一种数据恢复装置实施例四的结构示意图,所述装置适用于应用固态硬盘的系统,如应用固态硬盘的计算机操作系统等,如图7所示,所述数据恢复装置可以包括拦截模块100和恢复模块200。

拦截模块100,用于拦截操作系统向固态硬盘发送的第一数据清除指令。

首先,需要说明的是,本申请中数据删除及数据恢复分别指在操作系统层面的数据删除、数据恢复,数据清除指在固态硬盘中的数据删除,是永久性删除。

在应用固态硬盘并开启trim的系统中,当用户对某一文件进行删除时,操作系统会针对该文件向固态硬盘中的SSD主控制器下发一trim指令,以通知SSD主控制器该文件数据无效,从而使得在用户删除文件时刻直接从固态硬盘中清除该文件对应的无效数据。

为实现在应用固态硬盘并开启trim的系统中提供已删除数据的恢复功能,本申请方案提出对操作系统下发的trim指令即所述第一数据清除指令实施拦截,从而使得操作系统的trim指令无法真正下达至SSD主控制器,SSD主控制器由于无法获知被删除文件的数据无效,从而不会对固态硬盘中存储的该文件的无效数据进行清除。

恢复模块200,用于在符合数据恢复条件时,基于所述固态硬盘的数据存储情况进行数据恢复。

所述数据恢复条件可以是执行主体提供的缺省条件,也可以是用户基于其实际的数据恢复需求自行设置的相关条件,例如,假设在实际应用中采用保护软件的形式对本申请方案的各处理步骤进行实施,则所述数据恢复条件可以是所述保护软件提供的进行数据恢复需满足的缺省条件,也可以是用户在所述保护软件中预先设置的相应恢复条件,如用户具体可针对需保护的磁盘分区设置开机恢复或周期性恢复等等。

由于未在被删除文件的删除时刻对其无效数据从固态硬盘中进行清除,从而可为已删除文件的数据恢复提供有效支持,当符合数据恢复条件时,可基于固态硬盘的数据存储情况对已删除文件进行相应的数据恢复。

具体实施时,可基于硬盘空间的占用以及数据恢复的成功率等多方面考虑,对固态硬盘中无效数据(用户已删除的文件数据)的存储情况进行管理,例如,若考虑尽可能节省固态硬盘的空间占用,则可仅仅拦截操作系统的trim指令,而不对操作系统作任何代码调整,即对于操作系统来说,被删除文件的数据已无效,而对于固态硬盘则其仍将该文件数据作为有效数据进行存储,从而后续当有新数据需写入被删除文件所占用的硬盘空间时,固态硬盘才会获知被删除文件的数据已无效从而删除无效数据并写入新数据,此种情况下,固态硬盘仅能够支持在有新数据写入无效数据所占用的空间之前,对被删除文件进行数据恢复。

若考虑需要较高的数据恢复成功率,则可在拦截操作系统trim指令的同时,通知操作系统记录被删除的文件为需要保护的文件,从而后续操作系统不会指示向该文件所占用的空间写入新数据,固态硬盘会一直保持无效数据的存储直至有其他的相关指令,从而此种情况下,固态硬盘可支持一较高的数据恢复成功率。

由以上方案可知,本申请提供的数据恢复装置拦截操作系统向固态硬盘发送的第一数据清除指令;并在符合数据恢复条件时,基于所述固态硬盘的数据存储情况进行数据恢复。本申请方案通过拦截操作系统向固态硬盘发送的数据清除指令,可使得固态硬盘在文件被删除时无法获知文件数据无效,从而无法在文件被删除时刻从固态硬盘中对该文件对应的无效数据进行清除,即所述无效数据仍在固态硬盘中存在,从而在符合数据恢复条件时,可从固态硬盘中对用户已删除数据进行恢复。由此可见,本申请方案解决了应用固态硬盘的系统存在的上述问题,实现了在应用固态硬盘的系统中为用户删除数据的恢复提供支持。

实施例五

本实施例具体提供恢复模块200基于固态硬盘的数据存储情况进行数据恢复的一种可能的实现方式,其中,恢复模块200具体可通过以下过程实现数据恢复:确定待恢复时刻固态硬盘中的数据相比于预定还原点时固态硬盘中的数据的新增数据;从固态硬盘中清除所述新增数据,使得所述固态硬盘的数据存储情况与所述还原点时固态硬盘中的数据状态相一致。

所述待恢复时刻即为符合所述数据恢复条件时对应的时刻,例如针对用户设置的开机恢复或周期性恢复等条件,该时刻即为开机完成时或到达恢复周期时所对应的时刻。

其中,用户具体可针对磁盘分区进行相关的数据保护/恢复设置,比如,用户可设置全磁盘数据或某一个/多个磁盘分区(如C盘、D盘)数据为需保护的数据,并针对需保护的磁盘分区分别设置需采用的恢复条件,如开机恢复或周期性恢复等,同时针对需保护的磁盘分区,用户还可以创建其恢复数据时对应采用的还原点(亦可采用执行主体提供的缺省还原点),例如用户可将当前时刻的C盘文件数据状态设置为C盘文件的还原点,从而后续在对C盘文件进行数据恢复时,具体将其恢复至所述还原点对应的C盘文件数据状态。

在完成固态硬盘(全磁盘或某一个/多个磁盘分区)还原点创建的基础上,本申请方案的执行主体需记录固态硬盘在还原点的第一数据状态,以实现为后续的数据恢复提供数据状态基准,该第一数据状态包括在所述还原点记录的固态硬盘中的文件数据与存储扇区的对应关系。

在之后用户对文件数据进行增删改等操作过程中,执行主体随时记录固态硬盘中文件的最新数据状态,由于操作系统的trim指令被拦截,从而在用户对文件数据进行操作的过程中,固态硬盘(假设未有新数据写入无效数据所在空间)的实际存储状态为:在维持还原点文件数据的存储(包括还原点中未改动的数据以及删除或修改等操作删掉的无效数据)基础上,结合存储有因用户操作而产生的新增数据(包括增加或修改等操作产生的新增数据)。

从而,当符合数据恢复条件时,可获取固态硬盘在其还原点对应的第一数据状态以及在待恢复时刻对应的第二数据状态,第二数据状态包括在所述待恢复时刻记录的固态硬盘中的文件数据与存储扇区的对应关系;并基于所述第一数据状态及所述第二数据状态,确定固态硬盘在所述待恢复时刻相比于还原点的新增数据,该新增数据即为固态硬盘针对所述还原点因用户操作而额外存储的脏数据。在此基础上,可针对该新增数据向SSD主控制器下发一trim指令,例如具体可由保护软件模拟操作系统下发针对所述新增数据的trim指令,SSD主控制器在接收该指令时,从固态硬盘中清除该新增数据,使得其数据状态与还原点对应的第一数据状态相一致,在辅以从操作系统层面对还原点文件状态进行恢复(如恢复显示已删除的文件数据)的情况下可有效实现已删除文件的数据恢复。

需要说明的是,本申请中的数据恢复具体指操作系统层面的文件数据恢复,从而在进行数据恢复时,对固态硬盘中的所述脏数据的清除并不是必需的,因操作系统的trim指令被拦截,从而在用户对文件数据进行操作的过程中,固态硬盘的实际存储情况是:在维持还原点文件数据的存储基础上,还结合存储有因用户操作而产生的新增数据即脏数据,从而无论对固态硬盘中的脏数据清除与否,均可基于固态硬盘维持存储的还原点文件数据,在操作系统层面对用户已删除的文件数据进行恢复。

本实施例在进行数据恢复时同时包含清除固态硬盘中的脏数据仅为本申请提供的一较优实施方式,旨在使得固态硬盘不再将所述脏数据作为有效数据进行存储及管理,从而使得固态硬盘中存储的数据与操作系统层面的有效文件数据一致,无多余的无效数据,进而可达到节省硬盘空间、提升固态硬盘的工作效率,同时延长固态硬盘使用寿命的目的。

实施例六

本实施例继续对以上实施例的方案进行补充,参考图8示出的数据恢复装置的结构示意图,本实施例中,所述装置还可以包括直接清除模块300,用于在符合删除数据直接清除条件时,从固态硬盘中清除已删除的文件数据,并不再拦截操作系统向固态硬盘发送的数据清除指令。

与实施例二的方案相对应,当符合删除数据直接清除条件时,表示被保护的磁盘文件已无需继续被保护,不存在数据恢复需求,从而可直接从固态硬盘中清除已被删除的文件数据,且后续不再拦截操作系统向固态硬盘发送的数据清除指令。

其中,所述直接清除模块300从固态硬盘中清除已删除的文件数据具体包括:确定待清除时刻固态硬盘中的数据相比于预定还原点时固态硬盘中的数据的无效数据;从固态硬盘中清除所述无效数据。

具体地,在符合删除数据直接清除条件时,可获取固态硬盘在所述预定还原点的第一数据状态以及在待清除时刻的第三数据状态,并基于所述第三数据状态及所述第一数据状态,确定待清除时刻固态硬盘中的数据相比于预定还原点时固态硬盘中的数据的无效数据;其中,所述第一数据状态包括在所述预定还原点记录的固态硬盘中的文件数据与存储扇区的对应关系;所述第三数据状态包括在所述待清除时刻记录的固态硬盘中的文件数据与存储扇区的对应关系。

在此基础上,可针对所述无效数据向SSD主控制器下发一trim指令,例如具体可由保护软件模拟操作系统下发针对所述无效数据的trim指令,SSD主控制器在接收该指令时,从固态硬盘中清除所述无效数据,从而使得固态硬盘中的数据存储情况与待清除时刻操作系统层面的有效文件数据一致,不存在多余数据,同样可达到节省硬盘空间、提升固态硬盘的工作效率,同时延长固态硬盘使用寿命的目的。

具体实施本申请时,可通过在所述保护软件中提供数据模式设置及切换功能使得用户可基于其实际需求自由选择或切换数据模式,比如可向用户提供可用于对文件数据进行保护/恢复的保护模式以及不对文件数据进行保护/恢复的开放模式,当用户需要对硬盘文件进行保护时,可选择保护模式,从而在该模式下通过拦截操作系统的trim指令,实现对硬盘数据进行保护,后续当有数据恢复需求时,可基于固态硬盘的数据存储情况进行数据恢复,且进行数据恢复时同时包括对固态硬盘中的新增数据形式的脏数据进行清除;当用户不再需要对硬盘文件进行保护时,可切换至开放模式,此时,由于硬盘文件不需要继续被保护,不再存在数据恢复需求,从而保护软件可认为接收到一删除数据直接清除指令,直接将固态硬盘中无效数据形式的脏数据进行清除,且之后不再拦截操作系统的trim指令,即在开放模式下,操作系统能够正常向固态硬盘下达trim指令。

参考图5、图6示出的应用本申请方案进行硬盘文件数据保护/恢复的示例图,其中,图5的应用示例具体在UEFI(Unified Extensible Firmware Interface,统一的可扩展固件接口)BIOS(Basic Input Output System,基本输入输出系统)层对本申请方案进行了实施,图6的应用示例具体在如windows等操作系统层对本申请方案进行了实施。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

为了描述的方便,描述以上系统或装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1