CN113377579A - 一种基于映射表的固态硬盘数据恢复方法和系统 - Google Patents
一种基于映射表的固态硬盘数据恢复方法和系统 Download PDFInfo
- Publication number
- CN113377579A CN113377579A CN202110696921.6A CN202110696921A CN113377579A CN 113377579 A CN113377579 A CN 113377579A CN 202110696921 A CN202110696921 A CN 202110696921A CN 113377579 A CN113377579 A CN 113377579A
- Authority
- CN
- China
- Prior art keywords
- mapping table
- block
- solid state
- state disk
- data recovery
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000013507 mapping Methods 0.000 title claims abstract description 227
- 238000011084 recovery Methods 0.000 title claims abstract description 63
- 239000007787 solid Substances 0.000 title claims abstract description 59
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000012163 sequencing technique Methods 0.000 claims abstract description 15
- 238000004590 computer program Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 2
- 238000012005 ligant binding assay Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明给出了一种基于映射表的固态硬盘数据恢复方法和系统,包括利用固态硬盘上的Index参数获取映射表所在块的位置,读取固态硬盘的二级映射表所在块的数据,并从映射表所在块的OOB数据中获取当前块的申请顺序;对二级映射表块排序后由新到旧遍历二级映射表块,重建未被擦除的二级映射表完成数据恢复。该方法和系统能准确可靠地实现SSD删除数据的恢复,为SSD的数据恢复提供可能。
Description
技术领域
本发明涉及计算机取证安全的技术领域,尤其是一种基于映射表的固态硬盘数据恢复方法和系统。
背景技术
固态硬盘(Solid State Disk或Solid State Drive,简称SSD),又称固态驱动器,是用固态电子存储芯片阵列制成的硬盘。SSD主要由SSD控制器和Flash阵列组成,具有良好的随机读写性能,正在逐步取代传统机械硬盘。由于Flash芯片在数据写入后需要先擦出后写入,导致文件系统的直接进行Flash读写的性能不佳。为了解决这个问题,SSD引入了TRIM指令,文件系统删除文件后通过TRIM通知SSD主控将文件的数据和索引一并删除。因此,SSD上的文件删除后,从逻辑地址上就无法再读取到文件的数据,也就无法进行数据恢复,当前市面对SSD删除数据的恢复还没有成熟通用的方法。
由于SSD引入了TRIM指令,数据删除后其逻辑地址也相应抹零,传统基于文件系统的数据恢复已经无法恢复出被删除的数据。研究发现SSD内部通过FTL软件层将LBA(逻辑区块地址)映射到实际的NandFlash闪存页中(PBA物理区块地址),文件删除时候FTL将LBA到PBA的映射断开,并没有立即删除实际数据。由于SSD删除数据后LBA与PBA的映射单端,现在市面上的恢复软件单纯读取LBA的数据便无法真正实现数据恢复。
发明内容
为了解决现有技术中难以对SSD删除数据的恢复的技术问题,本发明提出了一种基于映射表的固态硬盘数据恢复方法和系统,以解决上述技术问题。
根据本发明的一个方面,提出了一种基于映射表的固态硬盘数据恢复方法,该方法包括:
S1:利用固态硬盘上的Index参数获取映射表所在块的位置,读取固态硬盘的二级映射表所在块的数据,并从映射表所在块的OOB数据中获取当前块的申请顺序;
S2:对二级映射表块排序后由新到旧遍历二级映射表块,重建未被擦除的二级映射表完成数据恢复。
在一些具体的实施例中,步骤S1具体包括:
读取固态硬盘上的Index参数获取所有映射表块集合F,读取每个映射表块的OOB数据中的分配顺序FSn,根据分配顺序FSn对集合F进行排序;
取集合F中最新未处理块Fi,扫描获取Fi上所有二级映射表小块集合Mi,并根据每个二级映射表小块所在页获取页编号MiSn,根据页编号MiSn对集合Mi进行排序。
在一些具体的实施例中,根据分配顺序FSn对集合F进行排序具体为根据块分配顺序按降序排序。
在一些具体的实施例中,根据页编号MiSn对集合Mi进行排序具体为根据同一个块内的页排序规则按页编号降序排序。
在一些具体的实施例中,步骤S2具体包括:
取集合Mi中最新未处理二级映射表小块Mii,获取二级映射表小块Mii上所有的逻辑区块地址映射关系集合L2Pi;
响应于集合L2Pi中的逻辑区块地址的映射关系Mapi在重组后的二级映射表中未被重建逻辑区块地址的映射关系,将Mapi填入重组后的二级映射表中。
在一些具体的实施例中,步骤S2还包括:依次遍历集合L2Pi直至所有逻辑区块地址都完成处理、遍历集合Mi直至所有二级映射小块都完成处理和遍历集合F直至所有二级映射表块都完成处理,利用重组后的二级映射表读取固态硬盘中所有NandFlash数据后进行重映射完成数据恢复。
根据本发明的第二方面,提出了一种计算机可读存储介质,其上存储有一或多个计算机程序,该一或多个计算机程序被计算机处理器执行时实施上述任一项的方法。
根据本发明的第三方面,提出了一种基于映射表的固态硬盘数据恢复系统,该系统包括:
映射表块获取单元:配置用于利用固态硬盘上的Index参数获取映射表所在块的位置,读取固态硬盘的二级映射表所在块的数据,并从映射表所在块的OOB数据中获取当前块的申请顺序;
数据恢复单元:配置用于对二级映射表块排序后由新到旧遍历二级映射表块,重建未被擦除的二级映射表完成数据恢复。
在一些具体的实施例中,映射表块获取单元具体配置用于读取固态硬盘上的Index参数获取所有映射表块集合F,读取每个映射表块的OOB数据中的分配顺序FSn,根据分配顺序FSn对集合F进行排序;取集合F中最新未处理块Fi,扫描获取Fi上所有二级映射表小块集合Mi,并根据每个二级映射表小块所在页获取页编号MiSn,根据页编号MiSn对集合Mi进行排序。
在一些具体的实施例中,根据分配顺序FSn对集合F进行排序具体为根据块分配顺序按降序排序。
在一些具体的实施例中,根据页编号MiSn对集合Mi进行排序具体为根据同一个块内的页排序规则按页编号降序排序。
在一些具体的实施例中,数据恢复单元具体配置用于取集合Mi中最新未处理二级映射表小块Mii,获取二级映射表小块Mii上所有的逻辑区块地址映射关系集合L2Pi;响应于集合L2Pi中的逻辑区块地址的映射关系Mapi在重组后的二级映射表中未被重建逻辑区块地址的映射关系,将Mapi填入重组后的二级映射表中。
在一些具体的实施例中,数据恢复单元还配置用于依次遍历集合L2Pi直至所有逻辑区块地址都完成处理、遍历集合Mi直至所有二级映射小块都完成处理和遍历集合F直至所有二级映射表块都完成处理,利用重组后的二级映射表读取固态硬盘中所有NandFlash数据后进行重映射完成数据恢复。
本发明提出了一种基于映射表的固态硬盘数据恢复方法和系统,该方法通过读取SSD上Index参数获取映射表所在块的位置,读取SSD二级映射表所在块的数据,并从该映射表所在块的OOB数据中获取该块的申请顺序。将所有二级映射表块按照申请顺序排序后,由新到旧遍历所有二级映射表块,便可以重建未被TRIM指令擦除的二级映射表,从而实现数据恢复。该方法能准确可靠地实现SSD删除数据的恢复,为SSD的数据恢复提供可能。
附图说明
包括附图以提供对实施例的进一步理解并且附图被并入本说明书中并且构成本说明书的一部分。附图图示了实施例并且与描述一起用于解释本发明的原理。将容易认识到其它实施例和实施例的很多预期优点,因为通过引用以下详细描述,它们变得被更好地理解。通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请的一个实施例的基于映射表的固态硬盘数据恢复方法的流程图;
图2是本申请的一个具体的实施例的基于映射表的固态硬盘数据恢复方法的流程图;
图3是本申请的一个实施例的基于映射表的固态硬盘数据恢复系统的框架图;
图4是适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
由于NandFlash的数据修改需要先擦出再写入,这要求文件系统在读写时候做大量操作。为了解决这个问题,SSD主控引入了FTL层让文件系统能够像传统机械硬盘操作一样操作SSD,FTL层直接决定SSD的性能好坏。现在市面上的SSD基本都是采用混合映射的方式,这种映射方式下映射表占用空间很大。为了避免每次修改都重新写入一整份映射表,SSD内部采用的是两级映射的方法。由二级映射表对LBA进行映射,SSD将二级映射表分解成若干个小的二级映射表,由一级映射表对二级映射表进行索引。SSD每次修改映射时只需要将LBA所在的二级映射表的小分块即可。申请人进一步研究发现,SSD内部管理一份Index参数表,用于识别各系统块所在块位置。
申请人针对SSD使用TRIM指令删除数据进行深入研究发现,SSD每次使用TRIM指令删除某个LBA地址数据时候,仅仅只是将该LBA对应的二级映射关系擦除掉而已,实际数据并没有立即删除。因此只要重新创建某个被TRIM删除掉数据的LBA映射关系,就可以实现对该LBA的数据恢复。而SSD的FTL层在擦除某个LBA的映射关系时,并不会立即将该LBA的二级映射表删除,而是在映射表所在块上重新找一个位置写入新的二级映射表,并废弃原来的二级映射表。本专利提出一种基于映射表的SSD删除数据恢复方法的关键在于获取映射表块上所有二级映射表搜索所有LBA的映射记录,重新编译出未被TRIM指令擦除的二级映射表。在某些SSD的使用场景下,同一个LBA地址被反复重映射到新的PBA中,给重建二级映射表带来巨大困难。申请人深入研究FTL的工作原理后发现,SSD主控会在二级映射表所在块每个页的OOB上标注该块的申请顺序,并且每个映射表的块内按照页编号顺序进行申请使用。
根据本申请的一个实施例的基于映射表的固态硬盘数据恢复方法,图1示出了根据本申请的实施例的基于映射表的固态硬盘数据恢复方法的流程图。如图1所示,该方法包括:
S101:利用固态硬盘上的Index参数获取映射表所在块的位置,读取固态硬盘的二级映射表所在块的数据,并从映射表所在块的OOB数据中获取当前块的申请顺序。
在具体的实施例中,该步骤具体包括读取固态硬盘上的Index参数获取所有映射表块集合F,读取每个映射表块的OOB数据中的分配顺序FSn,根据分配顺序FSn对集合F进行排序;取集合F中最新未处理块Fi,扫描获取Fi上所有二级映射表小块集合Mi,并根据每个二级映射表小块所在页获取页编号MiSn,根据页编号MiSn对集合Mi进行排序。
优选的,根据分配顺序FSn对集合F进行排序具体为根据块分配顺序按降序排序。根据页编号MiSn对集合Mi进行排序具体为根据同一个块内的页排序规则按页编号降序排序。
S102:对二级映射表块排序后由新到旧遍历二级映射表块,重建未被擦除的二级映射表完成数据恢复。
在具体的实施例中,该步骤具体包括取集合Mi中最新未处理二级映射表小块Mii,获取二级映射表小块Mii上所有的逻辑区块地址映射关系集合L2Pi;响应于集合L2Pi中的逻辑区块地址的映射关系Mapi在重组后的二级映射表中未被重建逻辑区块地址的映射关系,将Mapi填入重组后的二级映射表中。
在具体的实施例中,依次遍历集合L2Pi直至所有逻辑区块地址都完成处理、遍历集合Mi直至所有二级映射小块都完成处理和遍历集合F直至所有二级映射表块都完成处理,利用重组后的二级映射表读取固态硬盘中所有NandFlash数据后进行重映射完成数据恢复。
在具体的实施例中,SSD引入的TRIM指令后,使用Trim指令擦除LBA与PBA的映射信息,市面上的数据恢复软件无法对SSD进行数据恢复。本申请发明人对SSD的映射原理进行研究以及大量实验的基础上,利用二级映射表的编辑记录对SSD的二级映射表进行重新编译重组,最终重组出逻辑镜像包含了被SSD的TRIM指令删除的数据。该方法能准确可靠地实现SSD删除数据的恢复,为SSD的数据恢复提供可能。
继续参考图2,图2示出了本申请的一个具体的实施例的基于映射表的固态硬盘数据恢复方法流程图,如图2所示,该方法包括:
步骤201:获取所有映射表块放入集合F,并读取各块对应的块分配顺序FSn。读取SSD上Index参数获取所有映射表块放入集合F,并读取每个映射表块OOB中的分配顺序放入其对应的FSn。
步骤202:使用排序规则BSR对集合F进行排序。映射表块排序规则BSR:将待排序集合按块分配顺序排序,块分配顺序大的排前面,块分配顺序小的排后面。
步骤203:从集合F中取出一个最新的未处理块Fi。
步骤204:扫描Fi上所有的二级映射表小块放入集合Mi,根据每个二级映射表效块所在页获取MiSn。
步骤205:使用排序规则PSR对集合Mi进行排序。同一个块内的页排序规则PSR:按页编号排序,页编号大排前面,页编号号小排后面。
步骤206:从集合Mi中取出一个最新的未处理二级映射表小块Mii。
步骤207:读取该二级映射小块Mii上所有的LBA映射关系放入集合L2Pi。
步骤208:从集合L2Pi中取出一个LBA的映射关系记为Mapi。
步骤209:判断ReMapTable表中是否已经重建该LBA的映射关系。若否,进入步骤210,若是,进入步骤211。
步骤210:将Mapi填入ReMapTable表。
步骤211:判断L2Pi中所有LBA都已经处理过。若是,进入步骤212,若否,返回步骤208。
步骤212:判断Mi中所有二级映射表小块都已经处理过。若是,进入步骤213,若否,返回步骤206。
步骤213:判断Fi中所有二级映射表块都已经处理过。若是,进入步骤214,若否,返回步骤203。
步骤214:ReMapTable表创建成功,根据ReMapTable表读取NandFlash数据并进行重映射。
上述步骤中,集合F是所有映射表块的集合,FSn是映射表块的分配顺序。集合Mi是集合F中Fi块上所有二级映射表小块的集合,MiSn为该二级映射表小块集合中各小映射块所在页的页编号。集合L2Pi是集合Mi中Mii块上所有LBA映射关系的集合。ReMapTable为重组后的二级映射表。
对于上述方法和系统,本申请发明人进行了多次试验,在SSD内放入一些文件。随机删除部分文件,并利用上述方法或系统对数据进行恢复,对比目前市面上的恢复软件R-Studio的恢复效果与本申请提供的方法的恢复效果。发现R-Studio只恢复出文件目录并没有恢复出文件内容,而本申请的方法有效地恢复出了文件内容。
继续参考图3,图3示出了根据本发明的实施例的基于映射表的固态硬盘数据恢复系统的框架图。该系统具体包括映射表块获取单元301和数据恢复单元302。
在具体的实施例中,映射表块获取单元301配置用于利用固态硬盘上的Index参数获取映射表所在块的位置,读取固态硬盘的二级映射表所在块的数据,并从映射表所在块的OOB数据中获取当前块的申请顺序;数据恢复单元302配置用于对二级映射表块排序后由新到旧遍历二级映射表块,重建未被擦除的二级映射表完成数据恢复。
在一些具体的实施例中,映射表块获取单元301具体为:读取固态硬盘上的Index参数获取所有映射表块集合F,读取每个映射表块的OOB数据中的分配顺序FSn,根据分配顺序FSn对集合F进行排序;取集合F中最新未处理块Fi,扫描获取Fi上所有二级映射表小块集合Mi,并根据每个二级映射表小块所在页获取页编号MiSn,根据页编号MiSn对集合Mi进行排序。其中,根据分配顺序FSn对集合F进行排序具体为根据块分配顺序按降序排序;根据页编号MiSn对集合Mi进行排序具体为根据同一个块内的页排序规则按页编号降序排序。
在一些具体的实施例中,数据恢复单元302具体配置用于取集合Mi中最新未处理二级映射表小块Mii,获取二级映射表小块Mii上所有的逻辑区块地址映射关系集合L2Pi;响应于集合L2Pi中的逻辑区块地址的映射关系Mapi在重组后的二级映射表中未被重建逻辑区块地址的映射关系,将Mapi填入重组后的二级映射表中。依次遍历集合L2Pi直至所有逻辑区块地址都完成处理、遍历集合Mi直至所有二级映射小块都完成处理和遍历集合F直至所有二级映射表块都完成处理,利用重组后的二级映射表读取固态硬盘中所有NandFlash数据后进行重映射完成数据恢复。
下面参考图4,其示出了适于用来实现本申请实施例的电子设备的计算机系统400的结构示意图。图4示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图4所示,计算机系统400包括中央处理单元(CPU)401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储部分408加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。在RAM 403中,还存储有系统400操作所需的各种程序和数据。CPU 401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
以下部件连接至I/O接口405:包括键盘、鼠标等的输入部分406;包括诸如液晶显示器(LCD)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至I/O接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质411被安装。在该计算机程序被中央处理单元(CPU)401执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:利用固态硬盘上的Index参数获取映射表所在块的位置,读取固态硬盘的二级映射表所在块的数据,并从映射表所在块的OOB数据中获取当前块的申请顺序;对二级映射表块排序后由新到旧遍历二级映射表块,重建未被擦除的二级映射表完成数据恢复。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (13)
1.一种基于映射表的固态硬盘数据恢复方法,其特征在于,包括:
S1:利用所述固态硬盘上的Index参数获取映射表所在块的位置,读取所述固态硬盘的二级映射表所在块的数据,并从所述映射表所在块的OOB数据中获取当前块的申请顺序;
S2:对二级映射表块排序后由新到旧遍历所述二级映射表块,重建未被擦除的所述二级映射表完成数据恢复。
2.根据权利要求1所述的基于映射表的固态硬盘数据恢复方法,其特征在于,所述步骤S1具体包括:
读取所述固态硬盘上的Index参数获取所有映射表块集合F,读取每个映射表块的OOB数据中的分配顺序FSn,根据所述分配顺序FSn对所述集合F进行排序;
取所述集合F中最新未处理块Fi,扫描获取Fi上所有二级映射表小块集合Mi,并根据每个所述二级映射表小块所在页获取页编号MiSn,根据所述页编号MiSn对所述集合Mi进行排序。
3.根据权利要求2所述的基于映射表的固态硬盘数据恢复方法,其特征在于,根据所述分配顺序FSn对所述集合F进行排序具体为根据块分配顺序按降序排序。
4.根据权利要求2所述的基于映射表的固态硬盘数据恢复方法,其特征在于,根据所述页编号MiSn对所述集合Mi进行排序具体为根据同一个块内的页排序规则按页编号降序排序。
5.根据权利要求2所述的基于映射表的固态硬盘数据恢复方法,其特征在于,所述步骤S2具体包括:
取所述集合Mi中最新未处理二级映射表小块Mii,获取所述二级映射表小块Mii上所有的逻辑区块地址映射关系集合L2Pi;
响应于所述集合L2Pi中的逻辑区块地址的映射关系Mapi在重组后的二级映射表中未被重建逻辑区块地址的映射关系,将所述Mapi填入所述重组后的二级映射表中。
6.根据权利要求5所述的基于映射表的固态硬盘数据恢复方法,其特征在于,所述步骤S2还包括:依次遍历所述集合L2Pi直至所有逻辑区块地址都完成处理、遍历所述集合Mi直至所有二级映射小块都完成处理和遍历所述集合F直至所有二级映射表块都完成处理,利用重组后的二级映射表读取固态硬盘中所有NandFlash数据后进行重映射完成数据恢复。
7.一种计算机可读存储介质,其上存储有一或多个计算机程序,其特征在于,该一或多个计算机程序被计算机处理器执行时实施权利要求1至6中任一项所述的方法。
8.一种基于映射表的固态硬盘数据恢复系统,其特征在于,所述系统包括:
映射表块获取单元:配置用于利用所述固态硬盘上的Index参数获取映射表所在块的位置,读取所述固态硬盘的二级映射表所在块的数据,并从所述映射表所在块的OOB数据中获取当前块的申请顺序;
数据恢复单元:配置用于对二级映射表块排序后由新到旧遍历所述二级映射表块,重建未被擦除的所述二级映射表完成数据恢复。
9.根据权利要求8所述的基于映射表的固态硬盘数据恢复系统,其特征在于,所述映射表块获取单元具体配置用于读取所述固态硬盘上的Index参数获取所有映射表块集合F,读取每个映射表块的OOB数据中的分配顺序FSn,根据所述分配顺序FSn对所述集合F进行排序;取所述集合F中最新未处理块Fi,扫描获取Fi上所有二级映射表小块集合Mi,并根据每个所述二级映射表小块所在页获取页编号MiSn,根据所述页编号MiSn对所述集合Mi进行排序。
10.根据权利要求9所述的基于映射表的固态硬盘数据恢复系统,其特征在于,根据所述分配顺序FSn对所述集合F进行排序具体为根据块分配顺序按降序排序。
11.根据权利要求9所述的基于映射表的固态硬盘数据恢复系统,其特征在于,根据所述页编号MiSn对所述集合Mi进行排序具体为根据同一个块内的页排序规则按页编号降序排序。
12.根据权利要求9所述的基于映射表的固态硬盘数据恢复系统,其特征在于,所述数据恢复单元具体配置用于取所述集合Mi中最新未处理二级映射表小块Mii,获取所述二级映射表小块Mii上所有的逻辑区块地址映射关系集合L2Pi;响应于所述集合L2Pi中的逻辑区块地址的映射关系Mapi在重组后的二级映射表中未被重建逻辑区块地址的映射关系,将所述Mapi填入所述重组后的二级映射表中。
13.根据权利要求12所述的基于映射表的固态硬盘数据恢复系统,其特征在于,所述数据恢复单元还配置用于依次遍历所述集合L2Pi直至所有逻辑区块地址都完成处理、遍历所述集合Mi直至所有二级映射小块都完成处理和遍历所述集合F直至所有二级映射表块都完成处理,利用重组后的二级映射表读取固态硬盘中所有NandFlash数据后进行重映射完成数据恢复。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110696921.6A CN113377579B (zh) | 2021-06-23 | 2021-06-23 | 一种基于映射表的固态硬盘数据恢复方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110696921.6A CN113377579B (zh) | 2021-06-23 | 2021-06-23 | 一种基于映射表的固态硬盘数据恢复方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113377579A true CN113377579A (zh) | 2021-09-10 |
CN113377579B CN113377579B (zh) | 2024-05-07 |
Family
ID=77578601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110696921.6A Active CN113377579B (zh) | 2021-06-23 | 2021-06-23 | 一种基于映射表的固态硬盘数据恢复方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113377579B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114063919A (zh) * | 2021-11-12 | 2022-02-18 | 厦门市美亚柏科信息股份有限公司 | 用于ssd的物理块分配顺序获取方法及数据恢复方法 |
CN116701038A (zh) * | 2023-06-25 | 2023-09-05 | 深圳市东方聚成科技有限公司 | 一种用于存储器快速恢复存储数据的控制方法与控制系统 |
CN116700635A (zh) * | 2023-08-09 | 2023-09-05 | 深圳市威科伟业电子科技有限公司 | 固态硬盘数据恢复方法及固态硬盘 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100281078A1 (en) * | 2009-04-30 | 2010-11-04 | Microsoft Corporation | Distributed data reorganization for parallel execution engines |
CN102084330A (zh) * | 2008-04-06 | 2011-06-01 | 弗森-艾奥公司 | 用于有效地映射虚拟地址和物理地址的装置、系统和方法 |
CN102239480A (zh) * | 2008-12-17 | 2011-11-09 | Lsi公司 | Ssd技术协助的存储系统快照 |
CN104899114A (zh) * | 2014-03-07 | 2015-09-09 | 中国科学院苏州纳米技术与纳米仿生研究所 | 一种固态硬盘上的连续时间数据保护方法 |
CN105224478A (zh) * | 2015-09-25 | 2016-01-06 | 联想(北京)有限公司 | 一种映射表的形成、更新和恢复方法及电子设备 |
CN109117382A (zh) * | 2017-06-26 | 2019-01-01 | 西部数据技术公司 | 用于对经擦除的闪存页扫描的方法和系统 |
CN112596949A (zh) * | 2020-12-23 | 2021-04-02 | 厦门市美亚柏科信息股份有限公司 | 一种高效率的ssd删除数据恢复方法及系统 |
-
2021
- 2021-06-23 CN CN202110696921.6A patent/CN113377579B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102084330A (zh) * | 2008-04-06 | 2011-06-01 | 弗森-艾奥公司 | 用于有效地映射虚拟地址和物理地址的装置、系统和方法 |
CN102239480A (zh) * | 2008-12-17 | 2011-11-09 | Lsi公司 | Ssd技术协助的存储系统快照 |
US20100281078A1 (en) * | 2009-04-30 | 2010-11-04 | Microsoft Corporation | Distributed data reorganization for parallel execution engines |
CN104899114A (zh) * | 2014-03-07 | 2015-09-09 | 中国科学院苏州纳米技术与纳米仿生研究所 | 一种固态硬盘上的连续时间数据保护方法 |
CN105224478A (zh) * | 2015-09-25 | 2016-01-06 | 联想(北京)有限公司 | 一种映射表的形成、更新和恢复方法及电子设备 |
CN109117382A (zh) * | 2017-06-26 | 2019-01-01 | 西部数据技术公司 | 用于对经擦除的闪存页扫描的方法和系统 |
CN112596949A (zh) * | 2020-12-23 | 2021-04-02 | 厦门市美亚柏科信息股份有限公司 | 一种高效率的ssd删除数据恢复方法及系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114063919A (zh) * | 2021-11-12 | 2022-02-18 | 厦门市美亚柏科信息股份有限公司 | 用于ssd的物理块分配顺序获取方法及数据恢复方法 |
CN114063919B (zh) * | 2021-11-12 | 2023-08-18 | 厦门市美亚柏科信息股份有限公司 | 用于ssd的物理块分配顺序获取方法及数据恢复方法 |
CN116701038A (zh) * | 2023-06-25 | 2023-09-05 | 深圳市东方聚成科技有限公司 | 一种用于存储器快速恢复存储数据的控制方法与控制系统 |
CN116701038B (zh) * | 2023-06-25 | 2024-04-02 | 深圳市东方聚成科技有限公司 | 一种用于存储器快速恢复存储数据的控制方法与控制系统 |
CN116700635A (zh) * | 2023-08-09 | 2023-09-05 | 深圳市威科伟业电子科技有限公司 | 固态硬盘数据恢复方法及固态硬盘 |
CN116700635B (zh) * | 2023-08-09 | 2024-01-30 | 深圳市威科伟业电子科技有限公司 | 固态硬盘数据恢复方法及固态硬盘 |
Also Published As
Publication number | Publication date |
---|---|
CN113377579B (zh) | 2024-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113377579B (zh) | 一种基于映射表的固态硬盘数据恢复方法和系统 | |
US9684462B2 (en) | Method and apparatus utilizing non-uniform hash functions for placing records in non-uniform access memory | |
US7610434B2 (en) | File recording apparatus | |
KR100791325B1 (ko) | 비휘발성 메모리를 관리하는 장치 및 방법 | |
CN107391774B (zh) | 基于重复数据删除的日志文件系统的垃圾回收方法 | |
JP2021082156A (ja) | ストレージシステム | |
JP2008198208A (ja) | ホストデータ処理装置の動作方法、ホストデータ処理装置並びにデータ格納装置 | |
KR20140112303A (ko) | 불휘발성 메모리 장치, 전자 장치 그리고 그것을 포함하는 컴퓨팅 시스템 | |
US9262339B2 (en) | Managing write operations in a computerized memory | |
EP3364303A1 (en) | Data arrangement method, storage apparatus, storage controller and storage array | |
CN116257460B (zh) | 基于固态硬盘的Trim命令处理方法及固态硬盘 | |
CN112596949B (zh) | 一种高效率的ssd删除数据恢复方法及系统 | |
US20140244699A1 (en) | Apparatus and Methods for Selective Location and Duplication of Relevant Data | |
US10817417B1 (en) | Data storage efficiency using storage devices with variable-size internal data mapping | |
CN112015672A (zh) | 一种存储系统中数据处理方法、装置、设备及存储介质 | |
US20140095558A1 (en) | Computing system and method of managing data thereof | |
JP6805501B2 (ja) | ストレージ装置 | |
CN112380174B (zh) | 含删除文件的xfs文件系统解析方法、终端设备及存储介质 | |
CN115220964A (zh) | 一种基于ssd映射表的删除数据和历史记录恢复方法及装置 | |
CN114063919B (zh) | 用于ssd的物理块分配顺序获取方法及数据恢复方法 | |
US20220092049A1 (en) | Workload-driven database reorganization | |
CN102789421B (zh) | 提高nand闪存读写性能的方法及装置 | |
CN106991021A (zh) | 从现有数据文件构建新数据文件的方法及系统 | |
CN108038064B (zh) | 一种PairBlock擦除出错的处理方法及装置 | |
CN116126243A (zh) | 一种存储介质信息消除方法、系统和工具 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |