CN114860506A - Linux文件系统修复方法、系统、装置及存储介质 - Google Patents

Linux文件系统修复方法、系统、装置及存储介质 Download PDF

Info

Publication number
CN114860506A
CN114860506A CN202210449953.0A CN202210449953A CN114860506A CN 114860506 A CN114860506 A CN 114860506A CN 202210449953 A CN202210449953 A CN 202210449953A CN 114860506 A CN114860506 A CN 114860506A
Authority
CN
China
Prior art keywords
file
repaired
disk
repair
linux
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.)
Pending
Application number
CN202210449953.0A
Other languages
English (en)
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.)
Allwinner Technology Co Ltd
Original Assignee
Allwinner Technology 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 Allwinner Technology Co Ltd filed Critical Allwinner Technology Co Ltd
Priority to CN202210449953.0A priority Critical patent/CN114860506A/zh
Publication of CN114860506A publication Critical patent/CN114860506A/zh
Pending legal-status Critical Current

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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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/061Improving I/O performance
    • 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/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种Linux文件系统修复方法、系统、装置及存储介质,其中方法包括:在内核新增输入输出控制接口,然后通过输入输出控制接口获取待修复磁盘中的文件参数。打开待修复磁盘,根据预设的文件修复条件和文件参数,确定待修复磁盘中的待修复文件,并对待修复文件的元数据信息进行校验;当校验出现异常,调用修复工具对待修复文件进行修复;修复完成后,写入待修复磁盘,并在写入完成后关闭待修复磁盘。本申请实施例提出的文件系统修复方法,无需遍历系统中的所有文件,能够根据预设的文件修复条件确定需要修复的文件,有助于减少修复过程的耗时,实现快速修复。

Description

Linux文件系统修复方法、系统、装置及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种Linux文件系统修复方法、系统、装置及存储介质。
背景技术
当Linux系统因意外断电等情况关闭,Linux的文件系统可能会出现损坏,导致无法正常进入系统。相关技术中一般使用fcsk(file system check,文件系统检查)修复工具对文件系统进行修复,但是,修复工具需要对所有文件进行遍历检查修复,导致修复过程耗时较长;并且,修复过程需要较大的内存,可能出现剩余存储空间较小的磁盘无法正常执行修复过程的情况。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本申请提出一种Linux文件系统修复方法、系统、装置及存储介质,能够实现文件系统的快速修复。
第一方面,本申请实施例提供了一种Linux文件系统修复方法,包括:在内核新增输入输出控制接口;通过所述输入输出控制接口获取所述待修复磁盘中的所有文件的文件参数;打开所述待修复磁盘,根据预设的文件修复条件和所述文件参数,确定所述待修复磁盘中的所述待修复文件;对所述待修复文件的元数据信息进行校验;当校验出现异常,调用修复工具对所述待修复文件进行修复;修复完成后,写入所述待修复磁盘,并在写入完成后关闭所述待修复磁盘。
可选地,所述文件修复条件,包括:文件的输入输出口出错;或,文件为所述待修复磁盘中最新修改或最新创建的文件。
可选地,当所述文件修复条件是文件的输入输出口出错,所述根据预设的文件修复条件和所述文件参数,确定所述待修复磁盘中的所述待修复文件这一步骤,具体为:根据所述文件参数中的输入输出口信息,确定所述待修复磁盘中输入输出口出错的文件为所述待修复文件。
可选地,当所述文件修复条件是文件为所述待修复磁盘中最新修改或最新创建的文件,所述根据预设的文件修复条件和所述文件参数,确定所述待修复磁盘中的所述待修复文件这一步骤,具体为:根据所述文件参数中的文件修改时间或文件创建时间,确定所述待修复磁盘中最新修改或最新创建的文件为所述待修复文件。
可选地,当所述文件系统为fat文件系统,所述元数据信息中包括两个FAT表、簇链、目录项和簇大小信息,所述对所述待修复文件的元数据信息进行校验,包括:检查两个所述FAT表是否一致;检查所述簇链是否完整;检查所述目录项中的文件大小信息和所述簇大小信息是否一致。
可选地,所述当校验出现异常,调用修复工具对所述待修复文件进行修复,包括:当两个所述FAT表不一致;或,当所述簇链不完整;或,所述目录项中的文件大小信息和所述簇大小信息不一致;确定校验出现异常,调用所述修复工具对所述待修复文件进行修复。
可选地,所述方法还包括:在通过预设的输入输出控制接口获取所述待修复磁盘中的待修复文件的文件参数这一步骤之前,挂载所述待修复磁盘;在通过预设的输入输出控制接口获取所述待修复磁盘中的待修复文件的文件参数这一步骤之后,卸载所述待修复磁盘。
第二方面,本申请实施例提供了一种Linux文件系统修复系统,包括:第一模块,用于在内核新增输入输出控制接口;第二模块,用于通过所述输入输出控制接口获取所述待修复磁盘中的文件参数;第三模块,用于打开所述待修复磁盘,根据预设的文件修复条件和所述文件参数,确定所述待修复磁盘中的所述待修复文件;第四模块,用于对所述待修复文件的元数据信息进行校验;第五模块,用于当校验出现异常,调用修复工具对所述待修复文件进行修复;第六模块,用于修复完成后,写入所述待修复磁盘,并在写入完成后关闭所述待修复磁盘。
第三方面,本申请实施例提供了一种Linux文件系统修复装置,包括:至少一个处理器;至少一个存储器,用于存储至少一个程序;当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现上述Linux文件系统修复方法。
第四方面,本申请实施例提供了一种计算机存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由所述处理器执行时用于实现上述Linux文件系统修复方法。
本申请实施例的有益效果如下:首先在内核新增输入输出控制接口,然后通过输入输出控制接口获取待修复磁盘中的文件参数。打开待修复磁盘,根据预设的文件修复条件和文件参数,确定待修复磁盘中的待修复文件,并对待修复文件的元数据信息进行校验;当校验出现异常,调用修复工具对待修复文件进行修复;修复完成后,写入待修复磁盘,并在写入完成后关闭待修复磁盘。本申请实施例提出的文件系统修复方法,无需遍历系统中的所有文件,能够根据预设的文件修复条件确定需要修复的文件,有助于减少修复过程的耗时,实现快速修复;且本申请实施例的方法只对待修复文件执行修复,令总体的修复过程占用的内存空间降低,有助于帮助低内存的磁盘正常完整文件系统修复过程。
附图说明
附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为本申请实施例提供的Linux文件系统修复方法的步骤流程图;
图2为本申请实施例提供的Linux文件系统修复系统的示意图;
图3为本申请实施例提供的Linux文件系统修复装置的示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在系统示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于系统中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
当Linux系统因意外断电等情况关闭,Linux的文件系统可能会出现损坏,导致无法正常进入系统。相关技术中一般使用fcsk(file system check,文件系统检查)修复工具对文件系统进行修复。其中,针对不同的文件系统,可以选择fsck.ext4、fsck.msdos、fsck.cramfs等修复工具进行修复。
但是,fsck工具一般以磁盘为输入,在获悉文件系统格式的情况下,调用不同的修复工具对整个磁盘内的所有文件数据进行遍历检查修复,导致修复过程耗时较长,并且需要占用较大的内存空间。可以理解的是,随着使用时长增加,磁盘中的数据会逐渐增多,一方面修复工具遍历文件所需要的时间会变得更长,另一方面磁盘中剩余的可用空间可能会不足以令修复工具正常启动,导致修复过程失败。
基于此,本申请提供了一种Linux文件系统修复方法、系统、装置及存储介质,该方法首先在内核新增输入输出控制接口,然后通过输入输出控制接口获取待修复磁盘中的文件参数。打开待修复磁盘,根据预设的文件修复条件和文件参数,确定待修复磁盘中的待修复文件,并对待修复文件的元数据信息进行校验;当校验出现异常,调用修复工具对待修复文件进行修复;修复完成后,写入待修复磁盘,并在写入完成后关闭待修复磁盘。本申请实施例提出的文件系统修复方法,无需遍历系统中的所有文件,能够根据预设的文件修复条件确定需要修复的文件,有助于减少修复过程的耗时,实现快速修复;且本申请实施例的方法只对待修复文件执行修复,令总体的修复过程占用的内存空间降低,有助于帮助低内存的磁盘正常完整文件系统修复过程。
下面结合附图,对本申请实施例作进一步阐述。
参考图1,图1为本申请实施例提供的Linux文件系统修复方法的步骤流程图,该方法包括但不限于步骤S100-S150:
S100、在内核新增输入输出控制接口;
具体地,在本申请实施例中,分别从Linux系统的内核态和用户态两个方面进行改进,以实现Linux文件系统修复方法。内核态和用户态是操作系统的两种运行级别,用户态主要是指操作系统运行用户程序,而内核态则是指操作系统运行操作系统程序和硬件。
在本步骤中,首先需要操作系统以内核态的级别运行,在内核新增输入输出控制接口(input/output control,ioctl),该输入输出控制接口是设备驱动程序中设备控制接口的函数,通过该输入输出控制接口,操作系统能够在修复过程中获取到文件系统中文件的信息,具体将在以下步骤中展开阐述。
S110、通过输入输出控制接口获取待修复磁盘中的文件参数;
具体地,在内核设置好输入输出控制接口后,当Linux系统意外关机或重启,文件系统发生损坏,则开始进行文件系统的修复过程,本申请实施例的修复过程在用户态中进行。可以理解的是,文件系统的修复以磁盘修复为单位。
将可能损坏的文件系统中的所有磁盘确定为待修复磁盘,首先,处于用户态的操作系统将当前待修复磁盘进行挂载;然后操作系统调用内核中预先设置好的输入输出控制接口调用文件系统,获取到待修复磁盘中所有文件对应的文件参数;在获取完文件参数后,操作系统将当前挂载起来的待修复磁盘卸载。
在本申请实施例中,输入输出控制接口需要获取的文件参数种类可以预先设定,文件参数包括但不限于文件的创建时间、修改或最新创建时间、文件存储位置、文件大小、文件输入输出口信息等等,根据用户的修复习惯,可以令操作系统选择采集不同的文件参数,本申请不对操作系统获取文件参数的具体种类和具体数量作具体限定。
需要说明的是,首先,内核获取文件参数这一过程与修复工具遍历文件系统这一过程相比,速度大大加快,并且在后续步骤中,修复工具也无需进行遍历文件系统这一过程,因此本申请提出的修复方法具有耗时短、速度快的优势。另外,在操作系统挂在磁盘、调用输入输出控制接口获取文件参数,然后卸载磁盘的过程中,操作系统的内核能够同步完成对文件系统中无效数据和孤儿文件的修复,也能够达到缩短整体的修复时长的效果。
S120、打开待修复磁盘,根据预设的文件修复条件和文件参数,确定待修复磁盘中的待修复文件;
具体地,处于用户态的操作系统打开当前的待修复磁盘,检查获取到的文件参数,当存在文件参数与预设的文件修复条件相吻合,则可以确定当前文件参数所对应的文件为待修复磁盘中的待修复文件。也就是说在本申请实施例中,待修复文件是指可能出现异常的文件,操作系统需要调用修复工具对待修复文件进行修复。
上述内容中提出,在挂载磁盘的时候,操作系统可以获取到待修复磁盘中文件对应的文件参数,因此,本申请实施例中提出通过预设的文件修复条件对文件参数中特定几项参数进行匹配,则能够确定待修复文件。
在一些实施例中,文件系统损坏可能发生在操作系统读写数据的过程中,在这种情况下,一般文件系统中发生损坏的某个磁盘中最新修改或最新创建的文件,也可以理解为是磁盘中最后处理的文件。因此,可以设置文件修复条件为文件为待修复磁盘中最新修改或最新创建的文件。可以理解的是,如果需要确定磁盘中最新修改或最新创建的文件,则需要知道文件修改时间或文件创建时间。因此,如果选取本申请实施例中的文件修复条件实现快速修复,则操作系统获取的文件参数应至少包括文件修改时间或文件创建时间。通过查询当前待修复磁盘中所有文件的文件修改时间或文件创建时间,可以确定磁盘中最新修改或最新创建的文件,并将该文件确定为待修复文件,在后续步骤中对其进行检查修复。
在另一些实施例中,操作系统也可以通过系统报错确定具体是哪些文件需要修复。例如,在操作系统获取的文件参数时,获取文件的输入输出口(IO)信息,该输入输出口信息能够记录文件是否出现IO出错。则在确定当前文件修复条件为文件的输入输出口出错的情况下,操作系统则可以通过文件参数中的输入输出口信息确定IO出错的文件为待修复文件,在后续步骤中对其进行检查修复。
可以理解的是,在本步骤中,本申请实施例提出的修复方法以匹配文件参数和文件修复条件的方法,快速定位可能受到损坏的待修复文件,免去了修复工具对文件系统进行遍历的过程,实现了快速修复的目。并且在不同的应用场景中,只需要对应调整文件修复条件,就可以进一步提高定位待修复文件的精度,在保证修复速度的同时提升准确率。
S130、对待修复文件的元数据信息进行校验;
具体地,通过上述步骤S120确定待修复文件,这些待修复文件是通过文件修复条件和文件参数匹配得到的可能出现损坏、异常的文件,而待修复文件是否真的损坏,还需要对这些待修复文件的元数据信息进行校验,以确定是否需要对待修复文件进行修复。
不同文件系统中,文件的元数据并不相同,例如在ext4文件系统中,文件的元数据包括节点表(inode table)、节点位图(inode bitmap)和数据块位图(data block bitmap)等信息;而在fat文件系统中,文件的元数据则至少包括两个FAT表、簇链、目录项和簇大小信息,下面以fat文件系统为例,阐述对待修复文件的元数据信息进行校验的具体过程。
首先,fat文件系统的元数据中包括两个FAT表,校验过程需要检查两个FAT表是否一致,若两个FAT表一致,则继续检查元数据中的簇链是否完整,若簇链也完整,则继续检查目录项中记录的的文件大小信息和簇大小信息是否一致,若文件大小信息和簇大小信息也一致,则说明当前待修复文件对应的元数据信息校验正常,当前待修复文件没有损坏,不需要进行修复。
反之,在fat文件系统的元数据校验过程中,若出现两个FAT表不一致、簇链不完整或者是目录项中的文件大小信息和簇大小信息不一致这三种情况中的至少一种,则说明当前待修复文件对应的元数据信息校验出现异常,当前待修复文件遭到损坏,需要进行修复。
可以理解的是,上述内容中提到不同文件系统的元数据不相同,如果是对ext4文件系统进行修复,则对应校验inode table、inode bitmap、data block bitmap等信息是否有效,从而确定当前待修复文件是否损坏。其他文件系统也可以执行类似的校验过程,本申请不对文件系统的种类和具体的校验方式作具体限制。
S140、当校验出现异常,调用修复工具对待修复文件进行修复;
具体地,上述步骤S130中提到,若出现两个FAT表不一致、簇链不完整或者是目录项中的文件大小信息和簇大小信息不一致这三种情况中的至少一种,则说明当前待修复文件对应的元数据信息校验出现异常,则针对不同的文件系统,调用对应的修复工具对待修复文件进行修复。
S150、修复完成后,写入待修复磁盘,并在写入完成后关闭待修复磁盘;
具体地,对待修复文件的修复完成之后,写入待修复磁盘,然后关闭待修复磁盘,完成对当前磁盘的文件修复工作。
通过步骤S100-S150,本申请实施例提供了一种Linux文件系统修复方法,首先在内核新增输入输出控制接口,然后通过输入输出控制接口获取待修复磁盘中的文件参数。打开待修复磁盘,根据预设的文件修复条件和文件参数,确定待修复磁盘中的待修复文件,并对待修复文件的元数据信息进行校验;当校验出现异常,调用修复工具对待修复文件进行修复;修复完成后,写入待修复磁盘,并在写入完成后关闭待修复磁盘。本申请实施例提出的文件系统修复方法,无需遍历系统中的所有文件,能够根据预设的文件修复条件确定需要修复的文件,有助于减少修复过程的耗时,实现快速修复;且本申请实施例的方法只对待修复文件执行修复,令总体的修复过程占用的内存空间降低,有助于帮助低内存的磁盘正常完整文件系统修复过程。
下面结合Linux系统在实际生活中的应用,阐述本申请实施例的Linux文件系统修复方法。
在生活中,Linux系统可以存在于行车记录仪产品中,在行车记录仪采集数据,进行写卡的过程中,用户可能会出现异常拔卡行为,此时,文件系统中的最后一个文件(可能是最新创建或者最新修改的文件)损坏的可能性很大。则Linux系统实现本申请实施例提出的Linux文件系统修复方法:首先对待修复的磁盘进行挂载,并通过内核的ioctl获取磁盘中所有文件的文件创建时间或文件修改时间,并且在获取完文件参数之后卸载待修复磁盘。在上述过程中,内核同步完成对无效数据和孤儿文件的修复。然后操作系统打开待修复磁盘,根据文件参数确定待修复磁盘中的最新修改或最新创建的文件为待修复文件,并对待修复文件的元数据信息进行校验。当校验出现异常,调用修复工具对待修复文件进行修复;修复完成后,写入待修复磁盘,并在写入完成后关闭待修复磁盘。
参照图2,图2为本申请实施例提供的Linux文件系统修复系统的示意图,该系统200包括但不限于第一模块210、第二模块220、第三模块230、第四模块240、第五模块250和第六模块260。第一模块用于在内核新增输入输出控制接口;第二模块用于通过输入输出控制接口获取待修复磁盘中的文件参数;第三模块用于打开待修复磁盘,根据预设的文件修复条件和文件参数,确定待修复磁盘中的待修复文件;第四模块用于对待修复文件的元数据信息进行校验;第五模块用于当校验出现异常,调用修复工具对待修复文件进行修复;第六模块用于修复完成后,写入待修复磁盘,并在写入完成后关闭待修复磁盘。
参考图3,图3为本申请实施例提供的Linux文件系统修复装置的示意图,该装置300包括至少一个处理器310,还包括至少一个存储器320,用于存储至少一个程序;图3中以一个处理器及一个存储器为例。
处理器和存储器可以通过总线或者其他方式连接,图3中以通过总线连接为例。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本申请实施例还公开了一种计算机存储介质,其中存储有处理器可执行的程序,处理器可执行的程序在由处理器执行时用于实现本申请提出的方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上是对本申请的较佳实施进行了具体说明,但本申请并不局限于上述实施方式,熟悉本领域的技术人员在不违背本申请精神的前提下还可作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

Claims (10)

1.一种Linux文件系统修复方法,其特征在于,包括:
在内核新增输入输出控制接口;
通过所述输入输出控制接口获取待修复磁盘中的所有文件的文件参数;
打开所述待修复磁盘,根据预设的文件修复条件和所述文件参数,确定所述待修复磁盘中的待修复文件;
对所述待修复文件的元数据信息进行校验;
当校验出现异常,调用修复工具对所述待修复文件进行修复;
修复完成后,写入所述待修复磁盘,并在写入完成后关闭所述待修复磁盘。
2.根据权利要求1所述的Linux文件系统修复方法,其特征在于,所述文件修复条件,包括:
文件的输入输出口出错;
或,
文件为所述待修复磁盘中最新修改或最新创建的文件。
3.根据权利要求1所述的Linux文件系统修复方法,其特征在于,当所述文件修复条件是文件的输入输出口出错,所述根据预设的文件修复条件和所述文件参数,确定所述待修复磁盘中的所述待修复文件这一步骤,具体为:
根据所述文件参数中的输入输出口信息,确定所述待修复磁盘中输入输出口出错的文件为所述待修复文件。
4.根据权利要求1所述的Linux文件系统修复方法,其特征在于,当所述文件修复条件是文件为所述待修复磁盘中最新修改或最新创建的文件,所述根据预设的文件修复条件和所述文件参数,确定所述待修复磁盘中的所述待修复文件这一步骤,具体为:
根据所述文件参数中的文件修改时间或文件创建时间,确定所述待修复磁盘中最新修改或最新创建的文件为所述待修复文件。
5.根据权利要求1所述的Linux文件系统修复方法,其特征在于,当所述文件系统为fat文件系统,所述元数据信息中包括两个FAT表、簇链、目录项和簇大小信息,所述对所述待修复文件的元数据信息进行校验,包括:
检查两个所述FAT表是否一致;
检查所述簇链是否完整;
检查所述目录项中的文件大小信息和所述簇大小信息是否一致。
6.根据权利要求5所述的Linux文件系统修复方法,其特征在于,所述当校验出现异常,调用修复工具对所述待修复文件进行修复,包括:
当两个所述FAT表不一致;
或,当所述簇链不完整;
或,所述目录项中的文件大小信息和所述簇大小信息不一致;
确定校验出现异常,调用所述修复工具对所述待修复文件进行修复。
7.根据权利要求1所述的Linux文件系统修复方法,其特征在于,所述方法还包括:
在通过预设的输入输出控制接口获取所述待修复磁盘中的待修复文件的文件参数这一步骤之前,挂载所述待修复磁盘;
在通过预设的输入输出控制接口获取所述待修复磁盘中的待修复文件的文件参数这一步骤之后,卸载所述待修复磁盘。
8.一种Linux文件系统修复系统,其特征在于,包括:
第一模块,用于在内核新增输入输出控制接口;
第二模块,用于通过所述输入输出控制接口获取待修复磁盘中的文件参数;
第三模块,用于打开所述待修复磁盘,根据预设的文件修复条件和所述文件参数,确定所述待修复磁盘中的待修复文件;
第四模块,用于对所述待修复文件的元数据信息进行校验;
第五模块,用于当校验出现异常,调用修复工具对所述待修复文件进行修复;
第六模块,用于修复完成后,写入所述待修复磁盘,并在写入完成后关闭所述待修复磁盘。
9.一种Linux文件系统修复装置,其特征在于,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如权利要求1-7中任一项所述的Linux文件系统修复方法。
10.一种计算机存储介质,其中存储有处理器可执行的程序,其特征在于,所述处理器可执行的程序在由所述处理器执行时用于实现如权利要求1-7任一项所述的Linux文件系统修复方法。
CN202210449953.0A 2022-04-27 2022-04-27 Linux文件系统修复方法、系统、装置及存储介质 Pending CN114860506A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210449953.0A CN114860506A (zh) 2022-04-27 2022-04-27 Linux文件系统修复方法、系统、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210449953.0A CN114860506A (zh) 2022-04-27 2022-04-27 Linux文件系统修复方法、系统、装置及存储介质

Publications (1)

Publication Number Publication Date
CN114860506A true CN114860506A (zh) 2022-08-05

Family

ID=82632568

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210449953.0A Pending CN114860506A (zh) 2022-04-27 2022-04-27 Linux文件系统修复方法、系统、装置及存储介质

Country Status (1)

Country Link
CN (1) CN114860506A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117472291A (zh) * 2023-12-27 2024-01-30 苏州元脑智能科技有限公司 数据块的校验方法和装置、存储介质及电子设备
CN117573417A (zh) * 2024-01-15 2024-02-20 麒麟软件有限公司 一种基于异位字段替换的kabi修复方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117472291A (zh) * 2023-12-27 2024-01-30 苏州元脑智能科技有限公司 数据块的校验方法和装置、存储介质及电子设备
CN117472291B (zh) * 2023-12-27 2024-03-22 苏州元脑智能科技有限公司 数据块的校验方法和装置、存储介质及电子设备
CN117573417A (zh) * 2024-01-15 2024-02-20 麒麟软件有限公司 一种基于异位字段替换的kabi修复方法
CN117573417B (zh) * 2024-01-15 2024-04-09 麒麟软件有限公司 一种基于异位字段替换的kabi修复方法

Similar Documents

Publication Publication Date Title
CN114860506A (zh) Linux文件系统修复方法、系统、装置及存储介质
CN108646982B (zh) 一种基于ubifs的数据自动修复方法及装置
CN115145697A (zh) 数据库事务的处理方法、装置及电子设备
CN114385418A (zh) 通信设备的保护方法、装置、设备和存储介质
CN112527566B (zh) 设备掉电运行参数读写异常保护方法、系统和存储介质
CN111290902B (zh) 一种交换机端口压力测试方法、装置、设备和介质
CN116775406A (zh) 一种分布式存储系统的磁盘状态监控方法及装置
CN110674038A (zh) 一种对软件测试中错误信息的分类方法及装置
CN113132790B (zh) 一种视频转储方法及装置
CN110471623B (zh) 硬盘文件写入方法、装置、计算机设备和存储介质
CN113656358A (zh) 一种数据库日志文件处理方法及系统
CN112328173A (zh) 一种分布式存储系统磁盘故障修复方法及装置
CN112069009A (zh) 一种在Recovery模式下进行压力测试的方法、装置和终端设备
CN106599046B (zh) 分布式文件系统的写入方法及装置
CN115454710B (zh) 闪存数据读取方法及其装置、电子设备、存储介质
CN109412846B (zh) 一种配置回滚方法及装置
CN116088456B (zh) 基于mes的智能工厂产品质量监控方法及系统
CN112562774B (zh) 存储设备挂载方法、装置、计算机设备和存储介质
WO2021227926A1 (zh) 系统重启方法、终端及存储介质
WO2023060976A1 (zh) 嵌入式文件系统的文件读写方法、电子设备及存储介质
CN114385574A (zh) 日志处理的方法和装置、电子设备、存储介质
CN116107785A (zh) 嵌入式设备自动化测试方法、装置、电子设备及存储介质
JPH06175901A (ja) ファイルを管理する処理装置
JPH06266573A (ja) 障害復旧情報管理システム
CN117472647A (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