CN106155845B - 一种基于xfs文件系统数据的重组恢复方法 - Google Patents
一种基于xfs文件系统数据的重组恢复方法 Download PDFInfo
- Publication number
- CN106155845B CN106155845B CN201610625795.4A CN201610625795A CN106155845B CN 106155845 B CN106155845 B CN 106155845B CN 201610625795 A CN201610625795 A CN 201610625795A CN 106155845 B CN106155845 B CN 106155845B
- Authority
- CN
- China
- Prior art keywords
- linked list
- file
- recorded
- file linked
- block
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于XFS文件系统数据的重组恢复方法,包括以下步骤:S1:读取磁盘超级块所在扇区信息并解析;S2:获取文件链表大小,将整个硬盘的数据按照块大小均分;S3:匹配块是否符合文件链表的结构特征;S4:解析文件链接的结构;S5:读取记录项对应块地址的数据内容;S6:拼接项中记录的块地址的数据;S7:继续向下搜索文件链表结构并解析目标直至遍历整个硬盘扇区。本发明的有益效果如下:根据XFS文件存储结构找到中的删除数据;提取XFS文件系统中删除的数据,并进行数据拼接重组;防止重要数据丢失。
Description
技术领域
本发明涉及信息安全技术领域,特别涉及一种基于XFS文件系统数据的重组恢复方法。
背景技术
XFS文件系统是SGI开发的高级日志文件系统,XFS极具伸缩性,非常健壮。目前XFS文件系统逐渐的在一些服务器、PC、嵌入式监控视频、手机上使用并进行数据的存储,XFS不同于任何一种Windows上的文件系统,这导致传统的数据恢复技术无法应用到使用XFS的设备上。目前,在针对XFS文件系统中删除后的数据文件无法恢复,而且恢复出来的文件不能进行拼接重组。
发明内容
本发明针对现有技术的缺陷,提供了一种基于XFS文件系统数据的重组恢复方法,能有效的解决上述现有技术存在的问题。
一种基于XFS文件系统数据的重组恢复方法,包括以下步骤:
S1:加载磁盘,并读取磁盘超级块所在扇区信息并解析,需要解析的内容包括块大小、块总数、AG所包含的块数、每一个块在AG中的相对偏移值;具体地,在相对于超级块起始地址偏移0x04~0x07记录的值表示块大小,在相对于超级块起始地址偏移0x08~0x0F记录的值表示块总数,在相对于超级块起始地址偏移0x54~0x57记录的值表示单个AG所包含的块的总个数,在相对于超级块起始地址偏移0x7C记录的值表示在文件链表记录项中块在AG的相对偏移编号;
S2:获取单个文件链表的大小,即块大小的值,将整个硬盘的数据按照块大小分成若干个块;
S3:匹配每一个块是否符合文件链表的结构特征,若符合则记录下来,不符合则跳过;
S4:解析文件链接的结构;
S5:根据S4中解析的内容,依据文件链表中记录的顺序,依次读取每一记录项对应块地址的数据内容;
S6:将S5中读取的数据,按照文件链表中记录的文件链表间的关系和记录项的顺序依次拼接项中记录的块地址的数据,重新组合为一个新的文件;
S7:将一个文件链表中记录的值解析完成后,继续向下搜索文件链表结构并判断该文件链表是否被使用,未使用则以这个文件链表为解析目标执行S3,若被使用则继续向下搜索直至遍历整个硬盘扇区。
作为优选,所述S3的文件链表的结构特征包含如下特征:
特征一:文件链表特征头为“0x424D4150”;
特征二:文件链表特征头后两个字节表示文件链表的级别,该处记录的值的范围是0~255;
特征三:文件链表级别后两个字节表示文件链表的记录项的个数,该处记录的值应小于超级块中记录的总块数;
特征四:在特征三之后的8个字节表示该文件链表所记录的文件之前有数据内容的状态,该处记录的值应小于超级块中记录的总块数;
特征五:在特征三之后的8个字节表示该文件链表所记录的文件之后有数据内容的状态,该处记录的值应小于超级块中记录的总块数。
作为优选,所述S4其步骤如下:
S401:通过S3中特征四来判断该文件链表所记录的文件在此文件链表记录的地址之前是否包含数据,若特征四描述的地址的值为-1则表示在此之前无文件数据,值不为-1时,该值表示该文件链表所记录的文件在此记录的地址之前的文件链表所在的块号,跳转至相应块号读取块中的文件链表结构;
S402:同特征四相同方法判断特征五所描述的该文件链表所记录的文件在此文件链表记录的地址之后是否包含数据;
S403:依次遍历文件链表中每一记录项数据,按照记录项的结构特征读取记录文件数据的块号和所占用的块个数。
与现有技术相比本发明的优点在于:根据XFS文件存储结构找到中的删除数据;提取XFS文件系统中删除的数据,并进行数据拼接重组;防止重要数据丢失。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下举实施例,对本发明做进一步详细说明。
基于XFS文件系统的存储文件的原理,本发明所采用的数据解析的思路是:通过解析XFS文件系统的存储原理发现,在XFS存储数据文件时,会产生一个链表来存储文件占用的块结构的编号,并且按照顺序来进行记录,在每一记录项中包含了块地址的编号与使用的块的个数。根据上述特征,确立了通过快速定位存储文件占用块编号的链表来进行查找数据,并按照链表中记录的信息读取相应块地址的数据内容,然后按照链表的记录的顺序将提取到的数据进行拼接重组。
下面详细介绍XFS文件系统中的文件链表的基本结构。为了更为方便的阐述本发明中的方法,本例使用IRIX 5.3版本发布的XFS文件系统为例进行阐述,XFS文件系统中每一个文件链表的长度为一个块的长度,其结构如下表所示:
表中文件特征头为“0x424D4150”,长度为4字节,其后2字节表示当前文件链表的级别,紧接着2字节记录的值表示当前文件链表中的记录项的个数,后面左右兄弟节点的地址均占有8字节来存储,在其后的数据为若干个记录项数据,每一记录项的长度为16字节,若某一记录项未被使用时,其16字节长度的内容全用00表示。
在每一个记录项中记录着存储文件的块地址信息,具体的每一个记录项的结构如下表所示:
在记录项中存储结构的划分单位为bit(位),由于每一个记录项的长度为16字节,也即是16*8=128bit,在相对每一记录项起始偏移1bit的值为记录项的标记位;在相对每一记录项起始偏移2bit~55bit的值为记录项所记录的块数据在文件中的相对偏移的块数;在相对每一记录项起始偏移56bit~107bit的值为文件所使用的块地址,在该处记录地址的信息包含的文件所使用块所在的AG编号及块在AG中的相对偏移编号,其中块在AG中的相对偏移编号在该结构中占有的位数处于低位,长度的值为在XFS文件系统中相对超级块起始偏移0x7C字节的处记录的值,由此可计算出块所在的AG编号的值位于相对记录项起始偏移56bit~107bit的高位处,其长度为52减块在AG中的相对偏移编号的长度值;在相对每一记录项起始偏移108bit~128bit的值为文件所使用的块个数。
一种基于XFS文件系统数据的重组恢复方法,包括以下步骤:
S1:加载磁盘,并读取磁盘超级块所在扇区信息并解析,需要解析的内容包括块大小、块总数、AG所包含的块数、每一个块在AG中的相对偏移值;具体地,在相对于超级块起始地址偏移0x04~0x07记录的值表示块大小,在相对于超级块起始地址偏移0x08~0x0F记录的值表示块总数,在相对于超级块起始地址偏移0x54~0x57记录的值表示单个AG所包含的块的总个数,在相对于超级块起始地址偏移0x7C记录的值表示在文件链表记录项中块在AG的相对偏移编号;
S2:获取单个文件链表的大小,即块大小的值,将整个硬盘的数据按照块大小分成若干个块;
S3:匹配每一个块是否符合文件链表的结构特征,若符合则记录下来,不符合则跳过;
文件链表的结构特征包含如下特征:
特征一:文件链表特征头为“0x424D4150”;
特征二:文件链表特征头后两个字节表示文件链表的级别,该处记录的值的范围是0~255;
特征三:文件链表级别后两个字节表示文件链表的记录项的个数,该处记录的值应小于超级块中记录的总块数;
特征四:在特征三之后的8个字节表示该文件链表所记录的文件之前有数据内容的状态,该处记录的值应小于超级块中记录的总块数;
特征五:在特征三之后的8个字节表示该文件链表所记录的文件之后有数据内容的状态,该处记录的值应小于超级块中记录的总块数;
S4:解析文件链接的结构,其步骤如下:
S401:首先通过S:3中特征四来判断该文件链表所记录的文件在此文件链表记录的地址之前是否包含数据,若特征四描述的地址的值为-1则表示在此之前无文件数据,值不为-1时,该值表示该文件链表所记录的文件在此记录的地址之前的文件链表所在的块号,跳转至相应块号读取块中的文件链表结构,
S402:同特征四相同方法判断特征五所描述的该文件链表所记录的文件在此文件链表记录的地址之后是否包含数据;
S403:依次遍历文件链表中每一记录项数据,按照记录项的结构特征读取记录文件数据的块号和所占用的块个数;
S5:根据S4中解析的内容,依据文件链表中记录的顺序,依次读取每一记录项对应块地址的数据内容;
S6:将S5中读取的数据,按照文件链表中记录的文件链表间的关系和记录项的顺序依次拼接项中记录的块地址的数据,重新组合为一个新的文件;
S7:将一个文件链表中记录的值解析完成后,继续向下搜索文件链表结构并判断该文件链表是否被使用,未使用则以这个文件链表为解析目标执行S3,若被使用则继续向下搜索直至遍历整个硬盘扇区。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的实施方法,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。
Claims (1)
1.一种基于XFS文件系统数据的重组恢复方法,其特征在于包括以下步骤:
S1:加载磁盘,并读取磁盘超级块所在扇区信息并解析,需要解析的内容包括块大小、块总数、AG所包含的块数、每一个块在AG中的相对偏移值;具体地,在相对于超级块起始地址偏移0x04~0x07记录的值表示块大小,在相对于超级块起始地址偏移0x08~0x0F记录的值表示块总数,在相对于超级块起始地址偏移0x54~0x57记录的值表示单个AG所包含的块的总个数,在相对于超级块起始地址偏移0x7C记录的值表示在文件链表记录项中块在AG的相对偏移编号;
S2:获取单个文件链表的大小,即块大小的值,将整个硬盘的数据按照块大小分成若干个块;
S3:匹配每一个块是否符合文件链表的结构特征,若符合则记录下来,不符合则跳过;S3的文件链表的结构特征包含如下特征:
特征一:文件链表特征头为“0x424D4150”;
特征二:文件链表特征头后两个字节表示文件链表的级别,该处记录的值的范围是0~255;
特征三:文件链表级别后两个字节表示文件链表的记录项的个数,该处记录的值应小于超级块中记录的总块数;
特征四:在特征三之后的8个字节表示该文件链表所记录的文件之前有数据内容的状态,该处记录的值应小于超级块中记录的总块数;
特征五:在特征三之后的8个字节表示该文件链表所记录的文件之后有数据内容的状态,该处记录的值应小于超级块中记录的总块数;
S4:解析文件链表的结构,S4的步骤如下:
S401:通过S3中特征四来判断该文件链表所记录的文件在此文件链表记录的地址之前是否包含数据,若特征四描述的地址的值为-1则表示在此之前无文件数据,值不为-1时,该值表示该文件链表所记录的文件在此记录的地址之前的文件链表所在的块号,跳转至相应块号读取块中的文件链表结构;
S402:同特征四相同方法判断特征五所描述的该文件链表所记录的文件在此文件链表记录的地址之后是否包含数据;
S403:依次遍历文件链表中每一记录项数据,按照记录项的结构特征读取记录文件数据的块号和所占用的块个数;
S5:根据S4中解析的内容,依据文件链表中记录的顺序,依次读取每一记录项对应块地址的数据内容;
S6:将S5中读取的数据,按照文件链表中记录的文件链表间的关系和记录项的顺序依次拼接项中记录的块地址的数据,重新组合为一个新的文件;
S7:将一个文件链表中记录的值解析完成后,继续向下搜索文件链表结构并判断该文件链表是否被使用,未使用则以这个文件链表为解析目标执行S3,若被使用则继续向下搜索直至遍历整个硬盘扇区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610625795.4A CN106155845B (zh) | 2016-08-02 | 2016-08-02 | 一种基于xfs文件系统数据的重组恢复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610625795.4A CN106155845B (zh) | 2016-08-02 | 2016-08-02 | 一种基于xfs文件系统数据的重组恢复方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106155845A CN106155845A (zh) | 2016-11-23 |
CN106155845B true CN106155845B (zh) | 2023-03-28 |
Family
ID=57328201
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610625795.4A Active CN106155845B (zh) | 2016-08-02 | 2016-08-02 | 一种基于xfs文件系统数据的重组恢复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106155845B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109828866B (zh) * | 2019-01-26 | 2023-04-14 | 郑州汉江电子技术有限公司 | 一种xfs文件碎片恢复方法和装置 |
CN110297781B (zh) * | 2019-07-02 | 2023-05-02 | 四川效率源信息安全技术股份有限公司 | 一种基于写时复制来恢复apfs中被删除数据的方法 |
CN110297729B (zh) * | 2019-07-02 | 2023-03-28 | 四川效率源信息安全技术股份有限公司 | 一种基于区间块来恢复apfs中被损坏数据及被删除数据的方法 |
CN111984467B (zh) * | 2020-07-31 | 2022-08-02 | 厦门市美亚柏科信息股份有限公司 | 一种基于ocfs2的数据恢复方法、装置、系统及存储介质 |
CN112069130B (zh) * | 2020-08-31 | 2023-05-02 | 四川效率源信息安全技术股份有限公司 | 一种针对微软excel文件的数据重组修复方法 |
CN112380174B (zh) * | 2020-12-01 | 2022-07-15 | 厦门市美亚柏科信息股份有限公司 | 含删除文件的xfs文件系统解析方法、终端设备及存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009140157A2 (en) * | 2008-05-15 | 2009-11-19 | Board Of Governors Of Higher Education, State Of Rhode Island And Providence Plantations | Systems and methods for recovering information from nand gate array memory systems |
CN101477487B (zh) * | 2009-01-22 | 2010-09-29 | 上海交通大学 | 多次增量文件的备份方法和恢复方法 |
CN102053879A (zh) * | 2010-12-16 | 2011-05-11 | 国网电力科学研究院 | 基于falsh的自恢复实时文件系统 |
US9026496B1 (en) * | 2011-09-30 | 2015-05-05 | Emc Corporation | Efficient building of restore list |
WO2013160942A2 (en) * | 2012-04-25 | 2013-10-31 | Hitachi, Ltd. | File storage system and file cloning method |
CN103324733A (zh) * | 2013-06-30 | 2013-09-25 | 四川效率源信息安全技术有限责任公司 | 一种基于数据库的文件可重构存储及管理方法 |
CN103678044B (zh) * | 2013-12-30 | 2016-08-17 | 厦门市美亚柏科信息股份有限公司 | 在ext3文件系统下的raid5的数据恢复方法和装置 |
CN104462563B (zh) * | 2014-12-26 | 2019-04-30 | 浙江宇视科技有限公司 | 一种文件存储方法和系统 |
-
2016
- 2016-08-02 CN CN201610625795.4A patent/CN106155845B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106155845A (zh) | 2016-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106155845B (zh) | 一种基于xfs文件系统数据的重组恢复方法 | |
CN107870973B (zh) | 一种加快多路监控同时回放的文件存储系统 | |
US7742414B1 (en) | Lightweight indexing for fast retrieval of data from a flow-level compressed packet trace | |
CN106874348B (zh) | 文件存储和索引方法、装置及读取文件的方法 | |
KR101456757B1 (ko) | SQLite 데이터베이스에서 삭제된 데이터의 복원 방법 및 장치 | |
CN104794228B (zh) | 一种搜索结果提供方法及装置 | |
US20160277544A1 (en) | Protocol data unit interface | |
US8422786B2 (en) | Analyzing documents using stored templates | |
CN104599692A (zh) | 录音方法及装置,录音内容搜索方法及装置 | |
CN103646048A (zh) | 实现多媒体图片的方法和装置 | |
CN106547823A (zh) | 无盘符执法仪数据采集装置和方法 | |
US8868429B2 (en) | Method and device for storing audio data | |
KR101472016B1 (ko) | 이미지 파일에 추가 데이터가 삽입된 복합파일 생성방법 및 상기 복합파일이 기록된 데이터 저장장치 | |
CN102346783A (zh) | 数据检索方法及装置 | |
CN107169057B (zh) | 一种重复图片的检测方法和装置 | |
CN111541617B (zh) | 一种用于高速大规模并发数据流的数据流表处理方法及装置 | |
CN105260130B (zh) | 一种希捷硬盘系统文件的读写方法 | |
CN111796969A (zh) | 一种数据差量压缩检测方法、计算机设备和存储介质 | |
CN113438503B (zh) | 视频文件还原方法、装置、计算机设备和存储介质 | |
US8988258B2 (en) | Hardware compression using common portions of data | |
CN106484691A (zh) | 移动终端的数据存储方法和装置 | |
CN110401941B (zh) | 一种esim卡中缓存数据安全管理方法 | |
CN110874182B (zh) | 一种条带索引的处理方法、装置及设备 | |
CN101282235B (zh) | 处理数据的方法、装置及系统 | |
CN104618644A (zh) | 一种图像数据写入文件的方法及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |