[发明专利]一种基于QNX6FS文件系统的删除文件深度恢复方法和装置有效
申请号: | 202011615705.6 | 申请日: | 2020-12-30 |
公开(公告)号: | CN112579364B | 公开(公告)日: | 2022-08-05 |
发明(设计)人: | 罗杰伟;沈长达;黄志炜 | 申请(专利权)人: | 厦门市美亚柏科信息股份有限公司 |
主分类号: | G06F11/14 | 分类号: | G06F11/14;G06F11/07;G06F16/17;G06F16/16 |
代理公司: | 厦门福贝知识产权代理事务所(普通合伙) 35235 | 代理人: | 陈远洋 |
地址: | 361000 福建省厦门市思明*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 qnx6fs 文件系统 删除 文件 深度 恢复 方法 装置 | ||
1.一种基于QNX6FS文件系统的删除文件深度恢复方法,其特征在于,包括以下步骤:
S1:解析QNX6FS文件系统一个分区中的所有文件信息,获取所有正常目录下inode号为0的目录项,并通过读取超级块获取当前文件系统的块大小、当前分区的块数量和目录项的大小;
S2:取所述分区下的一个属于残留区的数据块Bi,利用所述当前文件系统的块大小除以所述目录项的大小得到所述数据块Bi中的目录项数量,在所述数据块Bi上读取长度为一个所述目录项的大小的数据并判断所述数据是否为一个有效的目录项,若是,则在所述数据中读取inode号;
所述步骤S2的具体步骤包括:
获取所述分区中残留区的区域范围集合DBU={B1,B2,..., BU },其中B1,B2,..., BU表示属于残留区的数据块,针对所述集合DBU={B1,B2,..., BU}中的任意未处理的数据块Bi进行如下步骤,直至处理完所述集合DBU中的所有元素:
S201:在所述数据块Bi上读取一个以所述目录项的大小为长度的数据;
S202:判断所述数据是否为一个有效的目录项,若是,则在所述数据中读取inode号、短文件名长度、短文件名和block_num,并跳转至步骤S3,若否,则执行步骤S203;
S203:若读取次数达到所述目录项数量,则对所述集合DBU中未处理的数据块执行所述步骤S201-S202,否则,在所述数据块Bi上读取下一个以所述目录项的大小为长度的数据,并跳转至步骤S202;
S3:根据步骤S2中获取的所述inode号读取对应的inode,并根据所述inode中各字段的特性判断所述inode是否有效,若是,则根据所述inode的结构恢复所述inode所指向的文件的具体内容,得到已恢复文件;
所述步骤S3中根据所述inode的结构恢复所述inode所指向的文件的具体内容,具体包括:
将所述数据中包括所述inode号、短文件名长度、短文件名和block_num在内的具体内容写入数据Ri,将所述数据Ri作为已恢复文件写入集合RC,当处理完所述集合DBU,得到包含所有已恢复文件的集合RC={R1, R2, R3, …, RN}。
2.根据权利要求1所述的方法,其特征在于,在所述步骤S3中,若所述inode无效,则跳转至所述步骤S2。
3.根据权利要求1所述的方法,其特征在于,所述判断所述数据是否为一个有效的目录项,具体方法包括:
判断所述数据中短文件名长度是否与短文件名所占用空间相匹配,若是,则所述数据是一个有效的目录项。
4.根据权利要求1所述的方法,其特征在于,所述根据所述inode中各字段的特性判断所述inode是否有效的具体方法包括判断是否同时满足以下条件:
所述inode中的UID和GID包含在所述分区中所有能正常解析的文件的inode中的UID和GID构成的集合中;
所述inode中的文件时间中包括创建时间、访问时间和修改时间在内的所有时间值都不早于1970年1月1日;
所述inode中的文件类型数值与所述inode对应的文件的类型相符;
所述inode中的块指针满足:数组大小为16、默认值为0xFFFF且从低下标处开始使用;
所述inode中的块指针深度大于0、且小于或等于5;
所述inode中的保留区域为全0的数组;
若同时满足以上所有所述条件,则所述inode有效,否则所述inode无效。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门市美亚柏科信息股份有限公司,未经厦门市美亚柏科信息股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011615705.6/1.html,转载请声明来源钻瓜专利网。