CN110569147B - 一种基于索引的删除文件恢复方法、终端设备及存储介质 - Google Patents
一种基于索引的删除文件恢复方法、终端设备及存储介质 Download PDFInfo
- Publication number
- CN110569147B CN110569147B CN201910834998.8A CN201910834998A CN110569147B CN 110569147 B CN110569147 B CN 110569147B CN 201910834998 A CN201910834998 A CN 201910834998A CN 110569147 B CN110569147 B CN 110569147B
- Authority
- CN
- China
- Prior art keywords
- file
- data block
- index
- extent
- node
- 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.)
- Active
Links
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/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
Abstract
本发明涉及一种基于索引的删除文件恢复方法、终端设备及存储介质,该方法中包括:S1:获取其未分配区域中各数据块的范围集合DU={S1,S2,S3…Sn},并获取块大小BLOCKSIZE;设定i=1;S2:判断i>n是否成立,如果成立,进入S7;否则,进入S3;S3:根据Si的内容,计算Li和Hi:S4:读取Li和Hi之间的数据,设定Ti=Li;S5:判断Ti是否为有效的EXTENT节点,如果是,则其长度Wi,将Ti和Wi作为EXTENT树节点加入到集合RE中,进入S6;否则,直接进入S6;S6:令Ti=Ti+BLOCKSIZE,判断Ti是否小于Hi,如果是,返回S5;否则,令i=i+1,返回S2;S7:针对集合RE中的每一个元素Ei,解析其EXTENT树结构信息,并恢复出文件Fi。本发明不依赖于.JOURNAL日志信息,扫描并提取文件索引区域,通过文件特征识别,解析并恢复文件。
Description
技术领域
本发明涉及计算机数据恢复领域,尤其涉及一种基于索引的删除文件恢复方法、终端设备及存储介质。
背景技术
国内外现存的几款能够对Linux下EXT4文件系统删除文件进行恢复的软件,均采用基于日志的恢复:即通过EXT4文件系统的.JOURNAL日志文件搜索删除文件的INODE信息,并进行恢复。由于.JOURNAL日志文件频繁使用,则已删除的文件INODE日志信息容易被覆盖,导致删除的文件无法恢复。
发明内容
为了解决上述问题,本发明提出了一种基于索引的删除文件恢复方法、终端设备及存储介质。
具体方案如下:
一种基于索引的删除文件恢复方法,包括以下步骤:
S1:解析待恢复磁盘文件系统的所有文件信息,获取其未分配区域中各数据块的范围集合DU={S1,S2,S3……Sn},并获取当前文件系统的块大小BLOCKSIZE;设定i=1;
其中,Si为集合DU中的元素,表示数据块的地址范围,i={1,2,3……n},n表示未分配区域中包含的数据块的个数,元素Si的内容包括数据块起始偏移startoffset和数据块结束偏移endoffset;
S2:判断i>n是否成立,如果成立,进入S7;否则,进入S3;
S3:根据Si的内容,计算Li和Hi:
Li=Si.Startoffset-Si.Startoffset%BLOCKSIZE
Hi=Si.Endoffset-Si.Endoffset%BLOCKSIZE
其中,Li和Hi均表示地址,Si.Startoffset表示元素Si的数据块起始偏移,Si.Endoffset表示元素Si的数据块结束偏移,%表示求余数;
S4:读取Li和Hi之间的数据,设定地址Ti=Li;
S5:判断Ti是否为有效的EXTENT节点,如果是,则获取EXTENT节点的长度Wi,将Ti和Wi作为EXTENT树节点加入到集合RE中,进入S6;否则,直接进入S6;
其中,集合RE={E1,E2,E3……En}表示从文件系统的未分配区域中搜索出来的EXTENT树的集合,集合R中的元素Ei的内容包括数据块起始偏移startoffset和数据块长度length;
S6:令Ti=Ti+BLOCKSIZE,判断Ti是否小于Hi,如果是,返回S5;否则,令i=i+1,返回S2;
S7:针对集合RE中的每一个元素Ei,解析其EXTENT树结构信息,并恢复出文件Fi。
进一步的,步骤S7后还包括:S8:针对恢复出来的文件Fi,读取文件头部,根据文件头部签名特征识别文件类型。
一种基于索引的删除文件恢复终端设备,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例上述的方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现本发明实施例上述的方法的步骤。
本发明采用如上技术方案,提出一种基于索引的文件恢复方法,该方法不依赖于.JOURNAL日志信息,在磁盘数据区域扫描并提取文件索引区域,通过文件特征识别,解析并恢复被删除的文件。
附图说明
图1所示为本发明实施例一中EXT4文件系统的磁盘布局示意图。
图2所示为该实施例中EXTENT索引树的结构图。
图3所示为该实施例中方法的流程图。
具体实施方式
为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。
现结合附图和具体实施方式对本发明进一步说明。
实施例一:
EXT4文件系统被划分为一系列的块组,一般EXT4文件系统的磁盘布局如图1所示。
INODE是EXT系列文件系统非常核心的元数据,用于保存文件属性以及数据块信息。在EXT2/EXT3中采用块映射方式保存文件的块位图信息。在EXT4中,新引入EXTENT索引树结构来替代EXT2/EXT3中的数据块映射方式,一个EXTENT结构就可以映射多个数据块,减少元数据块的试用。EXTENT以属性结构进行管理,包含有EXTENT_HEADER、EXTENT_INDEX和EXTENT_LEAF三种节点,其中EXTENT_HEADER为整个索引树的根节点,EXTENT_INDEX为EXTENT树的内部节点,也成为索引节点,而EXTENT_LEAF叶子节点,为实际指向存储区域的节点,具体如图2所示。
EXTENT树的每个节点都以一个ext4_extent_header开头,记录整个EXTENT树节点的深度以及总节点数等参数信息。如果节点是内部节点(ext4_extent_header.eh_depth>0),ext4_extent_header后面紧跟的是ext4_extent_header.eh_entries个索引项structext4_EXTENT_INDEX,每个索引项指向该extent树中一个包含更多的节点的数据块。如果节点是叶子节点(ext4_extent_header.eh_depth==0),ext4_extent_header后面紧跟的是ext4_extent_header.eh_entries个struct ext4_extent数据结构。这些ext4_extent结构指向文件数据块。EXTENT树的根结点存储在inode.i_blocks中,可以存储文件的前4个extents而不需额外的元数据块。因此,当文件碎片化存储需要多个extents的时候,EXTENT实际保存在磁盘数据区域中。
EXT4文件删除前后主要数据变化为:(1).JOURNAL日志文件中记录当前删除的INODE的日志信息;(2)EXT4文件删除之后,对应文件INODE中文件大小重置为0,EXTENT树根节点位图清空。
因此,当EXT4文件被删除之后,INODE表中文件大小和文件的块位图信息都被清空之后,除非.JOURNAL日志中关于该文件的INODE信息存在,否则该文件就无法恢复。
但是,尽管.JOURNAL日志中INODE记录被覆盖了,数据区中该文件的索引也可能仍然还在,基于此点,该实施例中提出了一种基于索引的删除文件恢复方法,如图3所示,包括以下步骤:
S1:解析待恢复磁盘文件系统的所有文件信息,获取其未分配区域中各数据块的范围集合DU={S1,S2,S3……Sn},并获取当前文件系统的块大小BLOCKSIZE;设定i=1。
其中,Si为集合DU中的元素,表示数据块的地址范围,i={1,2,3……n},n表示未分配区域中包含的数据块的个数,元素Si的内容包括数据块起始偏移startoffset和数据块结束偏移endoffset。
S2:判断i>n是否成立,如果成立,进入S7;否则,进入S3。
S3:根据Si的内容,计算Li和Hi:
Li=Si.Startoffset-Si.Startoffset%BLOCKSIZE
Hi=Si.Endoffset-Si.Endoffset%BLOCKSIZE
其中,Li和Hi均表示地址,Si.Startoffset表示元素Si的数据块起始偏移,Si.Endoffset表示元素Si的数据块结束偏移,%表示求余数。
S4:读取Li和Hi之间的数据,设定地址Ti=Li。
S5:判断Ti是否为有效的EXTENT节点,如果是,则获取EXTENT节点的长度Wi,将Ti和Wi作为EXTENT树节点加入到集合RE中,进入S6;否则,直接进入S6。
其中,集合RE={E1,E2,E3……En}表示从文件系统的未分配区域中搜索出来的EXTENT树的集合,集合R中的元素Ei的内容包括数据块起始偏移startoffset和数据块长度length。
S6:令Ti=Ti+BLOCKSIZE,判断Ti是否小于Hi,如果是,返回S5;否则,令i=i+1,返回S2。
S7:针对集合RE中的每一个元素Ei,解析其EXTENT树结构信息,并恢复出文件Fi。
至此,基于索引的删除文件已经恢复完成,进一步的,为了识别恢复文件的文件类型,还包括:
S8:针对恢复出来的文件Fi,读取文件头部,根据文件头部签名特征识别文件类型。
本发明实施例一针对现有Linux下EXT4文件系统的恢复目前采用的通过.JOURNAL日志恢复和通过文件签名恢复中,.JOURNAL日志更新频繁,删除的INDODE记录容易被覆盖掉,签名恢复处理不了文件碎片情况,提出了一种基于索引的删除文件恢复方法,基于对数据区域索引的搜索与解析并结合文件签名特征的恢复,可以将碎片文件完整恢复,该方法可以作为传统方案的补充,从而更好的恢复出相应的被删除文件。
实施例二:
本发明还提供一种基于索引的删除文件恢复终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例一的上述方法实施例中的步骤。
进一步地,作为一个可执行方案,所述基于索引的删除文件恢复终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述基于索引的删除文件恢复终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,上述基于索引的删除文件恢复终端设备的组成结构仅仅是基于索引的删除文件恢复终端设备的示例,并不构成对基于索引的删除文件恢复终端设备的限定,可以包括比上述更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述基于索引的删除文件恢复终端设备还可以包括输入输出设备、网络接入设备、总线等,本发明实施例对此不做限定。
进一步地,作为一个可执行方案,所称处理器可以是中央处理单元(CentralProcessing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述基于索引的删除文件恢复终端设备的控制中心,利用各种接口和线路连接整个基于索引的删除文件恢复终端设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述基于索引的删除文件恢复终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据手机的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述方法的步骤。
所述基于索引的删除文件恢复终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)以及软件分发介质等。
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。
Claims (4)
1.一种基于索引的删除文件恢复方法,其特征在于,包括以下步骤:
S1:解析待恢复磁盘文件系统的所有文件信息,获取其未分配区域中各数据块的范围集合DU={S1,S2,S3……Sn},并获取当前文件系统的块大小BLOCKSIZE;设定i=1;
其中,Si为集合DU中的元素,表示数据块的地址范围,i={1,2,3……n},n表示未分配区域中包含的数据块的个数,元素Si的内容包括数据块起始偏移startoffset和数据块结束偏移endoffset;
S2:判断i>n是否成立,如果成立,进入S7;否则,进入S3;
S3:根据Si的内容,计算Li和Hi:
Li=Si.Startoffset-Si.Startoffset%BLOCKSIZE
Hi=Si.Endoffset-Si.Endoffset%BLOCKSIZE
其中,Li和Hi均表示地址,Si.Startoffset表示元素Si的数据块起始偏移,Si.Endoffset表示元素Si的数据块结束偏移,%表示求余数;
S4:读取Li和Hi 之间的数据,设定地址Ti=Li;
S5:判断Ti是否为有效的EXTENT节点,如果是,则获取EXTENT节点的长度Wi,将Ti和Wi作为EXTENT树节点加入到集合RE中,进入S6;否则,直接进入S6;
其中,集合RE={E1,E2,E3……En}表示从文件系统的未分配区域中搜索出来的EXTENT树的集合,集合RE 中的元素Ei的内容包括数据块起始偏移startoffset和数据块长度length;
S6:令Ti=Ti+BLOCKSIZE,判断Ti是否小于Hi,如果是,返回S5;否则,令i=i+1,返回S2;
S7:针对集合RE中的每一个元素Ei,解析其EXTENT树结构信息,并恢复出文件Fi。
2.根据权利要求1所述的基于索引的删除文件恢复方法,其特征在于:步骤S7后还包括:S8:针对恢复出来的文件Fi,读取文件头部,根据文件头部签名特征识别文件类型。
3.一种基于索引的删除文件恢复终端设备,其特征在于:包括处理器、存储器以及存储在所述存储器中并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1~2中任一所述方法的步骤。
4.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1~2中任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910834998.8A CN110569147B (zh) | 2019-09-05 | 2019-09-05 | 一种基于索引的删除文件恢复方法、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910834998.8A CN110569147B (zh) | 2019-09-05 | 2019-09-05 | 一种基于索引的删除文件恢复方法、终端设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110569147A CN110569147A (zh) | 2019-12-13 |
CN110569147B true CN110569147B (zh) | 2022-06-07 |
Family
ID=68777859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910834998.8A Active CN110569147B (zh) | 2019-09-05 | 2019-09-05 | 一种基于索引的删除文件恢复方法、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110569147B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112052118B (zh) * | 2020-08-20 | 2022-08-23 | 厦门市美亚柏科信息股份有限公司 | 一种GlobalFs删除文件恢复方法和系统 |
CN112380174B (zh) * | 2020-12-01 | 2022-07-15 | 厦门市美亚柏科信息股份有限公司 | 含删除文件的xfs文件系统解析方法、终端设备及存储介质 |
CN112463736B (zh) * | 2020-12-11 | 2022-05-20 | 厦门市美亚柏科信息股份有限公司 | 一种用于apfs文件的恢复方法和系统 |
CN112764973B (zh) * | 2021-01-28 | 2022-08-19 | 重庆紫光华山智安科技有限公司 | 数据容灾方法、装置、电子设备和可读存储介质 |
CN113553219B (zh) * | 2021-07-30 | 2022-12-02 | 成都易我科技开发有限责任公司 | 应用于网络存储设备的数据恢复方法及相关设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105068889A (zh) * | 2015-08-03 | 2015-11-18 | 四川效率源信息安全技术有限责任公司 | 恢复Ext3/Ext4中已彻底删除文件的方法 |
CN105830041A (zh) * | 2014-11-27 | 2016-08-03 | 华为技术有限公司 | 元数据的恢复方法及装置 |
US9542401B1 (en) * | 2012-03-30 | 2017-01-10 | EMC IP Holding Company LLC | Using extents of indirect blocks for file mapping of large files |
CN106844089A (zh) * | 2015-12-03 | 2017-06-13 | 阿里巴巴集团控股有限公司 | 一种用于恢复树形数据存储的方法与设备 |
CN108062358A (zh) * | 2017-11-28 | 2018-05-22 | 厦门市美亚柏科信息股份有限公司 | innodb引擎删除记录的离线恢复方法、存储介质 |
-
2019
- 2019-09-05 CN CN201910834998.8A patent/CN110569147B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9542401B1 (en) * | 2012-03-30 | 2017-01-10 | EMC IP Holding Company LLC | Using extents of indirect blocks for file mapping of large files |
CN105830041A (zh) * | 2014-11-27 | 2016-08-03 | 华为技术有限公司 | 元数据的恢复方法及装置 |
CN105068889A (zh) * | 2015-08-03 | 2015-11-18 | 四川效率源信息安全技术有限责任公司 | 恢复Ext3/Ext4中已彻底删除文件的方法 |
CN106844089A (zh) * | 2015-12-03 | 2017-06-13 | 阿里巴巴集团控股有限公司 | 一种用于恢复树形数据存储的方法与设备 |
CN108062358A (zh) * | 2017-11-28 | 2018-05-22 | 厦门市美亚柏科信息股份有限公司 | innodb引擎删除记录的离线恢复方法、存储介质 |
Non-Patent Citations (2)
Title |
---|
基于Ext4的手机数据恢复研究与应用;李明建;《中国优秀硕士学位论文全文数据库信息科技辑》;20180415;第I136-1821页 * |
基于ext4的文件系统删除文件后的恢复方法;chengshifei;《51CTO博客,https://blog.51cto.com/chenshifei/1855951》;20160923;第1-7页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110569147A (zh) | 2019-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110569147B (zh) | 一种基于索引的删除文件恢复方法、终端设备及存储介质 | |
CN109522290B (zh) | 一种HBase数据块恢复及数据记录提取方法 | |
US20130073527A1 (en) | Data storage dedeuplication systems and methods | |
CN109710455B (zh) | 基于fat32文件系统的删除文件恢复方法及系统 | |
CN111045857B (zh) | 数据备份和恢复的方法、电子设备和计算机可读存储介质 | |
CN106445476B (zh) | 一种代码变更信息确定方法、装置及电子设备 | |
CN109241003B (zh) | 文件管理方法和装置 | |
CN111125298A (zh) | 重建ntfs文件目录树的方法、设备及存储介质 | |
CN115114232A (zh) | 一种历史版本对象列举方法、装置及其介质 | |
US11042507B2 (en) | System and method of deletion of files and counteracting their restoration | |
EP3522040A1 (en) | Method and device for file storage | |
CN111176901B (zh) | 一种hdfs删除文件恢复方法、终端设备及存储介质 | |
CN105786653A (zh) | 基于fat32文件系统的文件恢复方法及其系统 | |
CN111309677B (zh) | 一种分布式文件系统的文件管理方法及装置 | |
KR101670473B1 (ko) | MySQL InnoDB 데이터베이스에서 삭제된 데이터를 복원하는 방법 | |
CN113806803B (zh) | 一种数据存储方法、系统、终端设备及存储介质 | |
CN112380171B (zh) | 一种yaffs文件系统oob识别方法、终端设备及存储介质 | |
CN111966845B (zh) | 图片管理方法、装置、存储节点及存储介质 | |
CN113448946A (zh) | 数据迁移方法及装置、电子设备 | |
CN112380174B (zh) | 含删除文件的xfs文件系统解析方法、终端设备及存储介质 | |
CN112905546A (zh) | 已删除文件的恢复方法、装置、设备及存储介质 | |
EP3674876A1 (en) | System and method of deletion of files and counteracting their restoration | |
CN112612648B (zh) | 一种SQL Server数据库恢复方法、终端设备及存储介质 | |
CN112527745B (zh) | 嵌入式文件系统多分区解析方法、终端设备及存储介质 | |
CN113342751B (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 |