CN108021472A - ReFS文件系统的格式化恢复方法及存储介质 - Google Patents

ReFS文件系统的格式化恢复方法及存储介质 Download PDF

Info

Publication number
CN108021472A
CN108021472A CN201711213041.9A CN201711213041A CN108021472A CN 108021472 A CN108021472 A CN 108021472A CN 201711213041 A CN201711213041 A CN 201711213041A CN 108021472 A CN108021472 A CN 108021472A
Authority
CN
China
Prior art keywords
information
fileinfo
sector
file
parent directory
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
Application number
CN201711213041.9A
Other languages
English (en)
Other versions
CN108021472B (zh
Inventor
沈长达
陈兴文
申强
吴少华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen Meiya Pico Information Co Ltd
Original Assignee
Xiamen Meiya Pico Information Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xiamen Meiya Pico Information Co Ltd filed Critical Xiamen Meiya Pico Information Co Ltd
Priority to CN201711213041.9A priority Critical patent/CN108021472B/zh
Publication of CN108021472A publication Critical patent/CN108021472A/zh
Application granted granted Critical
Publication of CN108021472B publication Critical patent/CN108021472B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, 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

本发明公开了一种ReFS文件系统的格式化恢复方法及存储介质,方法包括:遍历待恢复分区的扇区;若一扇区为一个块的起始扇区,则读取得到一个块;解析块的文件基础信息和/或文件夹基础信息,得到文件信息和/或文件夹信息,并加入到信息列表中,文件信息和文件夹信息包括对象编号、父目录编号、起始偏移和基础信息;遍历完扇区后,根据起始偏移,将信息列表中的文件信息和文件夹信息划分为多个分组;依次获取一分组,并根据对象编号和父目录编号,查找各文件信息和文件夹信息对应的父目录;遍历完分组后,根据查找到的父目录,构造目录结构。本发明不仅能够解决传统的特征恢复对于碎片恢复不理想的问题,而且能够保证目录结构的完整性。

Description

ReFS文件系统的格式化恢复方法及存储介质
技术领域
本发明涉及数据恢复技术领域,尤其涉及一种ReFS文件系统的格式化恢复方法及存储介质。
背景技术
随着Windows10操作系统的广泛使用,微软新型文件系统REFS的使用范围也越来越广。因此,研究该文件系统底下删除数据的恢复变得越来越有重要的意义。研究一个文件系统删除数据的恢复主要包括两个方面,一方面是针对文件删除时的恢复,另一方面是针对分区被格式化(或者分区被破坏时)的数据恢复。
ReFS(弹性文件系统)作为微软最新的文件系统,因其内部结构尚未公开国内外基本没有相关人员对此进行研究,只有少数的恢复软件(如:R-Studio)能支持相关的数据恢复。而且针对格式化恢复的尚无相关的资料信息。
针对ReFS文件系统被格式化后的数据恢复,现有很多恢复软件都是通过传统的特征恢复手段要进行数据恢复,该恢复方法不仅不能够处理碎片的文件而且恢复的文件名称、文件时间等信息也会丢失,同时还不能恢复出原来的目录结构。
发明内容
本发明所要解决的技术问题是:提供一种ReFS文件系统的格式化恢复方法及存储介质,可有效恢复出被格式化的数据,同时可恢复出原来的目录结构。
为了解决上述技术问题,本发明采用的技术方案为:一种ReFS文件系统的格式化恢复方法,包括:
遍历待恢复分区的扇区;
若一扇区为一个块的起始扇区,则以所述一扇区为起始扇区,读取得到一个块;
解析所述块的表中的文件基础信息和/或文件夹基础信息,得到对应的文件信息和/或文件夹信息,并将所述文件信息和/或文件夹信息加入到信息列表中,所述文件信息和文件夹信息包括对象编号、父目录编号、起始偏移和基础信息;
遍历完待恢复分区的扇区后,根据起始偏移,将所述信息列表中的文件信息和文件夹信息划分为多个分组;
依次获取一分组,并根据对象编号和父目录编号,在所述一分组中查找所述一分组的各文件信息和文件夹信息对应的父目录;
遍历完所述多个分组后,根据查找到的父目录,构造目录结构。
本发明还涉及一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上所述的步骤。
本发明的有益效果在于:通过遍历获取起始扇区,并根据起始扇区获取块,然后将块中的文件/文件夹信息提取出来,根据起始偏移对这些文件/文件夹信息进行分组,并分别在组内查找相应的父目录,最后构造出目录结构。本发明不仅能够解决传统的特征恢复对于碎片恢复不理想的问题,而且能够保证目录结构的完整性。为由于误格式化或者恶意格式化而导致ReFS数据的丢失提供了解决方案,当ReFS文件系统被格式化,只要文件记录不被覆盖可100%地恢复格式前所有文件数据。
附图说明
图1为本发明一种ReFS文件系统的格式化恢复方法的流程图;
图2为本发明实施例一的方法流程图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。
本发明最关键的构思在于:计算出文件/文件夹信息的起始偏移,通过起始偏移进行分组并在组内查找对应的父目录。
请参阅图1,一种ReFS文件系统的格式化恢复方法,包括:
遍历待恢复分区的扇区;
若一扇区为一个块的起始扇区,则以所述一扇区为起始扇区,读取得到一个块;
解析所述块的表中的文件基础信息和/或文件夹基础信息,得到对应的文件信息和/或文件夹信息,并将所述文件信息和/或文件夹信息加入到信息列表中,所述文件信息和文件夹信息包括对象编号、父目录编号、起始偏移和基础信息;
遍历完待恢复分区的扇区后,根据起始偏移,将所述信息列表中的文件信息和文件夹信息划分为多个分组;
依次获取一分组,并根据对象编号和父目录编号,在所述一分组中查找所述一分组的各文件信息和文件夹信息对应的父目录;
遍历完所述多个分组后,根据查找到的父目录,构造目录结构。
从上述描述可知,本发明的有益效果在于:仅能够解决传统的特征恢复对于碎片恢复不理想的问题,而且能够保证目录结构的完整性。
进一步地,所述“若一扇区为一个块的起始扇区,则根据所述一扇区,读取得到一个块”具体为:
若一扇区第33至40个字节的值为1,第49至52个字节的值处于预设的范围(0-16384),且第54至55个字节的值不为0也不为1,则判定所述一扇区为一个块的起始扇区;
以所述一扇区为起始扇区,连读读取32个扇区,得到一个块。
由上述描述可知,由于块的起始扇区一般包括了块头数据和表头数据,因此可根据块头特征和表头特征来判断一扇区是否为一个块的起始扇区。
进一步地,所述“解析所述块的表中的文件基础信息和/或文件夹基础信息,得到对应的文件信息和/或文件夹信息,并将所述文件信息和/或文件夹信息加入到信息列表中,所述文件信息和文件夹信息包括对象编号、父目录编号、起始偏移和基础信息”具体为:
解析所述块的表中的表项,得到文件基础信息和/或文件夹基础信息,并将所述文件基础信息作为文件信息的基础信息,将所述文件夹基础信息作为文件夹信息的基础信息;
将预设值作为文件信息的对象编号,将文件夹基础信息中的文件夹编号作为文件夹信息的对象编号;
将所述块的块标识位的值作为所述文件信息和/或文件夹信息的父目录编号;
解析待恢复分区的引导扇区,获取所述块的扇区大小;
根据第一公式计算得到所述文件信息和/或文件夹信息的起始偏移,所述第一公式为所述VOLUMSTARTOFFSET为起始偏移,所述SECTORNUMBER为所述块的起始扇区的扇区号,所述BLOCKNUMBER为所述块的块号,所述SECTORSIZE为所述块的扇区大小;
将所述文件信息和/或文件夹信息加入到信息列表中。
由上述描述可知,根据文件/文件夹基础信息解析得到对象编号、父目录编号和起始偏移,后续可根据这些参数进行分组和目录构造。
进一步地,所述“遍历完待恢复分区的扇区后”之后,进一步包括:
对所述信息列表中的文件信息和文件夹信息进行去重。
进一步地,所述“对所述信息列表中的文件信息和文件夹信息进行去重”具体为:
若所述信息列表中的第一信息和第二信息同为文件信息或同为文件夹信息,且对象编号、父目录编号、起始偏移以及基础信息中的名称均相同,同时当第一信息和第二信息同为文件信息时,基础信息中的数据索引相同,则判定所述第一信息和第二信息相同;
判断第一信息的基础信息中的时间是否小于第二信息的基础信息中的时间;
若是,则删除所述第一信息;
若否,则删除所述第二信息。
由上述描述可知,对信息列表进行去重,提高了后续信息处理的效率,也可防止后续恢复出的目录结构出现重复的目录信息。
进一步地,所述“根据对象编号和父目录编号,在所述一分组中查找所述一分组的各文件信息和文件夹信息对应的父目录”之后,进一步包括:
若所述一分组中的一文件信息或文件夹信息查找不到对应的父目录,则将根目录作为所述一文件信息或文件夹信息的父目录。
进一步地,所述“根据对象编号和父目录编号,在所述一分组中查找所述一分组的各文件信息和文件夹信息对应的父目录;若所述一分组中的一文件信息或文件夹信息查找不到对应的父目录,则将根目录作为所述一文件信息或文件夹信息的父目录”具体为:
若所述一分组中存在一文件夹信息,所述一文件夹信息的对象编号等于另一文件信息或文件夹信息的父目录编号,则将所述一文件夹信息作为所述另一文件信息或文件夹信息的父目录;
若不存在所述一文件夹信息,则将待恢复分区的根目录作为所述另一文件信息或文件夹信息的父目录。
进一步地,所述“依次获取一分组,并根据对象编号和父目录编号,在所述一分组中查找所述一分组的各文件信息和文件夹信息对应的父目录”之后,进一步包括:
将所述一分组中各文件信息的基础信息中的数据索引的偏移加上所述一分组对应的起始偏移。
由上述描述可知,文件中记录的数据索引偏移是相对分区的偏移,因此要加上分区的起始位置。
本发明还提出一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上所述的步骤。
实施例一
请参照图2,本发明的实施例一为:一种ReFS文件系统的格式化恢复方法,以下是对ReFS文件系统的简要介绍。
在ReFS文件系统中,以块为最小的分配单元。每个块都有对应的块编号且编号从0开始,每个块的大小为32个扇区。每个块都有一个块头,包含了BLOCKNUMBER(块号)、BLOCKTYPE(块类型)以及BLOCKFLAG(块标识)等信息。其中,块头的大小为48个字节,第33-40个字节的8个字节表示块类型(若从0开始,则为第32-39个字节)。本实施例所指的字节位置均从1开始为例进行说明。
紧接在块头之后是一系列的表,这些表可以存储文件/文件夹信息也可以存储块的索引信息。每个表又由表头和若干个表项组成,每个表中又可以嵌入子表。表头的结构里面主要包含了:TABLSESIZE(表的大小)、SUBTABLEFLAG(子表标志)等信息。
表项中如果存储的是文件信息,则包含了文件名称、文件时间(创建、修改和访问时间)、文件属性、文件大小以及数据索引等信息(以下将这些信息称作文件基础信息),其中,数据索引包括了偏移和长度;如果存储的是文件夹信息,则包含了文件名称、文件夹ID、文件时间(创建、修改和访问时间)以及文件属性等信息(以下将这些信息称作文件夹基础信息)。
ReFS文件系统在组织目录结构的时候就是通过文件夹的ID以及文件父目录ID进行相关联,从而构造出整个目录树结构。
本方法主要包括两个部分,分别为结构搜索以及分组与目录构造。对于结构搜索,主要通过块头和表头的结构特征,搜索格式化后分区中符合结构特征的数据块信息,并解析数据块获取相应的文件基础信息和文件夹基础信息。对于分组与目录构造,主要对第一部分的搜索结果进行处理进一步实现文件的恢复。
如图2所示,本方法包括如下步骤:
S101:初始化CURRENTOFFSET为0,CURRENTOFFSET代表一个磁盘的偏移扇区数。
S102:判断CURRENTOFFSET是否大于或者等于待恢复分区的最大扇区号,若否,则执行步骤S103,若是,则执行步骤S201。
S103:读取第CURRENTOFFSET个扇区的数据,判断该扇区是否为一个块的起始扇区,若否,则执行步骤S104,若是,则执行步骤S105。
由上述介绍可知,一个块的最开始的位置为块头,表紧接在块头之后,另外,一个块的第33-40个字节表示块类型BLOCKTYPE,第49-52个字节表示表大小TABLSESIZE,第55-56个字节表示子表标志SUBTABLEFLAG。
而在判断一个块是否为合法的块时,需要同时满足以下条件:
(1)BLOCKTYPE等于1;
(2)TABLSESIZE大于0并且小于16384;
(3)SUBTABLEFLAG不等于0且不等于1。
因此,在进行该步骤的判断时,若该扇区的第33-40个字节的值为1,第49-52个字节的值大于0并且小于16384,第54-55个字节的值不为0也不为1,则判定所述一扇区为一个块的起始扇区。
S104:令CURRENTOFFSET=CURRENTOFFSET+1,返回执行步骤S102。
S105:以第CURRENTOFFSET个扇区为起始扇区,连读读取32个扇区,得到一个块。例如,假设当前是第5个扇区,则从第5个扇区开始连续读取32个扇区,即读取第5-36个扇区作为一个块数据。
S106:解析所述块的表中的文件基础信息和/或文件夹基础信息,得到对应的文件信息和/或文件夹信息,并将所述文件信息和/或文件夹信息加入到信息列表中,所述文件信息和文件夹信息包括对象编号、父目录编号、起始偏移和基础信息。
由上述介绍可知,可以从块的表项中直接获取文件/文件夹基础信息,则直接可将文件基础信息作为文件信息的基础信息,将所述文件夹基础信息作为文件夹信息的基础信息;然后再根据文件/文件夹基础信息,得到对象编号、父目录编号和起始偏移。
具体地,文件信息的对象编号固定为-1,文件夹信息的对象编号为文件夹基础信息中的文件夹ID;
文件信息和文件夹信息的父目录编号为所述块的块标识位的值;块标识根据不同的块类型,具有不同的含义,当块存储的是文件/文件夹的基础信息时,块标识即为文件/文件夹的父目录ID;
对于起始偏移,则根据下述的第一公式计算得到,其中,VOLUMSTARTOFFSET为起始偏移,SECTORNUMBER为所述块的起始扇区的扇区号,BLOCKNUMBER为所述块的块号,SECTORSIZE为所述块的扇区大小,SECTORSIZE一般为512字节,可以通过解析待恢复分区的引导扇区得到。
第一公式:
S107:令CURRENTOFFSET=CURRENTOFFSET+(32×512)/SECTORSIZE,执行步骤S102。其中,SECTORSIZE为所述块的扇区大小。
S201:对所述信息列表中的文件信息和文件夹信息进行去重;即将信息列表中相同的元素进行去重,保留修改时间较晚的元素。
假设F={f1,f2f3,....,fn}表示的是一个信息列表,fi为文件信息或文件夹信息,列表中的每个元素fi包含四个属性:OBJID(对象编号)、PARENTID(父目录编号)、VOLUMSTARTOFFSET(起始偏移)以及FILEBASEINFO(基础信息)。
具体地,当fi和fj同时满足以下六个条件时,则判断fi和fj相同,条件如下:
(1)OBJIDi等于OBJIDj
(2)PARENTIDi等于PARENTIDj
(3)VOLUMSTARTOFFSETi等于VOLUMSTARTOFFSETj
(4)fi和fj表示的类型相同,同为文件信息或者同为文件夹信息;
(5)fi和fj两者的基础信息中的名称相同;
(6)若fi和fj都为文件信息,则要求两者的基础信息中的数据索引要相同。
因此,若所述信息列表中的第一信息和第二信息同为文件信息或同为文件夹信息,且对象编号、父目录编号、起始偏移以及基础信息中的名称均相同,同时,当第一信息和第二信息同为文件信息时,基础信息中的数据索引相同,则判定所述第一信息和第二信息相同;然后判断第一信息的基础信息中的时间是否小于第二信息的基础信息中的时间;若是,则删除所述第一信息,否则删除所述第二信息。
S202:根据起始偏移,将所述信息列表中的文件信息和文件夹信息划分为多个分组。
具体地,将信息列表中具有相同VOLUMSTARTOFFSET的元素归为一组,假设分为了m组,即F={F1,F2,F3,....,Fm},其中每个Fi是一个信息列表,列表中的每个元素具有相同的VOLUMSTARTOFFET。
S203:初始化k为1,k代表当前遍历到的分组号。
S204:判断k是否大于m,若是,则执行步骤S208,若否,则执行步骤S205。
S205:获取第k组,即Fk,在该组中根据对象编号和父目录编号,查找得到各文件信息和文件夹信息对应的父目录,若查找不到,则将根目录作为对应的父目录。
具体地,针对Fk中的每一个元素fki,若存在fkj的对象编号OBJIDkj等于fki的父目录编号PARENTIDki,则判定fkj为fki的父目录,若不存在,则将待恢复分区的根目录作为fki的父目录。
S206:分别将第k组中的文件信息的基础信息中的数据索引中的偏移加上该组对应的起始偏移。
S207:令k=k+1,执行步骤S204。
S208:根据查找到的父目录,构造目录结构。即通过对象编号以及父目录编号进行相关联,从而构造出整个目录树结构。
本实施例在深入研究ReFS文件系统结构的基础上,提出了一种ReFS文件系统被格式化后的恢复方法,该方法能够在文件记录未被覆盖的情况100%地恢复处格式化前的数据,并且保证目录结构的完整性。
实施例二
本实施例是对应上述实施例的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现以下步骤:
遍历待恢复分区的扇区;
若一扇区为一个块的起始扇区,则以所述一扇区为起始扇区,读取得到一个块;
解析所述块的表中的文件基础信息和/或文件夹基础信息,得到对应的文件信息和/或文件夹信息,并将所述文件信息和/或文件夹信息加入到信息列表中,所述文件信息和文件夹信息包括对象编号、父目录编号、起始偏移和基础信息;
遍历完待恢复分区的扇区后,根据起始偏移,将所述信息列表中的文件信息和文件夹信息划分为多个分组;
依次获取一分组,并根据对象编号和父目录编号,在所述一分组中查找所述一分组的各文件信息和文件夹信息对应的父目录;
遍历完所述多个分组后,根据查找到的父目录,构造目录结构。
进一步地,所述“若一扇区为一个块的起始扇区,则根据所述一扇区,读取得到一个块”具体为:
若一扇区第33至40个字节的值为1,第49至52个字节的值处于预设的范围(0-16384),且第54至55个字节的值不为0也不为1,则判定所述一扇区为一个块的起始扇区;
以所述一扇区为起始扇区,连读读取32个扇区,得到一个块。
进一步地,所述“解析所述块的表中的文件基础信息和/或文件夹基础信息,得到对应的文件信息和/或文件夹信息,并将所述文件信息和/或文件夹信息加入到信息列表中,所述文件信息和文件夹信息包括对象编号、父目录编号、起始偏移和基础信息”具体为:
解析所述块的表中的表项,得到文件基础信息和/或文件夹基础信息,并将所述文件基础信息作为文件信息的基础信息,将所述文件夹基础信息作为文件夹信息的基础信息;
将预设值作为文件信息的对象编号,将文件夹基础信息中的文件夹编号作为文件夹信息的对象编号;
将所述块的块标识位的值作为所述文件信息和/或文件夹信息的父目录编号;
解析待恢复分区的引导扇区,获取所述块的扇区大小;
根据第一公式计算得到所述文件信息和/或文件夹信息的起始偏移,所述第一公式为所述VOLUMSTARTOFFSET为起始偏移,所述SECTORNUMBER为所述块的起始扇区的扇区号,所述BLOCKNUMBER为所述块的块号,所述SECTORSIZE为所述块的扇区大小;
将所述文件信息和/或文件夹信息加入到信息列表中。
进一步地,所述“遍历完待恢复分区的扇区后”之后,进一步包括:
对所述信息列表中的文件信息和文件夹信息进行去重。
进一步地,所述“对所述信息列表中的文件信息和文件夹信息进行去重”具体为:
若所述信息列表中的第一信息和第二信息同为文件信息或同为文件夹信息,且对象编号、父目录编号、起始偏移以及基础信息中的名称均相同,同时当第一信息和第二信息同为文件信息时,基础信息中的数据索引相同,则判定所述第一信息和第二信息相同;
判断第一信息的基础信息中的时间是否小于第二信息的基础信息中的时间;
若是,则删除所述第一信息;
若否,则删除所述第二信息。
进一步地,所述“根据对象编号和父目录编号,在所述一分组中查找所述一分组的各文件信息和文件夹信息对应的父目录”之后,进一步包括:
若所述一分组中的一文件信息或文件夹信息查找不到对应的父目录,则将根目录作为所述一文件信息或文件夹信息的父目录。
进一步地,所述“根据对象编号和父目录编号,在所述一分组中查找所述一分组的各文件信息和文件夹信息对应的父目录;若所述一分组中的一文件信息或文件夹信息查找不到对应的父目录,则将根目录作为所述一文件信息或文件夹信息的父目录”具体为:
若所述一分组中存在一文件夹信息,所述一文件夹信息的对象编号等于另一文件信息或文件夹信息的父目录编号,则将所述一文件夹信息作为所述另一文件信息或文件夹信息的父目录;
若不存在所述一文件夹信息,则将待恢复分区的根目录作为所述另一文件信息或文件夹信息的父目录。
进一步地,所述“依次获取一分组,并根据对象编号和父目录编号,在所述一分组中查找所述一分组的各文件信息和文件夹信息对应的父目录”之后,进一步包括:
将所述一分组中各文件信息的基础信息中的数据索引的偏移加上所述一分组对应的起始偏移。
综上所述,本发明提供的一种ReFS文件系统的格式化恢复方法及存储介质,通过遍历获取起始扇区,并根据起始扇区获取块,然后将块中的文件/文件夹信息提取出来,根据起始偏移对这些文件/文件夹信息进行分组,并分别在组内查找相应的父目录,若查找不到则将根目录作为父目录,最后构造出目录结构。本发明不仅能够解决传统的特征恢复对于碎片恢复不理想的问题,而且能够保证目录结构的完整性。为由于误格式化或者恶意格式化而导致ReFS数据的丢失提供了解决方案,当ReFS文件系统被格式化,只要文件记录不被覆盖可100%地恢复格式前所有文件数据。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (9)

1.一种ReFS文件系统的格式化恢复方法,其特征在于,包括:
遍历待恢复分区的扇区;
若一扇区为一个块的起始扇区,则以所述一扇区为起始扇区,读取得到一个块;
解析所述块的表中的文件基础信息和/或文件夹基础信息,得到对应的文件信息和/或文件夹信息,并将所述文件信息和/或文件夹信息加入到信息列表中,所述文件信息和文件夹信息包括对象编号、父目录编号、起始偏移和基础信息;
遍历完待恢复分区的扇区后,根据起始偏移,将所述信息列表中的文件信息和文件夹信息划分为多个分组;
依次获取一分组,并根据对象编号和父目录编号,在所述一分组中查找所述一分组的各文件信息和文件夹信息对应的父目录;
遍历完所述多个分组后,根据查找到的父目录,构造目录结构。
2.根据权利要求1所述的ReFS文件系统的格式化恢复方法,其特征在于,所述“若一扇区为一个块的起始扇区,则根据所述一扇区,读取得到一个块”具体为:
若一扇区第33至40个字节的值为1,第49至52个字节的值处于预设的范围(0-16384),且第54至55个字节的值不为0也不为1,则判定所述一扇区为一个块的起始扇区;
以所述一扇区为起始扇区,连读读取32个扇区,得到一个块。
3.根据权利要求1所述的ReFS文件系统的格式化恢复方法,其特征在于,所述“解析所述块的表中的文件基础信息和/或文件夹基础信息,得到对应的文件信息和/或文件夹信息,并将所述文件信息和/或文件夹信息加入到信息列表中,所述文件信息和文件夹信息包括对象编号、父目录编号、起始偏移和基础信息”具体为:
解析所述块的表中的表项,得到文件基础信息和/或文件夹基础信息,并将所述文件基础信息作为文件信息的基础信息,将所述文件夹基础信息作为文件夹信息的基础信息;
将预设值作为文件信息的对象编号,将文件夹基础信息中的文件夹编号作为文件夹信息的对象编号;
将所述块的块标识位的值作为所述文件信息和/或文件夹信息的父目录编号;
解析待恢复分区的引导扇区,获取所述块的扇区大小;
根据第一公式计算得到所述文件信息和/或文件夹信息的起始偏移,所述第一公式为所述VOLUMSTARTOFFSET为起始偏移,所述SECTORNUMBER为所述块的起始扇区的扇区号,所述BLOCKNUMBER为所述块的块号,所述SECTORSIZE为所述块的扇区大小;
将所述文件信息和/或文件夹信息加入到信息列表中。
4.根据权利要求1所述的ReFS文件系统的格式化恢复方法,其特征在于,所述“遍历完待恢复分区的扇区后”之后,进一步包括:
对所述信息列表中的文件信息和文件夹信息进行去重。
5.根据权利要求4所述的ReFS文件系统的格式化恢复方法,其特征在于,所述“对所述信息列表中的文件信息和文件夹信息进行去重”具体为:
若所述信息列表中的第一信息和第二信息同为文件信息或同为文件夹信息,且对象编号、父目录编号、起始偏移以及基础信息中的名称均相同,同时当第一信息和第二信息同为文件信息时,基础信息中的数据索引相同,则判定所述第一信息和第二信息相同;
判断第一信息的基础信息中的时间是否小于第二信息的基础信息中的时间;
若是,则删除所述第一信息;
若否,则删除所述第二信息。
6.根据权利要求1所述的ReFS文件系统的格式化恢复方法,其特征在于,所述“根据对象编号和父目录编号,在所述一分组中查找所述一分组的各文件信息和文件夹信息对应的父目录”之后,进一步包括:
若所述一分组中的一文件信息或文件夹信息查找不到对应的父目录,则将根目录作为所述一文件信息或文件夹信息的父目录。
7.根据权利要求6所述的ReFS文件系统的格式化恢复方法,其特征在于,所述“根据对象编号和父目录编号,在所述一分组中查找所述一分组的各文件信息和文件夹信息对应的父目录;若所述一分组中的一文件信息或文件夹信息查找不到对应的父目录,则将根目录作为所述一文件信息或文件夹信息的父目录”具体为:
若所述一分组中存在一文件夹信息,所述一文件夹信息的对象编号等于另一文件信息或文件夹信息的父目录编号,则将所述一文件夹信息作为所述另一文件信息或文件夹信息的父目录;
若不存在所述一文件夹信息,则将待恢复分区的根目录作为所述另一文件信息或文件夹信息的父目录。
8.根据权利要求1所述的ReFS文件系统的格式化恢复方法,其特征在于,所述“依次获取一分组,并根据对象编号和父目录编号,在所述一分组中查找所述一分组的各文件信息和文件夹信息对应的父目录”之后,进一步包括:
将所述一分组中各文件信息的基础信息中的数据索引的偏移加上所述一分组对应的起始偏移。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-8任一项所述的步骤。
CN201711213041.9A 2017-11-28 2017-11-28 ReFS文件系统的格式化恢复方法及存储介质 Active CN108021472B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711213041.9A CN108021472B (zh) 2017-11-28 2017-11-28 ReFS文件系统的格式化恢复方法及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711213041.9A CN108021472B (zh) 2017-11-28 2017-11-28 ReFS文件系统的格式化恢复方法及存储介质

Publications (2)

Publication Number Publication Date
CN108021472A true CN108021472A (zh) 2018-05-11
CN108021472B CN108021472B (zh) 2021-02-02

Family

ID=62077334

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711213041.9A Active CN108021472B (zh) 2017-11-28 2017-11-28 ReFS文件系统的格式化恢复方法及存储介质

Country Status (1)

Country Link
CN (1) CN108021472B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110781160A (zh) * 2019-10-15 2020-02-11 北亚企安科技(北京)有限公司 基于VMware虚拟化文件系统损坏的数据恢复方法
US11799961B2 (en) 2020-06-12 2023-10-24 Beijing Baidu Netcom Science And Technology Co., Ltd. File directory traversal method, apparatus, device, and medium

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020107877A1 (en) * 1995-10-23 2002-08-08 Douglas L. Whiting System for backing up files from disk volumes on multiple nodes of a computer network
US20020191499A1 (en) * 1998-02-12 2002-12-19 Kabushiki Kaisha Toshiba Multi-body purpose informantion processing appartatus
CN1904845A (zh) * 2006-08-01 2007-01-31 珠海金山软件股份有限公司 恢复fat32文件系统中已删除文件的方法
CN1945571A (zh) * 2006-08-16 2007-04-11 珠海金山软件股份有限公司 Fat卷中重建目录结构和恢复数据的方法
CN1959649A (zh) * 2006-09-19 2007-05-09 珠海金山软件股份有限公司 Ntfs卷中重建目录结构和恢复数据的方法
US20080104107A1 (en) * 2006-10-31 2008-05-01 Rebit, Inc. System for automatically shadowing data and file directory structures for a plurality of network-connected computers using a network-attached memory
CN101563686A (zh) * 2006-12-07 2009-10-21 国际商业机器公司 在目录服务中的动态拓扑改变的自动发现和重新配置
US20090271581A1 (en) * 2008-04-24 2009-10-29 Echostar Technologies Corporation Systems and methods for reliably managing files in a computer system
US20120254140A1 (en) * 2011-03-31 2012-10-04 Haripriya Srinivasaraghavan Distributed, unified file system operations
US20130262390A1 (en) * 2011-09-30 2013-10-03 Commvault Systems, Inc. Migration of existing computing systems to cloud computing sites or virtual machines
US20130294490A1 (en) * 2012-05-02 2013-11-07 Rambus Inc. Receiver clock test circuitry and related methods and apparatuses
CN103744961A (zh) * 2014-01-06 2014-04-23 清华大学 用可重构的文件系统目录树提高非易失性存储寿命的方法
CN103761256A (zh) * 2013-12-30 2014-04-30 中国科学院计算技术研究所 一种远程目录分支点维护系统及其方法
CN104199888A (zh) * 2014-08-25 2014-12-10 厦门市美亚柏科信息股份有限公司 弹性文件系统的数据恢复方法和装置
CN106021031A (zh) * 2016-05-30 2016-10-12 厦门市美亚柏科信息股份有限公司 一种btrfs文件系统的删除数据恢复方法和装置
CN106202367A (zh) * 2016-07-07 2016-12-07 腾讯科技(深圳)有限公司 一种对象信息的处理方法及装置

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020107877A1 (en) * 1995-10-23 2002-08-08 Douglas L. Whiting System for backing up files from disk volumes on multiple nodes of a computer network
US20020191499A1 (en) * 1998-02-12 2002-12-19 Kabushiki Kaisha Toshiba Multi-body purpose informantion processing appartatus
CN1904845A (zh) * 2006-08-01 2007-01-31 珠海金山软件股份有限公司 恢复fat32文件系统中已删除文件的方法
CN1945571A (zh) * 2006-08-16 2007-04-11 珠海金山软件股份有限公司 Fat卷中重建目录结构和恢复数据的方法
CN1959649A (zh) * 2006-09-19 2007-05-09 珠海金山软件股份有限公司 Ntfs卷中重建目录结构和恢复数据的方法
US20080104107A1 (en) * 2006-10-31 2008-05-01 Rebit, Inc. System for automatically shadowing data and file directory structures for a plurality of network-connected computers using a network-attached memory
CN101563686A (zh) * 2006-12-07 2009-10-21 国际商业机器公司 在目录服务中的动态拓扑改变的自动发现和重新配置
US20090271581A1 (en) * 2008-04-24 2009-10-29 Echostar Technologies Corporation Systems and methods for reliably managing files in a computer system
US20120254140A1 (en) * 2011-03-31 2012-10-04 Haripriya Srinivasaraghavan Distributed, unified file system operations
US20130262390A1 (en) * 2011-09-30 2013-10-03 Commvault Systems, Inc. Migration of existing computing systems to cloud computing sites or virtual machines
US20130294490A1 (en) * 2012-05-02 2013-11-07 Rambus Inc. Receiver clock test circuitry and related methods and apparatuses
CN103761256A (zh) * 2013-12-30 2014-04-30 中国科学院计算技术研究所 一种远程目录分支点维护系统及其方法
CN103744961A (zh) * 2014-01-06 2014-04-23 清华大学 用可重构的文件系统目录树提高非易失性存储寿命的方法
CN104199888A (zh) * 2014-08-25 2014-12-10 厦门市美亚柏科信息股份有限公司 弹性文件系统的数据恢复方法和装置
CN106021031A (zh) * 2016-05-30 2016-10-12 厦门市美亚柏科信息股份有限公司 一种btrfs文件系统的删除数据恢复方法和装置
CN106202367A (zh) * 2016-07-07 2016-12-07 腾讯科技(深圳)有限公司 一种对象信息的处理方法及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
林城;谢可;傅俊博;沈长达: "ReFS文件系统的解析技术与应用", 《计算机科学》 *
沈长达;吴少华;钱镜洁;何广高: "ReiserFS删除文件的恢复技术研究", 《信息网络安全》 *
沈长达;林艺滨;钱镜洁: "HFS+删除文件恢复技术", 《信息网络安全》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110781160A (zh) * 2019-10-15 2020-02-11 北亚企安科技(北京)有限公司 基于VMware虚拟化文件系统损坏的数据恢复方法
CN110781160B (zh) * 2019-10-15 2021-07-27 北亚企安科技(北京)有限公司 基于VMware虚拟化文件系统损坏的数据恢复方法
US11799961B2 (en) 2020-06-12 2023-10-24 Beijing Baidu Netcom Science And Technology Co., Ltd. File directory traversal method, apparatus, device, and medium

Also Published As

Publication number Publication date
CN108021472B (zh) 2021-02-02

Similar Documents

Publication Publication Date Title
US7934064B1 (en) System and method for consolidation of backups
CN103699585B (zh) 文件的元数据存储以及文件恢复的方法、装置和系统
JP2005302038A (ja) Bツリー中の連続キーの名前を変更する方法およびシステム
CN104199888B (zh) 弹性文件系统的数据恢复方法和装置
CN106021031B (zh) 一种btrfs文件系统的删除数据恢复方法和装置
CN105009067A (zh) 管理对存储数据单元的操作
CN109710455A (zh) 基于fat32文件系统的删除文件恢复方法及系统
CN107958079A (zh) 聚合文件删除方法、系统、装置及可读存储介质
CN108009049B (zh) Myisam存储引擎删除记录离线恢复方法、存储介质
CN105653731A (zh) 一种jfs文件系统的删除数据恢复方法
CN111125298A (zh) 重建ntfs文件目录树的方法、设备及存储介质
CN110569147A (zh) 一种基于索引的删除文件恢复方法、终端设备及存储介质
CN112115002A (zh) 从损坏或不可信机械硬盘恢复文件的方法及装置
CN110297781B (zh) 一种基于写时复制来恢复apfs中被删除数据的方法
CN111400101B (zh) 一种jfs2文件系统数据删除时的数据恢复方法及系统
CN108021472A (zh) ReFS文件系统的格式化恢复方法及存储介质
CN110413711A (zh) 一种差异数据获取方法及其存储介质
CN104750729A (zh) 一种基于日志文件的数据管理方法及数据管理系统
CN105786653B (zh) 基于fat32文件系统的文件恢复方法及其系统
CN106372080A (zh) 一种文件清除方法、装置和系统
CN107368545A (zh) 一种基于MerkleTree变形算法的去重方法及装置
CN103246718B (zh) 文件访问方法、装置和设备
CN112905546A (zh) 已删除文件的恢复方法、装置、设备及存储介质
CN110362424A (zh) 一种基于连续数据保护的快速恢复方法和系统
CN112380174B (zh) 含删除文件的xfs文件系统解析方法、终端设备及存储介质

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