掌桥专利:专业的专利平台
掌桥专利
首页

数据恢复方法、数据恢复装置及计算机可读存储介质

文献发布时间:2023-06-19 19:33:46


数据恢复方法、数据恢复装置及计算机可读存储介质

技术领域

本申请涉及计算机技术领域,特别是涉及一种数据恢复方法、数据恢复装置及计算机可读存储介质。

背景技术

现今,由于存储装置中固件技术的不成熟,NAND(NAND flash memory,计算机闪存设备)颗粒品质不佳,固件启动失败,或者是主控工作异常等情况,不可避免地,总会出现SSD(Solid State Disk,固态硬盘)不能正常工作的情况。

而一般厂家的做法是只要在RMA(Return Material Authorization,退料审查,处理用户不良产品的退货、换货的主要流程)允许的范围内,会选择给客户退货,但此方法会导致用户原本的数据丢失;或者将不良SSD送回原厂的技术人员进行数据恢复,但此方法不仅步骤繁琐,周期长,而且还涉及到数据保密的问题。SSD内一些关键的敏感的数据可能会在返厂恢复期间被泄露,存在很大的风险。

发明内容

本申请主要解决的技术问题是提供一种数据恢复方法、数据恢复装置及计算机可读存储介质,以解决现有技术中的数据恢复方法步骤繁琐,周期漫长,存在较大的关键敏感信息泄露的风险的问题。

为了解决上述问题,本申请第一方面提供了一种存储装置的恢复写入方法,其中,该数据恢复方法包括:建立与第一存储装置的通信连接;响应于第一存储装置运行在工程模式,读取第一存储装置的存储数据;响应于存储数据为逻辑数据,获取存储数据的逻辑地址;基于逻辑地址将存储数据写入至第二存储装置。

其中,读取第一存储装置的存储数据的步骤,包括:向第一存储装置发送数据恢复固件,以使第一存储装置运行数据恢复固件;向运行数据恢复固件的第一存储装置发送数据读取指令,以读取存储数据。

其中,响应于第一存储装置运行在工程模式,读取第一存储装置的存储数据的步骤之后,响应于存储数据为逻辑数据,获取存储数据的逻辑地址和写入顺序的步骤之前,包括:读取存储数据的元数据;基于元数据中对应记录的存储数据的数据属性判断存储数据是否为逻辑数据。

其中,获取存储数据的逻辑地址的步骤,包括:获取元数据中对应记录的存储数据的逻辑地址。

其中,基于逻辑地址将存储数据写入至第二存储装置的步骤,包括:将存储数据写入至第二存储装置中与逻辑地址对应的存储位置处。

其中,基于逻辑地址将存储数据写入至第二存储装置的步骤,包括:获取存储数据的写入顺序;根据写入顺序将多次写入至第一存储装置中的逻辑地址相同的存储数据中最后写入的数据写入至第二存储装置中与逻辑地址对应的存储位置处。

其中,基于逻辑地址将存储数据写入至第二存储装置的步骤,包括:根据逻辑地址将存储数据写入设定镜像文件的对应偏移位置;将设定镜像文件存储至第二存储装置。

其中,根据逻辑地址将存储数据写入设定镜像文件的对应偏移位置的步骤,包括:获取存储数据的写入顺序;根据写入顺序将多次写入至第一存储装置中的逻辑地址相同的存储数据中最后写入的数据写入至设定镜像文件中与逻辑地址对应的偏移位置。

其中,建立与第一存储装置的通信连接的步骤之后,响应于第一存储装置运行在工程模式,读取第一存储装置的存储数据的步骤之前,还包括:获取第一存储装置的特征参数;基于特征参数判断第一存储装置是否在预设支持列表中;响应于第一存储装置运行在工程模式,读取第一存储装置的存储数据的步骤,包括:响应于第一存储装置在预设支持列表中,且第一存储装置运行在工程模式,读取第一存储装置中的存储数据。

其中,基于所述逻辑地址将所述存储数据写入至第二存储装置的步骤之后,还包括:获取第一存储装置的型号和第一存储装置包括的存储芯片的数量;基于型号和数量判断当前是否已遍历完第一存储装置的所有存储空间;响应于已遍历完第一存储装置的所有存储空间,结束当前数据恢复流程。

为了解决上述问题,本申请第二方面提供了一种数据恢复装置,其中,该数据恢复装置包括相互耦接的存储器和处理器;存储器存储有程序数据;处理器用于执行程序数据,以实现如上任一项所述的数据恢复方法。

为了解决上述问题,本申请第三方面提供了一种计算机可读存储介质,其上存储有程序指令,其中,该程序指令被处理器执行时实现上任一项所述的恢复写入方法。

本发明的有益效果是:区别于现有技术的情况,本申请中的数据恢复方法在与第一存储装置的通信连接,并确定该第一存储装置运行在工程模式时,能够读取第一存储装置的存储数据,以在该存储数据为逻辑数据时,获取存储数据的逻辑地址,以能够基于该逻辑地址将存储数据写入至指定的第二存储装置,从而能够自主、安全、可靠地对无法正常工作的第一存储装置进行数据恢复,且有效避免了将第一存储装置发回制造原厂进行数据恢复,而导致恢复周期长、步骤繁琐,一些关键敏感数据被泄露、丢失的问题出现。

附图说明

图1是本申请数据恢复方法第一实施例的流程示意图;

图2是图1中S12一实施例的流程示意图;

图3是图1中S14一实施例的流程示意图;

图4是图1中S14又一实施例的流程示意图;

图5是图4中S1411又一实施例的流程示意图;

图6是本申请数据恢复方法第二实施例的流程示意图;

图7是本申请数据恢复方法第三实施例的流程示意图;

图8是本申请数据恢复方法第四实施例的流程示意图;

图9是本申请数据恢复方法一具体实施例的流程示意图;

图10是本申请存储装置一实施例的结构示意图;

图11是本申请计算机可读存储介质一实施例的结构示意图。

具体实施方式

下面结合说明书附图,对本申请实施例的方案进行详细说明。

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。

本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。

请参阅图1,图1是本申请数据恢复方法第一实施例的流程示意图。需要说明的是,本申请中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。具体而言,本实施例包括如下步骤:

S11:建立与第一存储装置的通信连接。

其中,本申请中提供的一种数据恢复方法具体可应用于一智能终端上,比如,通过用户终端上运行的数据恢复应用程序,对已经无法正常工作的存储装置进行数据读取,以对该存储装置工作异常前写入的数据进行恢复。当然,在其它实施例中,该数据恢复方法具体还可以应用于云端服务器上,或存储装置制造原厂的后台计算机上,本实施例对此并不加以限制。

具体地,已无法正常工作的第一存储装置具体可通过将其接口插接至智能终端的相应接口的方式,与旨在对其进行数据恢复的智能终端建立通信连接。

可理解的是,该智能终端具体可以是用户终端,而第一存储装置通过接口插接的方式与用户终端实现的通信连接为本地连接,而无需进行联网,以请求网络服务,且具体是通过运行在用户终端上的数据恢复应用程序实现对第一存储装置的数据恢复,而不需要专业人员操作,从而能够有效保证数据恢复过程中,相应数据信息的安全、可靠。

在另一实施例中,该智能终端还可以包括相互通信连接的云端服务器和用户终端,比如,相应的数据恢复应用程序运行在制造原厂的官方网站上,以能够通过网络通信的方式,对连接至用户终端上的第一存储装置进行数据恢复;或,该智能终端具体还可以包括相互通信连接的制造原厂的后台计算机和用户终端,且相应恢复应用程序运行在后台计算机上,而第一存储装置接口连接至用户终端,后台计算机能够通过用户终端向第一存储装置发送相应的程序控制指令,以对第一存储装置进行数据恢复,本申请对此不做限定。

需说明的是,上述云端服务器或后台计算机与用户终端之间涉及的数据交互,仅涉及程序控制指令的传输,而不可进行数据信息的交互和获取。

可选地,该第一存储装置具体可以为SSD(Solid State Disk,固态硬盘)、UFS(Universal Flash Storage,通用闪存存储)、eMMC(embedded Multi Media Card,嵌入式多媒体卡)等任一合理的存储设备中的一种,本申请对此不做限定。

可选地,该智能终端具体可以是计算机、平板电脑、智能手机以及服务器等任一合理的能够运行应用程序的智能终端中的一种,本申请对此不做限定。

S12:响应于第一存储装置运行在工程模式,读取第一存储装置的存储数据。

可理解的是,该第一存储装置当前已无法进行正常工作,而为区别于正常工作的存储装置,并保证能够对无法正常工作的第一存储装置进行数据交互,还需对第一存储装置进行特殊处理,比如,用户需将不可正常工作的第一存储装置按照操作指引,通过短接预留引脚等任一合理的方式,使其进入到工程模式。

具体地,智能终端在检测到当前与之实现通信连接的第一存储装置运行在工程模式,便可确定该第一存储装置已无法正常工作,需启动数据恢复程序,以进而读取该第一存储装置工作异常前的存储数据。

S13:响应于存储数据为逻辑数据,获取存储数据的逻辑地址。

可理解的是,智能终端在获取到第一存储装置中当前的存储数据后,还需对该存储数据进行识别区分,比如,对于该存储数据中的程序数据,因不涉及用户的私有数据,通常也无需进行恢复。

具体地,智能终端在检测到当前获取的存储数据为逻辑数据时,便可针对该逻辑数据依次进行恢复和另存,并进一步获取该逻辑数据的逻辑地址,比如,通过读取存储于第一存储装置中的映射表,以获取逻辑数据的逻辑地址;或,读取第一存储装置的元数据空间,以获取相应固件记录的逻辑数据的逻辑地址。

需说明的是,该逻辑数据是一种操作数类型,是用来表示二值逻辑中的“是”与“否”、或称“真”与“假”两个状态的数据。逻辑地址是指在计算机体系结构中是指应用程序角度看到的内存单元(memory cell)、存储单元(storage element)、网络主机(networkhost)的地址。逻辑地址往往不同于物理地址(physical address),通过地址翻译器(address translator)或映射函数可以把逻辑地址转化为物理地址。

其中,固件(Firmware)就是写入EPROM(可擦写可编程只读存储器)或EEPROM(电可擦可编程只读存储器)中的程序。固件是指设备内部保存的设备“驱动程序”,通过固件,操作系统才能按照标准的设备驱动实现特定机器的运行动作,比如光驱、刻录机等都有内部固件。固件是担任着一个系统最基础最底层工作的软件。而在硬件设备中,固件就是硬件设备的灵魂,因为一些硬件设备除了固件以外没有其它软件组成,因此固件也就决定着硬件设备的功能及性能。

S14:基于逻辑地址将存储数据写入至第二存储装置。

具体地,在得到待恢复的存储数据的逻辑地址后,即可根据该逻辑地址该存储数据写入至第二存储装置中与该逻辑地址对应的存储位置处;或,当旨在将该存储数据恢复为设定镜像文件时,可根据该逻辑地址计算得到该存储数据写入设定镜像文件的对应偏移位置,以在将该存储数据对应恢复为设定镜像文件后,进一步将设定镜像文件存储至第二存储装置。

可理解的是,该第二存储装置即是异于第一存储装置的能够正常进行工作的存储装置,且具体可以是进行数据恢复的智能终端中的存储空间,也可以是通信连接至该智能终端的其他任一合理的存储装置中的一种,本申请对此不做限定。

上述方案,在与无法正常工作的第一存储装置建立通信连接,并确定该第一存储装置运行在工程模式时,通过读取第一存储装置的存储数据,以在该存储数据为逻辑数据时,获取存储数据的逻辑地址,以能够基于该逻辑地址将存储数据写入至指定的第二存储装置,从而能够自主、安全、可靠地对无法正常工作的第一存储装置进行数据恢复,且有效避免了将第一存储装置发回制造原厂进行数据恢复,而导致恢复周期长、步骤繁琐,一些关键敏感数据被泄露、丢失的问题出现。

请结合参阅图2,图2是图1中S12一实施例的流程示意图。在一实施例中,本申请的存储装置的数据写入方法第一实施例除了包括上述S11-S14之外,还进一步包括一些更为具体的步骤。具体地,上述S12具体还可以包括如下步骤:

S121:向第一存储装置发送数据恢复固件,以使第一存储装置运行数据恢复固件。

可理解的,因第一存储装置已无法进行正常进行工作,为保证能够对第一存储装置进行有效的数据读取或获取,智能终端具体是通过向第一存储装置发送数据恢复固件,以覆盖第一存储装置中的原有固件,使第一存储装置运行该数据恢复固件。

S122:向运行数据恢复固件的第一存储装置发送数据读取指令,以读取存储数据。

进一步地,在第一存储装置运行数据恢复固件后,智能终端便可向第一存储装置发送能够被第一存储装置识别、响应的数据读取指令,从而读取到第一存储装置中的存储数据。

在一具体应用场景中,当调节至工程模式的第一存储装置通过接口插接至用户终端上后,用户终端上运行的数据恢复应用程序在识别出处于工程模式下的第一存储装置后,具体是通过下载一份用于数据恢复的固件到第一存储装置的主控中,以能够基于该数据恢复固件向第一存储装置发送能够被第一存储装置识别响应的专用数据读取指令。

进一步地,在一实施例中,上述S13具体还可以包括:获取元数据中对应记录的存储数据的逻辑地址。

可理解的是,在第一存储装置,比如,NAND的元数据空间中,响应固件会记录主机发来的每一笔4K逻辑数据的写入顺序、逻辑地址以及数据属性。

具体地,智能终端可通过读取第一存储装置的元数据空间,以获取到元数据中对应记录的存储数据的逻辑地址。而在其他实施例中,智能终端还可以通过读取存储于第一存储装置中的映射表,以获取逻辑数据的逻辑地址,本申请对此不做限定。

进一步地,在一实施例中,上述S14具体还可以包括:将存储数据写入至第二存储装置中与逻辑地址对应的存储位置处。

可理解的,在获取到逻辑数据的逻辑地址后,便能够对应将待恢复的存储数据写入至第二存储装置中与逻辑地址对应的存储位置处。

请结合参阅图3,图3是图1中S14一实施例的流程示意图。在一实施例中,上述S14具体还可以包括如下步骤:

S1401:获取存储数据的写入顺序。

可理解的是,在存储装置的数据存储中通常不可避免的会存在同一存储数据,比如,逻辑地址相同的存储数据多次被写入到第一存储装置中的情况,而为保证尽可能的减少无效数据对第二存储装置的存储空间的占用,而需对同一存储数据的写入顺序进行识别。

具体地,智能终端可通过读取第一存储装置的元数据空间,以获取到元数据中对应记录的存储数据的写入顺序。而在其他实施例中,智能终端还可以通过读取存储数据的时间戳等任一合理的信息直接获取到每一存储数据被写入到第一存储装置中的写入顺序,本申请对此不做限定。

S1402:根据写入顺序将多次写入至第一存储装置中的逻辑地址相同的存储数据中最后写入的数据写入至第二存储装置中与逻辑地址对应的存储位置处。

可理解的是,智能终端对相应存储数据进行的恢复具体是根据读取顺序依次进行的,以依次将当前获取的存储数据写入至第二存储装置中与逻辑地址对应的存储位置处。且在恢复过程中存在前后存储数据对应逻辑地址相同时,能够将最后写入至第一存储装置中的存储数据覆盖之前写入的相同存储数据,以保留多次写入至第一存储装置中的逻辑地址相同的存储数据中的最后写入的数据。

其中,该存储数据具体可以是依据第一存储装置的存储空间的位置顺序依次进行恢复,比如,从第一个存储页中的存储数据开始进行恢复,直至最后一个存储页,其中,当第三存储页中待恢复的存储数据在第一存储页中出现过,也即与第一存储页中的一存储数据的逻辑地址相同,且已被恢复至第二存储装置中时,如果第三存储页中的存储数据在之前相较为更后写入至第一存储装置中,则在将第三存储页中同一存储数据恢复至第二存储装置中相应逻辑地址对应的存储位置处时,覆盖第一存储页中已恢复的存储数据;而当第三存储页中的存储数据在之前相较为更早时,则保留第一存储页中已恢复至第二存储装置中的存储数据,而第三存储页中的存储数据不做恢复处理,依次类推,直至将第一存储装置的每一存储页中的存储数据恢复至第二存储装置中,并保留每一逻辑地址相同的最后写入至第一存储装置中的存储数据。

请结合参阅图4,图4是图1中S14又一实施例的流程示意图。在一实施例中,上述S14具体还可以包括如下步骤:

S1411:根据逻辑地址将存储数据写入设定镜像文件的对应偏移位置。

具体地,当旨在将该存储数据恢复为设定镜像文件时,则需根据获取到的存储数据的逻辑地址计算得到该存储数据写入设定镜像文件的对应偏移位置,以将该存储数据对应恢复为设定镜像文件。

S1412:将设定镜像文件存储至第二存储装置。

进一步地,在将该存储数据对应恢复为设定镜像文件后,便可将设定镜像文件存储至第二存储装置。

请结合参阅图5,图5是图4中S1411又一实施例的流程示意图。

在一实施例中,上述S1411具体还可以包括如下步骤:

S14111:获取存储数据的写入顺序。

可理解的是,在存储装置的数据存储中通常不可避免的会存在同一存储数据,比如,逻辑地址相同的存储数据多次被写入到第一存储装置中的情况,而为保证尽可能的减少无效数据对第二存储装置的存储空间的占用,还需对同一存储数据的写入顺序进行识别。

具体地,智能终端可通过读取第一存储装置的元数据空间,以获取到元数据中对应记录的存储数据的写入顺序。而在其他实施例中,智能终端还可以通过读取存储数据的时间戳等任一合理的信息直接获取到每一存储数据被写入到第一存储装置中的写入顺序,本申请对此不做限定。

S14112:根据写入顺序将多次写入至第一存储装置中的逻辑地址相同的存储数据中最后写入的数据写入至设定镜像文件中与逻辑地址对应的偏移位置。

具体地,当旨在将该存储数据恢复为设定镜像文件时,则需根据获取到的存储数据的逻辑地址计算得到该存储数据写入设定镜像文件的对应偏移位置,以将该存储数据对应恢复为设定镜像文件,并依据获取到的存储数据的写入顺序,保证多次写入至第一存储装置中的逻辑地址相同的存储数据中最后写入的数据被恢复至设定镜像文件中。

请参阅图6,图6是本申请数据恢复方法第二实施例的流程示意图。本实施例的数据恢复方法是图1中的数据恢复方法的一细化实施例的流程示意图,包括如下步骤:

S21:建立与第一存储装置的通信连接。

S22:响应于第一存储装置运行在工程模式,读取第一存储装置的存储数据。

其中,S21和S22与图1中的S11和S12相同,具体请参阅S11和S12及其相关的文字描述,在此不再赘述。

S23:读取存储数据的元数据。

可理解的是,在第一存储装置,比如,NAND的元数据空间中,响应固件会记录主机发来的每一笔4K逻辑数据的写入顺序、逻辑地址以及数据属性。

其中,该数据属性即用于区分该4K数据是固件的程序数据还是逻辑数据。

具体地,智能终端在确定第一存储装置运行在工程模式时,进一步读取第一存储装置元数据空间,以读取存储数据的元数据,也即每一逻辑数据的写入顺序、逻辑地址以及数据属性。

S24:基于元数据中对应记录的存储数据的数据属性判断存储数据是否为逻辑数据。

由此可知,通过读取存储数据的元数据,进而能够依据元数据中对应记录的存储数据的数据属性判断存储数据是否为逻辑数据。

其中,如果确定存储数据为逻辑数据,则执行S25,如果确定存储数据不是逻辑数据,则再次执行S22,直至遍历完第一存储装置的所有存储空间。

S25:获取存储数据的逻辑地址。

S26:基于逻辑地址将存储数据写入至第二存储装置。

其中,S25和S26与图1中的S13和S14相同,具体请参阅S13和S14及其相关的文字描述,在此不再赘述。

请参阅图7,图7是本申请数据恢复方法第三实施例的流程示意图。本实施例的数据恢复方法是图3中的数据恢复方法的一细化实施例的流程示意图,包括如下步骤:

S31:建立与第一存储装置的通信连接。

其中,S31与图1中的S11相同,具体请参阅S11及其相关的文字描述,在此不再赘述。

S32:获取第一存储装置的特征参数。

可理解的,为区别不同公司的产品和保护用户数据隐私,在对已无法正常工作的第一存储装置中的数据进行恢复时,还需判断相应智能终端是否对当前的第一存储装置具有数据恢复权限。

具体地,检测第一存储装置对应发送给智能终端的特征代码,或信号,以获取第一存储装置的特征参数,比如,第一存储装置的型号或产品序列号等任一合理的特征参数,以进而通过该特征参数对第一存储装置进行识别区分。

S33:基于特征参数判断第一存储装置是否在预设支持列表中。

进一步地,智能终端中预先具体有根据第一存储装置的特征参数建立其具有数据恢复权限的预设支持列表,以能够在获取到第一存储装置的特征参数时,能够基于该特征参数是否存在于该预设支持列表中,以判断对当前连接至智能终端的第一存储装置是否具有数据恢复权限。

其中,如果第一存储装置在智能终端的预设支持列表中,则执行S34,如果第一存储装置不存在于智能终端的预设支持列表中,则执行S37。

S34:响应于第一存储装置运行在工程模式,读取第一存储装置的存储数据。

S35:响应于存储数据为逻辑数据,获取存储数据的逻辑地址。

S36:基于逻辑地址将存储数据写入至第二存储装置。

其中,S34、S35以及S36与图1中的S12、S13以及S14相同,具体请参阅S12、S13以及S14及其相关的文字描述,在此不再赘述。

S37:结束当前恢复程序。

具体地,当确定第一存储装置不存在于智能终端的预设支持列表中,则表明智能终端对第一存储装置不存在数据恢复权限,需结束当前数据恢复程序,并弹出相应提示信息,以告知用户。

请参阅图8,图8是本申请数据恢复方法第四实施例的流程示意图。本实施例的数据恢复方法是图1中的数据恢复方法的一细化实施例的流程示意图,包括如下步骤:

S41:建立与第一存储装置的通信连接。

S42:响应于第一存储装置运行在工程模式,读取第一存储装置的存储数据。

S43:响应于存储数据为逻辑数据,获取存储数据的逻辑地址。

S44:基于逻辑地址将存储数据写入至第二存储装置。

其中,S41、S42、S43以及S44与图1中的S11、S12、S13以及S14相同,具体请参阅S11、S12、S13以及S14及其相关的文字描述,在此不再赘述。

S45:获取第一存储装置的型号和第一存储装置包括的存储芯片的数量。

可理解的是,因对第一存储装置中的存储数据进行的数据恢复具体是依次进行的,故而需确定第一存储装置具体的存储空间的大小,以防止提前结束数据恢复程序,而能够保证重要数据不被遗漏。

其中,由于批量生产模式为现在工业中的主流生产方式,通常同一型号的工业产品会具有同样地功能参数,比如,同一型号的存储装置通常会具有同样的存储空间大小。

具体地,为获取第一存储装置的具体存储空间大小,在对第一存储装置进行数据恢复之前或过程中,还需通过获取第一存储装置的型号和第一存储装置包括的存储芯片的数量,以进而确定第一存储装置的存储空间大小。

S46:基于型号和数量判断当前是否已遍历完第一存储装置的所有存储空间。

进一步地,在获取到第一存储装置的型号和第一存储装置包括的存储芯片的数量,便能够进而确定第一存储装置的存储空间大小,以确定当前进行的数据恢复是否已遍历完第一存储装置的所有存储空间。

其中,如果当前已遍历完第一存储装置的所有存储空间,则执行S47,如果当前未遍历完第一存储装置的所有存储空间,则再次执行S42,直至遍历完第一存储装置的所有存储空间。

S47:响应于已遍历完第一存储装置的所有存储空间,结束当前数据恢复流程。

具体地,在确定已遍历完第一存储装置的所有存储空间,则表明原本存储于第一存储装置的数据已经完完整整地恢复到指定镜像文件或者是指定恢复用的第二存储装置中了,可结束当前数据恢复流程。

请参阅图9,图9是本申请数据恢复方法一具体实施例的流程示意图。本实施例包括如下步骤:

S51:选择存储装置。

具体地,选择已无法正常工作的存储装置,以将该存储装置连接至加载有恢复应用程序的智能终端上。

S52:判断存储装置是否在恢复应用程序的预设支持列表中。

获取存储装置的特征参数,比如产品型号,以确定预先设置于智能终端的恢复应用程序中的预设支持列表中是否存在有该产品型号。

其中,如果存储装置在恢复应用程序的预设支持列表中,则执行S53,如果存储装置不在恢复应用程序的预设支持列表中,则执行S54。

S53:是否进入工程模式。

进一步地,检测存储装置是否进入到工程模式,比如,检测该存储装置的预设引脚是否已短接。

其中,如果存储装置进入到工程模式,则执行S55,如果存储装置未进入到工程模式,则执行S54。

S54:恢复失败。

具体地,在确定存储装置不在恢复应用程序的预设支持列表中或存储装置未进入到工程模式,则判定恢复失败,并弹出相应提示信息,以提醒用户。

S55:下载专用数据恢复固件。

具体地,因存储装置已无法进行正常进行工作,为保证能够对存储装置进行有效的数据读取或获取,智能终端具体是通过向存储装置发送数据恢复固件,以覆盖第一存储装置中的原有固件,使存储装置运行该数据恢复固件。

S56:获取存储装置的特征参数。

可理解的,为区别不同公司的产品和保护用户数据隐私,在对已无法正常工作的第一存储装置中的数据进行恢复时,还需判断其是否对其具有恢复权限。

具体地,检测第一存储装置对应发送给智能终端的特征代码,或信号,以获取第一存储装置的特征参数,比如,第一存储装置的型号或产品序列号等任一合理的特征参数,以对第一存储装置进行识别区分。

S57:遍历存储装置的所有存储空间。

具体地,遍历存储装置的存储空间,以依次获取存储装置中的存储数据,直至遍历完存储装置的所有存储空间。

S58:当前获取的存储数据的元数据记录的数据类型是否为逻辑数据。

可理解的是,存储装置,比如,以SSD为例,在向其NAND FLASH(闪存)编程主机中写入的数据时,会在每一个4K数据的元数据中记录其对应的数据属性、逻辑地址和写入顺序,也即元数据。

在需要进行数据恢复时,SSD即可通过预设方法进入工程模式,然后下载并让主控运行专用数据恢复固件。专用数据恢复固件可以响应厂家提供的专用数据恢复应用程序。专用数据恢复工具通过命令遍历SSD里的所有NAND FLASH空间,也即从Block 0(数据库中最小存储和处理单位的第0序号)的Page 0(第0序号的存储页)依次遍历至最后一个Block的最后一个Page,并根据每个4K的元数据的内容,以决定是否对该数据进行恢复,恢复的逻辑地址等操作。遍历完成后,原盘的内容将完整备份到指定镜像文件或指定的新盘上。

其中,如果当前存储数据为逻辑数据,则执行S59,如果当前存储数据不为逻辑数据,则执行S57。

S59:元数据记录的数据写入顺序是否为最新。

可理解的是,在存储装置的数据存储中通常不可避免的会存在同一存储数据,比如,逻辑地址相同的存储数据多次被写入到存储装置中的情况。

具体地,智能终端可通过读取存储装置的元数据空间,以获取到元数据中对应记录的存储数据的写入顺序,并依据该写入顺序判断当前进行恢复存储数据是否为最新写入至存储装置中的存储数据,也即写入顺序为最后写入到存储装置中的存储数据。

其中,如果当前写入顺序为最新,则执行S510,如果当前写入顺序不为最新,则执行S57。

S510:恢复为镜像文件或恢复到指定硬盘上。

进一步地,确定当前恢复、转存储方式是将存储数据恢复为镜像文件,还是恢复到指定硬盘上,具体可由程序设定,或接收用户对应输入的选择指令确定。

其中,如果确定将当前存储数据恢复为镜像文件,则执行S511,如果确定将当前存储数据恢复到指定硬盘上,则执行S512。

S511:根据元数据记录的逻辑地址,向指定镜像文件的偏移位置写入刚读出的数据,完成一笔数据的恢复。

在确定将当前存储数据恢复为镜像文件,则根据元数据记录的逻辑地址,向指定镜像文件的偏移位置写入刚读出的数据,以完成一笔数据的恢复。

S512:根据元数据记录的逻辑地址,向指定硬盘的相同逻辑地址写入刚读出的数据,完成一笔数据的恢复。

在确定将当前存储数据恢复到指定硬盘上时,则根据元数据记录的逻辑地址,向指定硬盘的相同逻辑地址写入刚读出的数据,完成一笔数据的恢复。

S513:检测是否已遍历完所有存储空间。

具体地,检测当前是否已遍历完所有存储空间,比如,通过预先确定的存储装置的存储空间大小,以确定当前是否已遍历完所有存储空间。

其中,如果当前已遍历完所有存储空间,则执行S514,如果当前未遍历完所有存储空间,则执行S57。

S514:恢复完成。

请参阅图10,图10是本申请存储装置一实施例的结构示意图。该数据恢复装置61包括相互耦接的存储器611和处理器612;存储器611存储有程序数据;处理器612用于执行程序数据,以实现如上任一项所述的数据恢复方法。

在一实施例中,数据恢复装置61具体包括相互耦接的接口(图未示出)、第一存储空间(图未示出)、第二存储空间(图未示出)以及处理器612;其中,接口用于连接数据待恢复的存储装置,第一存储空间存储有程序数据,处理器612用于执行程序数据,以实现如上任一项的数据恢复方法,以将存储装置中的存储数据存储至第二存储空间。

可选地,该存储装置具体可以为SSD(Solid State Disk,固态硬盘)、UFS(Universal Flash Storage,通用闪存存储)、eMMC(embedded Multi Media Card,嵌入式多媒体卡)等任一合理的存储设备中的一种,本申请对此不做限定。

可选地,该数据恢复装置61具体可以是计算机、平板电脑、智能手机以及服务器等任一合理的能够运行应用程序的智能终端中的一种,本申请对此不做限定。

具体而言,处理器612还可以称为CPU(Central Processing Unit,中央处理单元)。处理器612可能是一种集成电路芯片,具有信号的处理能力。处理器612还可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器612可以由集成电路芯片共同实现。

请参阅图11,图11是本申请计算机可读存储介质一实施例的结构示意图。计算机可读存储介质71存储有能够被处理器运行的程序指令711,该程序指令711用于实现上述任一项所述的数据恢复方法。

在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

技术分类

06120115950665