[发明专利]一种恢复F2FS文件系统中被删除文件的方法有效
申请号: | 201711485304.1 | 申请日: | 2017-12-29 |
公开(公告)号: | CN108153604B | 公开(公告)日: | 2021-03-02 |
发明(设计)人: | 梁效宁;许超明;赵飞;朱星海;吕靓婷 | 申请(专利权)人: | 四川巧夺天工信息安全智能设备有限公司 |
主分类号: | G06F11/07 | 分类号: | G06F11/07;G06F16/17 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 641000 *** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 恢复 f2fs 文件系统 删除 文件 方法 | ||
1.一种恢复F2FS文件系统中被删除文件的方法,其特征在于包括以下步骤:
S100:寻址超级块Super Block,获取段摘要区Segment Summary Area的起始地址和总段数以及主区Main Area的起始地址和总段数;
S200:恢复所述段摘要区Segment Summary Area的被删除文件,步骤S200包括以下步骤:
S201:寻址所述段摘要区Segment Summary Area;
S202:以所述段摘要区Segment Summary Area的当前块的首地址为起始地址,向后偏移0x0FFB字节并读取当前字节的内容;
S203:判断当前字节内容是否为0x00,如果是,执行步骤S205,否则执行步骤S204;
S204:寻址所述段摘要区Segment Summary Area的下一块,并执行步骤S202;
S205:顺序读取所述段摘要区Segment Summary Area的当前块中512项文件管理字段,其中,每一所述项的字节长度为7字节,低4字节为文件标识号nid,高2字节为文件项号,所述文件标识号nid及所述文件项号均以小端格式存储;
S206:寻址所述主区Main Area:所述主区Main Area中当前段的首地址等于所述主区Main Area的起始地址加上所述主区Main Area中当前段号乘以段长度的积,其中,所述段号为0开始递增的正整数,段长度等于块长度乘以512;
S207:读取所述512项文件管理字段所对应的数据:以所述主区Main Area中当前段的首地址为起始地址,顺序读取512块的内容,作为所述512项文件管理字段所对应的数据,其中,所述512项文件管理字段所对应的数据中包括文件标识号nid及组内编号ofs_in_node;
S208:判断是否读取完所述段摘要区Segment Summary Area当前段的512块,如果是,执行S210,否则,执行步骤S209;
S209:寻址所述段摘要区Segment Summary Area当前段的下一块,并执行步骤S202;
S210:判断是否读取完所述段摘要区Segment Summary Area的所有段,如果是,执行S212,否则,执行步骤S211;
S211:寻址所述段摘要区Segment Summary Area下一段,并执行步骤S202;
S212:将数据按相同的文件标识号nid各自合并,并按各自的组内编号ofs_in_node顺序排列,获取所述段摘要区Segment Summary Area中的被删除文件;
S300:恢复主区Main Area的被删除文件,步骤S300包括以下步骤:
S301:寻址所述主区Main Area的起始地址;
S302:寻址节点地址表NAT的首地址:所述超级块Super Block的起始地址向后偏移0x54字节,读取4字节的内容为所述节点地址表NAT的起始块号,其乘以块长度的值,作为所述节点地址表NAT的首地址,其中,所述起始块号以小端格式存储;
S303:获取当前块中的文件信息,所述文件信息的数据结构如表1所示:
表1:文件信息的数据结构
其中,所述表1的所述节点信息的数据结构如表2所示:
表2:节点信息的数据结构
direct_node1 direct_node2 indirect_node1 indirect_node2 d_indirect_node
其中,除所述表1中的文件名外,所述表1、表2的数据均以小端格式存储,所述表2的数据的字节长度均为4字节;
S304:判断所述文件标识号nid的值是否等于所述文件索引号ino,如果是,执行步骤S306,否则执行步骤S305;
S305:寻址所述主区Main Area的下一块,执行步骤S303;
S306:读取直接数据:以所述表1中所述索引地址作为所述直接数据的起始地址,顺序读取直接数据,其中,各个所述直接数据的字节长度为块长度0x1000;
S307:获取直接节点direct_node所指向的数据,所述直接节点direct_node包括第一直接节点组direct_node1和第二直接节点组direct_node2;
S308:获取间接节点indirect_node所指向的数据,所述间接节点indirect_node包括第一间接节点组indirect_node1和第二间接节点组indirect_node2;
S309:获取双间接节点d_indirect_node所指向的数据,所述双间接节点d_indirect_node包括双间接节点组d_indirect_node:
S310:所述步骤S307至S309中,对主区Main Area中未进行访问的块,各个执行步骤S205至S207,读取所对应的数据;
S311:将所述步骤S306至S310所读取数据按文件标识号nid各自合并,获取所述主区Main Area的被删除文件;
S400:合并所述段摘要区Segment Summary Area及所述主区Main Area中所恢复文件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川巧夺天工信息安全智能设备有限公司,未经四川巧夺天工信息安全智能设备有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711485304.1/1.html,转载请声明来源钻瓜专利网。