Ext文件系统的误删除文件恢复方法和装置、智能设备的制造方法
【技术领域】
[0001]本公开涉及智能终端技术,特别涉及一种ext文件系统的误删除文件恢复方法和装置、智能设备。
【背景技术】
[0002]EXT文件系统是常用的用于管理文件的系统,例如,Android手机的分区的文件管理就是使用EXT文件系统。该文件系统包括多个系统版本,例如,EXT2、EXT3和EXT4等,通过索引节点inode和数据块block来进行对文件的管理,在inode节点中可以存储某个文件的数据都存储在哪些block的指示,比如,文件的数据存储在blockl、block4和block7中,其中的1、4和7是数据块block的块号。
【发明内容】
[0003]本公开提供一种ext文件系统的误删除文件恢复方法和装置、智能设备,以实现对ext文件系统中的误删除文件的恢复。
[0004]根据本公开实施例的第一方面,提供一种ext文件系统的误删除文件恢复方法,包括:
[0005]获取误删除文件所在的分区设备;
[0006]通过debugfs模式,获取所述误删除文件在所述分区设备的数据块块号;
[0007]由所述分区设备中对应所述块号的数据块,读取数据恢复误删除文件。
[0008]可选的,所述获取误删除文件所在的分区设备,包括:根据所述误删除文件的根路径,由文件挂载信息中得到与所述根路径对应的分区设备,为所述误删除文件所在的分区设备。通过该方法可以很快的获取到误删除文件所在的分区设备,以备在该分区设备继续查找误删除文件的数据。
[0009]可选的,所述通过debugfs模式,获取所述误删除文件在所述分区设备的数据块块号,包括:在debugfs模式下,获取所述分区设备中的已删除文件信息;由所述已删除文件信息中,查找与所述误删除文件的文件名对应的索引节点号;根据所述索引节点号,得到所述误删除文件所占用的数据块块号。通过该方式可以较快的获取到误删除文件所占用的数据块块号,从而快速从该数据块块号对应的位置读取数据。
[0010]可选的,所述由所述分区设备中对应所述块号的数据块,读取数据恢复误删除文件,包括:根据所述ext文件系统的每一数据块的大小和所述数据块块号,计算所述数据块在所述分区设备的地址;由所述地址处读取数据,并将所述数据写入所述误删除文件。通过该方式实现了误删除文件的恢复。
[0011]可选的,在所述获取误删除文件所在的分区设备之前,还包括:接收对所述误删除文件进行恢复的指示。通过该方式可以方便用户指示要恢复的误删除文件,便于用户对文件恢复的控制和管理。
[0012]根据本公开实施例的第二方面,提供一种ext文件系统的误删除文件恢复装置,包括:
[0013]设备获取模块,用于获取误删除文件所在的分区设备;
[0014]块号确定模块,用于通过debugfs模式,获取所述误删除文件在所述分区设备的数据块块号;
[0015]数据恢复模块,用于由所述分区设备中对应所述块号的数据块,读取数据恢复误删除文件。
[0016]可选的,所述设备获取模块,用于根据所述误删除文件的根路径,由文件挂载信息中得到与所述根路径对应的分区设备,为所述误删除文件所在的分区设备。
[0017]可选的,所述块号确定模块包括:索引节点子模块,用于在debugfs模式下,获取所述分区设备中的已删除文件信息,由所述已删除文件信息中,查找与所述误删除文件的文件名对应的索引节点号;数据块号子模块,用于根据所述索引节点号,得到所述误删除文件所占用的数据块块号。
[0018]可选的,所述数据恢复模块包括:位置计算子模块,用于根据所述ext文件系统的每一数据块的大小和所述数据块块号,计算所述数据块在所述分区设备的地址;数据读写子模块,用于由所述地址处读取数据,并将所述数据写入所述误删除文件。
[0019]可选的,所述装置还包括:指示接收模块,用于接收对所述误删除文件进行恢复的指示。
[0020]根据本公开实施例的第三方面,提供一种智能设备,包括:
[0021]处理器;
[0022]用于存储处理器可执行指令的存储器;
[0023]其中,所述处理器被配置为:获取误删除文件所在的分区设备;通过debugfs模式,获取所述误删除文件在所述分区设备的数据块块号;由所述分区设备中对应所述块号的数据块,读取数据恢复误删除文件。
[0024]本公开的实施例提供的技术方案可以包括以下有益效果:通过获取误删除文件所在的分区设备并使用debugfs得到文件所在的数据块块号,使得可以从该数据块块号对应的位置读取数据,从而实现对ext文件系统中的误删除文件的恢复。
[0025]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
【附图说明】
[0026]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0027]图1是根据一示例性实施例示出的一种ext文件系统的误删除文件恢复方法的流程图;
[0028]图2是根据一示例性实施例示出的一种EXT文件系统的结构;
[0029]图3是根据一示例性实施例示出的另一种ext文件系统的误删除文件恢复方法的流程图;
[0030]图4是根据一示例性实施例示出的一种ext文件系统的误删除文件恢复装置的结构示意图;
[0031]图5是根据一示例性实施例示出的另一种ext文件系统的误删除文件恢复装置的结构示意图;
[0032]图6是根据一示例性实施例示出的又一种ext文件系统的误删除文件恢复装置的结构示意图;
[0033]图7是根据一示例性实施例示出的一种智能设备的框图。
【具体实施方式】
[0034]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
[0035]EXT文件系统是常用的用于管理文件的系统,例如,Android手机中可以包括多个分区,如用于存放应用程序的DATA分区、用于存放底层应用、硬件驱动等的SYSTEM分区等。各个分区都可以通过一个文件系统来管理该分区的文件,例如,本公开中使用EXT文件系统进行文件管理。
[0036]在实际使用中,用户有可能会无意间删除了自己本不想删除的文件,例如,用户误删除了自己的Android手机中的一个APP,想将该应用恢复,那么本公开提供了用于恢复这种误删除文件的方法。图1是根据一示例性实施例示出的一种ext文件系统的误删除文件恢复方法的流程图,可以包括:
[0037]在步骤101中,获取误删除文件所在的分区设备。
[0038]在步骤102中,通过debugfs模式,获取所述误删除文件在所述分区设备的数据块块号。
[0039]在步骤103中,由所述分区设备中对应所述块号的数据块,读取数据恢复误删除文件。
[0040]为了对上述图1的方法进行更加清楚的描述,首先通过图2简单示例了一个EXT文件系统的结构,如图2所示,示出了一个分区设备,该分区设备使用了 ext文件系统。该分区可以包括多个块组(Block Group),例如图1中的块组O、块组1、块组2等,每个块组中可以包括多个数据块block,可以用于存储文件的数据或者其他信息。
[0041]以块组O为例,该块组中包括多个数据块(block),也存储了多方面的信息,比如,超级块、组描述符、inode位图、数据位图、inode表等,不同类型的信息占用的block的数量也不同。例如,超级块用于描述该文件系统的全局信息,比如,文件系统中的每个数据块(block)的大小,可以占用I个block。inode表中包括多个inode节点(即索引节点),例如,图2所示的三个inode节点;用于实际存储文件数据的数据块的数量也很多,图2示例了三个block (例如,block-1、block-2和block-3)。inode位图用于表不该块组中的inode节点的占用情况,比如哪些inode节点已经占用;而数据位图表示该块组中的数据块block的占用情况。
[0042]图2还示出了索引节点inode与数据块block之间的关系,参见图2所示,inode节点中可以记录文件数据存储在哪些block。例如,inode-3中记录了某个文件的数据实际存储在block-2和block-3上,那么去对应的数据块block-2和block-3就可