CN108646982B - 一种基于ubifs的数据自动修复方法及装置 - Google Patents

一种基于ubifs的数据自动修复方法及装置 Download PDF

Info

Publication number
CN108646982B
CN108646982B CN201810421109.0A CN201810421109A CN108646982B CN 108646982 B CN108646982 B CN 108646982B CN 201810421109 A CN201810421109 A CN 201810421109A CN 108646982 B CN108646982 B CN 108646982B
Authority
CN
China
Prior art keywords
file
partition
partitions
damaged
files
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
Application number
CN201810421109.0A
Other languages
English (en)
Other versions
CN108646982A (zh
Inventor
党三磊
张捷
李健
张思建
刘健
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Electric Power Research Institute of Guangdong Power Grid Co Ltd
Original Assignee
Electric Power Research Institute of Guangdong Power Grid Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Electric Power Research Institute of Guangdong Power Grid Co Ltd filed Critical Electric Power Research Institute of Guangdong Power Grid Co Ltd
Priority to CN201810421109.0A priority Critical patent/CN108646982B/zh
Publication of CN108646982A publication Critical patent/CN108646982A/zh
Application granted granted Critical
Publication of CN108646982B publication Critical patent/CN108646982B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种基于UBIFS(Unsorted Block Image File System,无序区块镜像文件***)的数据自动修复方法及装置,其中,本发明的方法包括:获取UBIFS的分区挂载检测数据,确定挂载异常已损坏分区;对挂载异常的已损坏分区进行擦除并重新挂载;获取文件校验列表中储存的待校验文件信息,通过校验码校验方式,对待校验文件进行校验,若校验失败,则将校验失败的文件替换成与校验失败的文件相对应的备份文件。解决了UBIFS在实际使用中,由于设备异常掉电的原因,异步更新的机制的稳定性无法得到保证,容易出现关键文件丢失或出现分区挂载失败的情况,进而导致***无法运行的技术问题。

Description

一种基于UBIFS的数据自动修复方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于UBIFS的数据自动修复方法及装置。
背景技术
在嵌入式***中,NANDFLASH由于成本低、体积小等特点而被广泛应用,且NANDFLASH本身的具有一些特殊的物理特点:页块结构、先擦后写、擦写限制。为保障NANDFLASH的可靠运行,需要采用专门的文件***。
Linux作为最常用的嵌入式***之一,面向Linux的闪存文件***绝大部分都是基于日志结构的文件***设计,日志结构文件***并不采用本地更新的方式,而是采用异步更新的方式。UBIFS(无序区块镜像文件***)是Linux***中的一种新一代的闪存文件***,作为JFFS2的后继者,UBIFS主要解决了JFFS2文件***存在的挂载时间长、内存消耗大、可扩展性差、损耗均衡处理能力差的问题。虽然UBIFS克服了JFFS2存在的弱点并因UBIFS本身的可靠性得到大家的肯定,但是在实际使用中,由于设备异常掉电的原因,异步更新的机制的稳定性无法得到保证,容易出现关键文件丢失或出现分区挂载失败的情况,进而导致***无法运行的技术问题。
发明内容
本发明提供了一种基于UBIFS的数据自动修复方法及装置,用于解决在实际使用中,由于设备异常掉电的原因,异步更新的机制的稳定性无法得到保证,容易出现关键文件丢失或出现分区挂载失败的情况,进而导致***无法运行的技术问题。
本发明提供了一种基于UBIFS的数据自动修复方法,包括:
S1:获取UBIFS的分区挂载检测数据,确定挂载异常的已损坏分区;
S2:对挂载异常的已损坏分区进行擦除并重新挂载;
S3:获取文件校验列表中的待校验文件信息,通过校验码校验方式,对待校验文件进行校验,若校验失败,则将校验失败的文件替换成与校验失败的文件相对应的备份文件。
优选地,步骤S2具体包括:
S21:根据获取到的UBIFS的分区挂载检测数据,统计已损坏分区的数量,若已损坏分区的数量大于1,则退出修复,若已损坏分区的数量小于或等于1,则执行步骤S22;
S22:判断已损坏分区的数量,若已损坏分区的数量等于1,则通过遍历校验方式,锁定已损坏分区,并对已损坏分区进行擦除并重新挂载,建立数据修复分区,然后获取到存储在非损坏分区中的已损坏分区损坏前的备份数据,并将已损坏分区损坏前的备份数据写入数据修复分区,然后执行步骤S3,若已损坏分区的数量小于1,则直接执行步骤S3。
优选地,步骤S3具体包括:
S31:将CRC校验码添加到预置的文件,得到带校验码结构的待校验文件;
S32:将通过遍历获取到的待校验文件的文件属性写入预置的文件校验列表文件,得到文件校验列表;
S33:获取文件校验列表中的待校验文件信息,通过校验码校验方式,对文件校验列表中的待校验文件逐一进行校验,若校验失败,则将校验失败的文件替换成与校验失败的文件相对应的备份文件。
优选地,步骤S2之前还包括:
S10:解除UBI分区与MTD分区的映射关系。
优选地,UBIFS的分区挂载检测数据具体包括:APP分区挂载数据、BACKUP分区挂载数据和DATA分区挂载数据。
本发明提供了一种基于UBIFS的数据自动修复装置,包括:
分区检测单元,用于获取UBIFS的分区挂载检测数据,确定挂载异常的已损坏分区;
分区修复单元,用于对挂载异常的已损坏分区进行擦除并重新挂载;
文件校验单元,用于获取文件校验列表中的待校验文件信息,通过校验码校验方式,对待校验文件进行校验,若校验失败,则将校验失败的文件替换成与校验失败的文件相对应的备份文件。
优选地,分区修复单元具体包括:
分区统计子单元,用于根据获取到的UBIFS的分区挂载检测数据,统计已损坏分区的数量,若已损坏分区的数量大于1,则退出修复,若已损坏分区的数量小于或等于1,则运行分区修复子单元;
分区修复子单元,用于判断已损坏分区的数量,若已损坏分区的数量等于1,则通过遍历校验方式,锁定已损坏分区,并对已损坏分区进行擦除并重新挂载,建立数据修复分区,然后获取到存储在非损坏分区中的已损坏分区损坏前的备份数据,并将已损坏分区损坏前的备份数据写入数据修复分区,然后运行文件校验单元,若已损坏分区的数量小于1,则直接运行文件校验单元。
优选地,文件校验单元具体包括:
校验码添加子单元,用于将CRC校验码添加到预置的文件,得到带校验码结构的待校验文件;
校验文件统计子单元,用于将通过遍历获取到的待校验文件的文件属性写入预置的文件校验列表文件,得到文件校验列表;
文件校验子单元,用于获取文件校验列表中的待校验文件信息,通过校验码校验方式,对文件校验列表中的待校验文件逐一进行校验,若校验失败,则将校验失败的文件替换成与校验失败的文件相对应的备份文件。
优选地,还包括:
映射解除单元,用于解除UBI分区与MTD分区的映射关系。
优选地,UBIFS的分区挂载检测数据具体包括:APP分区挂载数据、BACKUP分区挂载数据和DATA分区挂载数据。
从以上技术方案可以看出,本发明具有以下优点:
本发明提供了一种基于UBIFS的数据自动修复方法,包括:S1:获取UBIFS的分区挂载检测数据,确定挂载异常已损坏分区;S2:对挂载异常的已损坏分区进行擦除并重新挂载;S3:获取文件校验列表中的待校验文件信息,通过校验码校验方式,对待校验文件进行校验,若校验失败,则将校验失败的文件替换成与校验失败的文件相对应的备份文件。
本发明通过UBIFS分区自动检测以及通过校验码和文件校验列表进行文件自动校验的结合,自动修复由文件***挂载异常导致的分区或文件损坏,解决了在实际使用中,由于设备异常掉电的原因,异步更新的机制的稳定性无法得到保证,容易出现关键文件丢失或出现分区挂载失败的情况,进而导致***无法运行的技术问题,提高了***的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明提供的一种基于UBIFS的数据自动修复方法的一个实施例的流程示意图;
图2为本发明提供的一种基于UBIFS的数据自动修复方法的另一个实施例的流程示意图;
图3为本发明实施例提供的一种基于UBIFS的数据自动修复装置的结构示意图;
图4为本发明提供的一种基于UBIFS的数据自动修复方法中的待校验文件的数据结构示意图。
具体实施方式
本发明实施例提供了一种基于UBIFS的数据自动修复方法及装置,用于在实际使用中,由于设备异常掉电的原因,异步更新的机制的稳定性无法得到保证,会使得UBIFS出现关键文件丢失或出现分区挂载失败的情况,进而导致***无法运行的技术问题。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,本发明实施例提供了一种基于UBIFS的数据自动修复方法,包括:
101:获取UBIFS的分区挂载检测数据,确定挂载异常已损坏分区。
需要说明的是,首先根据Linux的df命令编写脚本文件确定挂载异常的分区。
102:对挂载异常的已损坏分区进行擦除并重新挂载。
需要说明的是,通过调用mtdutils中相关工具(mtd_erase)可以对异常分区可擦除块内容进行擦除,然后调用ubi相关工具(ubiattach/ubimkvol)重新建立分区并挂载,并且使用在其他分区上的文件备份恢复本分区的内容。
103:获取文件校验列表中的待校验文件信息,通过校验码校验方式,对待校验文件进行校验,若校验失败,则将校验失败的文件替换成与校验失败的文件相对应的备份文件。
需要说明的是,将重要文件的尾部需增加存有本文件数据区CRC校验值的区域,得到含有CRC校验码的待校验文件,用于开机时的自检,其中,待校验文件的数据结构如图4所示,然后将待校验文件的文件属性信息登记到文件校验列表文件中,并将该文件校验列表文件保存到每个用户分区中,获取文件校验列表中的待校验文件信息,通过校验码校验方式,对文件校验列表中的待校验文件逐一进行校验当发现文件CRC校验无法通过时,使用备份文件来替换当前文件;
另外,CRC校验码的既可添加在文件数据区的尾部,也可添加在文件数据区的头部,此处不作限定;
本发明实施例通过UBIFS分区自动检测以及通过校验码和文件校验列表进行文件自动校验的结合,自动修复由文件***挂载异常导致的分区或文件损坏,解决了在实际使用中,由于设备异常掉电的原因,异步更新的机制的稳定性无法得到保证,会使得UBIFS出现关键文件丢失或出现分区挂载失败的情况,进而导致***无法运行的技术问题,提高了***的可靠性。
以上为本发明提供的一种基于UBIFS的数据自动修复方法的一个实施例的详细描述,以下为本发明提供的一种基于UBIFS的数据自动修复方法的另一个实施例的详细描述。
请参阅图2,本发明实施例提供了一种基于UBIFS的数据自动修复方法,包括:
201:获取UBIFS的分区挂载检测数据,确定挂载异常已损坏分区。
需要说明的是,首先根据Linux的df命令编写脚本文件确定挂载异常的分区。
202:解除UBI分区与MTD分区的映射关系。
203:根据获取到的UBIFS的分区挂载检测数据,统计已损坏分区的数量N,若已损坏分区的数量N大于1,则退出修复,若已损坏分区的数量N小于或等于1,则执行步骤204。
204:判断已损坏分区的数量N,若已损坏分区的数量等于1,则执行步骤205,若已损坏分区的数量N小于1,则直接执行步骤206。
205:通过遍历校验方式,锁定已损坏分区,并对已损坏分区进行擦除并重新挂载,建立数据修复分区,然后获取到存储在非损坏分区中的已损坏分区损坏前的备份数据,并将已损坏分区损坏前的备份数据写入数据修复分区,然后执行步骤206。
需要说明的是,通过调用mtdutils中相关工具(mtd_erase)可以对异常分区可擦除块内容进行擦除,然后调用ubi相关工具(ubiattach/ubimkvol)重新建立分区并挂载,并且使用在其他分区上的文件备份恢复本分区的内容。
206:将CRC校验码添加到预置的文件,得到带校验码结构的待校验文件。
需要说明的是,在重要文件的尾部需增加存有本文件数据区CRC校验值的区域,得到含有CRC校验码的待校验文件,用于开机时的自检,其中,待校验文件的数据结构如图4所示;
另外,CRC校验码的既可添加在文件数据区的尾部,也可添加在文件数据区的头部,此处不作限定。
207:将通过遍历获取到的待校验文件的文件属性写入预置的文件校验列表文件,得到文件校验列表。
需要说明的是,将待校验文件的文件属性信息登记到文件校验列表文件中,并将该文件校验列表文件保存到每个用户分区中
208:获取文件校验列表中的待校验文件信息,通过校验码校验方式,对文件校验列表中的待校验文件逐一进行校验,若校验失败,则将校验失败的文件替换成与校验失败的文件相对应的备份文件。
需要说明的是,获取文件校验列表中的待校验文件信息,通过校验码校验方式,对文件校验列表中的待校验文件逐一进行校验当发现文件CRC校验无法通过时,使用存储其他正常分区中的备份文件来替换掉当前校验出错的文件。
209:判断当前校验的待校验文件是否为文件校验列表中的最后一个,若是,则在完成本次文件校验及文件修复后退出修复;若否,则返回执行步骤208。
本发明实施例通过UBIFS分区自动检测以及通过校验码和文件校验列表进行文件自动校验的结合,自动修复由文件***挂载异常导致的分区或文件损坏,解决了在实际使用中,由于设备异常掉电的原因,异步更新的机制的稳定性无法得到保证,会使得UBIFS出现关键文件丢失或出现分区挂载失败的情况,进而导致***无法运行的技术问题,提高了***的可靠性。
以上为本发明提供的一种基于UBIFS的数据自动修复方法的一个实施例的详细描述,以下为本发明提供的一种基于UBIFS的数据自动修复装置的一个实施例的详细描述。
请参阅图3,本发明实施例提供了一种基于UBIFS的数据自动修复装置,包括:
分区检测单元301,用于获取UBIFS的分区挂载检测数据,确定挂载异常已损坏分区;
分区修复单元302,用于对挂载异常的已损坏分区进行擦除并重新挂载;
文件校验单元303,用于获取文件校验列表中的待校验文件信息,通过校验码校验方式,对待校验文件进行校验,若校验失败,则将校验失败的文件替换成与校验失败的文件相对应的备份文件。
进一步地,分区修复单元具体包括:
分区统计子单元3021,用于根据获取到的UBIFS的分区挂载检测数据,统计已损坏分区的数量,若已损坏分区的数量大于1,则退出修复,若已损坏分区的数量小于或等于1,则运行分区修复子单元3022;
分区修复子单元3022,用于判断已损坏分区的数量,若已损坏分区的数量等于1,则通过遍历校验方式,锁定已损坏分区,并对已损坏分区进行擦除并重新挂载,建立数据修复分区,然后获取到存储在非损坏分区中的已损坏分区损坏前的备份数据,并将已损坏分区损坏前的备份数据写入数据修复分区,然后运行校验码添加子单元3031,若已损坏分区的数量小于1,则直接运行文件校验码添加子单元3031。
进一步地,文件校验单元具体包括:
校验码添加子单元3031,用于将CRC校验码添加到预置的文件,得到带校验码结构的待校验文件;
校验文件统计子单元3032,用于将通过遍历获取到的待校验文件的文件属性写入预置的文件校验列表文件,得到文件校验列表;
文件校验子单元3033,用于获取文件校验列表中的待校验文件信息,通过校验码校验方式,对文件校验列表中的待校验文件逐一进行校验,若校验失败,则将校验失败的文件替换成与校验失败的文件相对应的备份文件。
进一步地,还包括:
映射解除单元304,用于解除UBI分区与MTD分区的映射关系。
进一步地,UBIFS的分区挂载检测数据具体包括:APP分区挂载数据、BACKUP分区挂载数据和DATA分区挂载数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (8)

1.一种基于UBIFS的数据自动修复方法,其特征在于,包括:
S1:获取UBIFS的分区挂载检测数据,确定挂载异常的已损坏分区;
S21:根据获取到的UBIFS的分区挂载检测数据,统计已损坏分区的数量,若已损坏分区的数量大于1,则退出修复,若已损坏分区的数量小于或等于1, 则执行步骤S22;
S22:判断已损坏分区的数量,若已损坏分区的数量等于1,则通过遍历校验方式,锁定已损坏分区,并对已损坏分区进行擦除并重新挂载,建立数据修复分区,然后获取到存储在非损坏分区中的已损坏分区损坏前的备份数据,并将已损坏分区损坏前的备份数据写入数据修复分区,然后执行步骤S3,若已损坏分区的数量小于1,则直接执行步骤S3;
S3:获取文件校验列表中储存的待校验文件信息,通过校验码校验方式,对待校验文件进行校验,若校验失败,则将校验失败的文件替换成与校验失败的文件相对应的备份文件。
2.根据权利要求1所述的一种基于UBIFS的数据自动修复方法,其特征在于,步骤S3具体包括:
S31:将CRC校验码添加到预置的文件,得到带校验码结构的待校验文件;
S32:将通过遍历获取到的待校验文件的文件属性写入预置的文件校验列表文件,得到文件校验列表;
S33:获取文件校验列表中的待校验文件信息,通过校验码校验方式,对文件校验列表中的待校验文件逐一进行校验,若校验失败,则将校验失败的文件替换成与校验失败的文件相对应的备份文件。
3.根据权利要求1所述的一种基于UBIFS的数据自动修复方法,其特征在于,步骤S2之前还包括:
S10:解除UBI分区与MTD分区的映射关系。
4.根据权利要求1所述一种基于UBIFS的数据自动修复方法,其特征在于,UBIFS的分区挂载检测数据具体包括:APP分区挂载数据、BACKUP分区挂载数据和DATA分区挂载数据。
5.一种基于UBIFS的数据自动修复装置,其特征在于,包括:
分区检测单元,用于获取UBIFS的分区挂载检测数据,确定挂载异常的已损坏分区;
分区修复单元,用于对挂载异常的已损坏分区进行擦除并重新挂载;
文件校验单元,用于获取文件校验列表中的待校验文件信息,通过校验码校验方式,对待校验文件进行校验,若校验失败,则将校验失败的文件替换成与校验失败的文件相对应的备份文件;
分区修复单元具体包括:
分区统计子单元,用于根据获取到的UBIFS的分区挂载检测数据,统计已损坏分区的数量,若已损坏分区的数量大于1,则退出修复,若已损坏分区的数量小于或等于1,则运行分区修复子单元;
分区修复子单元,用于判断已损坏分区的数量,若已损坏分区的数量等于1,则通过遍历校验方式,锁定已损坏分区,并对已损坏分区进行擦除并重新挂载,建立数据修复分区,然后获取到存储在非损坏分区中的已损坏分区损坏前的备份数据,并将已损坏分区损坏前的备份数据写入数据修复分区,然后运行文件校验单元,若已损坏分区的数量小于1,则直接运行文件校验单元。
6.根据权利要求5所述的一种基于UBIFS的数据自动修复装置,其特征在于,文件校验单元具体包括:
校验码添加子单元,用于将CRC校验码添加到预置的文件,得到带校验码结构的待校验文件;
校验文件统计子单元,用于将通过遍历获取到的待校验文件的文件属性写入预置的文件校验列表文件,得到文件校验列表;
文件校验子单元,用于获取文件校验列表中的待校验文件信息,通过校验码校验方式,对文件校验列表中的待校验文件逐一进行校验,若校验失败,则将校验失败的文件替换成与校验失败的文件相对应的备份文件。
7.根据权利要求5所述的一种基于UBIFS的数据自动修复装置,其特征在于,还包括:
映射解除单元,用于解除UBI分区与MTD分区的映射关系。
8.根据权利要求5所述一种基于UBIFS的数据自动修复装置,其特征在于,UBIFS的分区挂载检测数据具体包括:APP分区挂载数据、BACKUP分区挂载数据和DATA分区挂载数据。
CN201810421109.0A 2018-05-04 2018-05-04 一种基于ubifs的数据自动修复方法及装置 Active CN108646982B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810421109.0A CN108646982B (zh) 2018-05-04 2018-05-04 一种基于ubifs的数据自动修复方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810421109.0A CN108646982B (zh) 2018-05-04 2018-05-04 一种基于ubifs的数据自动修复方法及装置

Publications (2)

Publication Number Publication Date
CN108646982A CN108646982A (zh) 2018-10-12
CN108646982B true CN108646982B (zh) 2020-11-10

Family

ID=63749476

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810421109.0A Active CN108646982B (zh) 2018-05-04 2018-05-04 一种基于ubifs的数据自动修复方法及装置

Country Status (1)

Country Link
CN (1) CN108646982B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111209138A (zh) * 2018-11-22 2020-05-29 浙江宇视科技有限公司 数据存储***的运维方法及装置
CN110737481A (zh) * 2019-09-25 2020-01-31 浙江万胜智能科技股份有限公司 基于多重备份引导程序的嵌入式linux操作***的启动方法
CN112804071A (zh) * 2019-11-13 2021-05-14 中兴通讯股份有限公司 在线升级方法、升级文件提供方法、设备及存储介质
CN111026447B (zh) * 2019-11-29 2022-05-17 惠州华阳通用电子有限公司 一种ubi设备自动挂载方法
CN111813748B (zh) * 2020-07-10 2022-06-07 济南浪潮数据技术有限公司 一种文件***的挂载方法、装置、电子设备及存储介质
CN112328269B (zh) * 2020-11-26 2024-03-15 广东小天才科技有限公司 ubifs镜像的软件挂载方法、智能设备、电子设备及存储介质
CN112527561B (zh) * 2020-12-09 2021-10-01 广州技象科技有限公司 基于物联网云存储的数据备份方法及装置
CN113138653B (zh) * 2021-04-14 2021-10-15 福州富昌维控电子科技有限公司 掉电数据保护方法及终端
CN117271225B (zh) * 2023-11-20 2024-02-06 安擎计算机信息股份有限公司 一种fru信息备份方法、装置和服务器

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107943414A (zh) * 2017-10-16 2018-04-20 积成电子股份有限公司 嵌入式Linux的文件***分区及数据读写方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120072228A (ko) * 2010-12-23 2012-07-03 한국전자통신연구원 플래시 메모리의 파일 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107943414A (zh) * 2017-10-16 2018-04-20 积成电子股份有限公司 嵌入式Linux的文件***分区及数据读写方法

Also Published As

Publication number Publication date
CN108646982A (zh) 2018-10-12

Similar Documents

Publication Publication Date Title
CN108646982B (zh) 一种基于ubifs的数据自动修复方法及装置
CN106020865B (zh) 一种***升级方法和装置
CN107943414B (zh) 嵌入式Linux的文件***分区及数据读写方法
CN111158599B (zh) 一种写数据的方法、装置、设备及存储介质
CN102298545B (zh) 一种***启动引导处理方法及装置
TWI512742B (zh) 非揮發性快閃記憶體擦除異常存儲塊修復方法和裝置
CN113626256B (zh) 一种虚拟机磁盘数据备份方法、装置、终端及存储介质
CN103631721A (zh) 一种隔离内存中坏块的方法及***
CN110399247B (zh) 一种数据恢复方法、装置、设备及计算机可读存储介质
US20060259814A1 (en) Method and system for optimizing testing of memory stores
CN111045870B (zh) 一种保存与恢复元数据的方法、装置和介质
CN110941394A (zh) 列车自动控制***数据读写方法及装置
CN110618892A (zh) 一种固态硬盘的bug定位方法、装置、电子设备及介质
CN111552592A (zh) 一种双备份启动方法及***
CN107992268B (zh) 一种坏块标记的方法及相关装置
CN109992445B (zh) 一种修改写操作的处理方法、装置、电子设备及存储介质
CN110795155B (zh) ***启动方法及装置、电子设备、存储介质
CN115562593A (zh) 一种异常raid成员盘处理方法、装置及介质
CN111209132A (zh) 嵌入式***、掉电保护方法、电子设备及存储介质
CN111124752A (zh) 一种存储设备的备电保护的方法及装置
CN116661698B (zh) 一种窨井排水监测设备中存储器的管理方法及装置
JP2005056144A (ja) フラッシュメモリ搭載電子装置、そのメモリデータ管理方法およびプログラム
CN117331491A (zh) Nand Flash芯片数据存储方法及装置
CN113050887A (zh) 闪存分区数据处理方法、装置、计算机设备和存储介质
CN118051383A (zh) 一种分区损坏切换备份的方法及***

Legal Events

Date Code Title Description
PB01 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