EXT文件系统的超级块修复方法和装置、智能设备制造方法及图纸

技术编号:12398332 阅读:69 留言:0更新日期:2015-11-26 04:00
本公开提供一种ext文件系统的超级块修复方法和装置、智能设备,其中方法包括:获取文件系统中的备份超级块;读取所述备份超级块的数据,写入待修复的所述主超级块。本公开能够在超级块损坏时自动修复超级块,避免无法通过文件系统读取文件。

【技术实现步骤摘要】

本公开涉及智能终端技术,特别涉及一种ext文件系统的超级块修复方法和装置、智能设备。
技术介绍
EXT文件系统是常用的用于管理文件的系统,例如,Android手机的分区的文件管理就是使用EXT文件系统。该文件系统包括多个系统版本,例如,EXT2、EXT3和EXT4等,通过索引节点inode和数据块block来进行对文件的管理。在文件系统中,存在“超级块”(Superblock),该超级块中记录了文件系统的全局信息,比如数据块的数量、索引节点的数量、数据库的大小等,对文件数据的读写操作,需要根据超级块的信息实现。
技术实现思路
本公开提供一种ext文件系统的超级块修复方法和装置、智能设备,以在超级块损坏时自动修复超级块,避免无法通过文件系统读取文件。根据本公开实施例的第一方面,提供一种ext文件系统的超级块修复方法,包括:获取文件系统中的备份超级块;读取所述备份超级块的数据,写入待修复的所述主超级块。可选的,所述获取文件系统中的备份超级块,包括:遍历所述文件系统,由所述文件系统中的至少一个备份超级块中,选择其中一个备份超级块,确定为待读取数据的目标备份超级块。通过该方式可以得到用户修复超级块的备份超级块,以备从该备份超级块中读取数据。可选的,所述遍历所述文件系统,由所述文件系统中的至少一个备份超级块中,选择其中一个备份超级块,确定为待读取数据的目标备份超级块,包括:遍历所述文件系统,得到所述文件系统中的至少一个备份超级块的块号;根据所述块号,逐个读取所述至少一个备份超级块的数据;当得到magic值等于0xEF53的第一个备份超级块时,确定所述备份超级块为所述目标备份超级块,停止继续读取剩余未读取的备份超级块。通过该方式可以节省系统的处理资源,尽快结束对备份超级块的查找。可选的,在所述获取文件系统中的备份超级块之前,还包括:读取所述主超级块中的magic值,并判断所述magic值是否等于0xEF53 ;在所述magic值不等于0xEF53时,确定所述主超级块故障。通过该方式可以有效的对超级块是否故障进行判定。可选的,在所述获取文件系统中的备份超级块之前,还包括:卸载所述文件系统所在的分区;将所述分区的数据进行备份。通过该方式可以提高对文件系统数据的可靠性保障,防止在修复超级块的过程中造成数据损坏。根据本公开实施例的第二方面,提供一种ext文件系统的超级块修复装置,包括:备份确定模块,用于获取文件系统中的备份超级块;数据修复模块,用于读取所述备份超级块的数据,写入待修复的所述主超级块。可选的,所述备份确定模块,用于遍历所述文件系统,由所述文件系统中的至少一个备份超级块中,选择其中一个备份超级块,确定为待读取数据的目标备份超级块。可选的,所述备份确定模块包括:遍历子模块,用于遍历所述文件系统,得到所述文件系统中的至少一个备份超级块的块号;确定子模块,用于根据所述块号,逐个读取所述至少一个备份超级块的数据;当得到magic值等于0xEF53的第一个备份超级块时,确定所述备份超级块为所述目标备份超级块,停止继续读取剩余未读取的备份超级块。可选的,所述装置还包括:故障判断模块,用于在所述备份确定模块获取文件系统中的备份超级块之前,读取所述主超级块中的magic值,并判断所述magic值是否等于0xEF53 ;在所述magic值不等于0xEF53时,确定所述主超级块故障。可选的,所述装置还包括:数据备份模块,用于卸载所述文件系统所在的分区;将所述分区的数据进行备份。根据本公开实施例的第三方面,提供一种智能设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为:获取文件系统中的备份超级块;读取所述备份超级块的数据,写入待修复的所述主超级块。本公开的实施例提供的技术方案可以包括以下有益效果:通过从文件系统中获取备份超级块,并利用该备份超级块的数据进行主超级块的修复,使得在超级块损坏时能够自动修复超级块,避免无法通过文件系统读取文件。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。【附图说明】此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。图1是根据一示例性实施例示出的一种EXT文件系统的结构;图2是根据一示例性实施例示出的一种ext文件系统的超级块修复方法的流程图;图3是根据一示例性实施例示出的另一种ext文件系统的超级块修复方法的流程图;图4是根据一示例性实施例示出的又一种ext文件系统的超级块修复方法的流程图;图5是根据一示例性实施例示出的一种ext文件系统的超级块修复装置的结构图;图6是根据一示例性实施例示出的另一种ext文件系统的超级块修复装置的结构图;图7是根据一示例性实施例示出的一种智能设备的框图。【具体实施方式】这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。EXT文件系统是常用的用于管理文件的系统,例如,Android手机中可以包括多个分区,如用于存放应用程序的DATA分区、用于存放底层应用、硬件驱动等的SYSTEM分区等。各个分区都可以通过一个文件系统来管理该分区的文件,例如,本公开中使用EXT文件系统进行文件管理。参见图1的示例,简单示例了一个EXT文件系统的结构,可以包括多个块组(BlockGroup),例如图1中的块组O、块组1、块组2等,每个块组中可以包括多个数据块block,可以用于存储文件的数据。其中,在图1中,仅示出了块组中包括的超级块,未示出块组中包括的其他信息。例如,在块组O中包括主超级块(Primary Superblock),该主超级块中可以包括该文件系统的全局信息,比如,文件系统中的每个数据块(block)的大小,每个块组有多少个数据块等。在读写文件系统的文件时,需要用到该主超级块,比如,将主超级块的信息读取到内存,根据主超级块中的超级块的大小等信息进行文件读取。基于上述,超级块的信息很重要,如果主超级块发生损坏,那么将导致文件系统故障,无法正常的读取文件系统所在的分区的文件数据。因此,在文件系统中,还存储有备份超级块(Backup Superblock),例如图1中所示的,块组I中的备份超级块11、以及块组2中的备份超级块22等。本公开的ext文件系统的超级块修复方法,提供了一种在主超级块损坏时(例如,Android手机出现宕机事故造成超级块损坏)能够自动修复主超级块的方法,以尽快修复主超级块,使得文件系统恢复正常。如图2所示,该方法可以包括如下步骤:在步骤201中,获取文件系统中的备份超级块。在步骤202中,读取备份超级块的数据,写入待修复的主超级块。在图2所示的流程中,也就是要将文件系统中的备份超级块中的数据,用于修复主超级块,写入主超级块中。其中,当文件系统中包括多个备份超级块时,可以读取任一备份超级块的数据。通当前第1页1 2 3 本文档来自技高网...

【技术保护点】
一种ext文件系统的超级块修复方法,其特征在于,包括:获取文件系统中的备份超级块;读取所述备份超级块的数据,写入待修复的所述主超级块。

【技术特征摘要】

【专利技术属性】
技术研发人员:李明浩朱瑞贤杨亮
申请(专利权)人:小米科技有限责任公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1