Linux文件系统修复方法、系统、装置及存储介质与流程

文档序号:31051605发布日期:2022-08-06 07:35阅读:89来源:国知局
linux文件系统修复方法、系统、装置及存储介质
技术领域
:1.本技术涉及计算机
技术领域
:,尤其涉及一种linux文件系统修复方法、系统、装置及存储介质。
背景技术
::2.当linux系统因意外断电等情况关闭,linux的文件系统可能会出现损坏,导致无法正常进入系统。相关技术中一般使用fcsk(filesystemcheck,文件系统检查)修复工具对文件系统进行修复,但是,修复工具需要对所有文件进行遍历检查修复,导致修复过程耗时较长;并且,修复过程需要较大的内存,可能出现剩余存储空间较小的磁盘无法正常执行修复过程的情况。技术实现要素:3.本技术旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本技术提出一种linux文件系统修复方法、系统、装置及存储介质,能够实现文件系统的快速修复。4.第一方面,本技术实施例提供了一种linux文件系统修复方法,包括:在内核新增输入输出控制接口;通过所述输入输出控制接口获取所述待修复磁盘中的所有文件的文件参数;打开所述待修复磁盘,根据预设的文件修复条件和所述文件参数,确定所述待修复磁盘中的所述待修复文件;对所述待修复文件的元数据信息进行校验;当校验出现异常,调用修复工具对所述待修复文件进行修复;修复完成后,写入所述待修复磁盘,并在写入完成后关闭所述待修复磁盘。5.可选地,所述文件修复条件,包括:文件的输入输出口出错;或,文件为所述待修复磁盘中最新修改或最新创建的文件。6.可选地,当所述文件修复条件是文件的输入输出口出错,所述根据预设的文件修复条件和所述文件参数,确定所述待修复磁盘中的所述待修复文件这一步骤,具体为:根据所述文件参数中的输入输出口信息,确定所述待修复磁盘中输入输出口出错的文件为所述待修复文件。7.可选地,当所述文件修复条件是文件为所述待修复磁盘中最新修改或最新创建的文件,所述根据预设的文件修复条件和所述文件参数,确定所述待修复磁盘中的所述待修复文件这一步骤,具体为:根据所述文件参数中的文件修改时间或文件创建时间,确定所述待修复磁盘中最新修改或最新创建的文件为所述待修复文件。8.可选地,当所述文件系统为fat文件系统,所述元数据信息中包括两个fat表、簇链、目录项和簇大小信息,所述对所述待修复文件的元数据信息进行校验,包括:检查两个所述fat表是否一致;检查所述簇链是否完整;检查所述目录项中的文件大小信息和所述簇大小信息是否一致。9.可选地,所述当校验出现异常,调用修复工具对所述待修复文件进行修复,包括:当两个所述fat表不一致;或,当所述簇链不完整;或,所述目录项中的文件大小信息和所述簇大小信息不一致;确定校验出现异常,调用所述修复工具对所述待修复文件进行修复。10.可选地,所述方法还包括:在通过预设的输入输出控制接口获取所述待修复磁盘中的待修复文件的文件参数这一步骤之前,挂载所述待修复磁盘;在通过预设的输入输出控制接口获取所述待修复磁盘中的待修复文件的文件参数这一步骤之后,卸载所述待修复磁盘。11.第二方面,本技术实施例提供了一种linux文件系统修复系统,包括:第一模块,用于在内核新增输入输出控制接口;第二模块,用于通过所述输入输出控制接口获取所述待修复磁盘中的文件参数;第三模块,用于打开所述待修复磁盘,根据预设的文件修复条件和所述文件参数,确定所述待修复磁盘中的所述待修复文件;第四模块,用于对所述待修复文件的元数据信息进行校验;第五模块,用于当校验出现异常,调用修复工具对所述待修复文件进行修复;第六模块,用于修复完成后,写入所述待修复磁盘,并在写入完成后关闭所述待修复磁盘。12.第三方面,本技术实施例提供了一种linux文件系统修复装置,包括:至少一个处理器;至少一个存储器,用于存储至少一个程序;当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现上述linux文件系统修复方法。13.第四方面,本技术实施例提供了一种计算机存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由所述处理器执行时用于实现上述linux文件系统修复方法。14.本技术实施例的有益效果如下:首先在内核新增输入输出控制接口,然后通过输入输出控制接口获取待修复磁盘中的文件参数。打开待修复磁盘,根据预设的文件修复条件和文件参数,确定待修复磁盘中的待修复文件,并对待修复文件的元数据信息进行校验;当校验出现异常,调用修复工具对待修复文件进行修复;修复完成后,写入待修复磁盘,并在写入完成后关闭待修复磁盘。本技术实施例提出的文件系统修复方法,无需遍历系统中的所有文件,能够根据预设的文件修复条件确定需要修复的文件,有助于减少修复过程的耗时,实现快速修复;且本技术实施例的方法只对待修复文件执行修复,令总体的修复过程占用的内存空间降低,有助于帮助低内存的磁盘正常完整文件系统修复过程。附图说明15.附图用来提供对本技术技术方案的进一步理解,并且构成说明书的一部分,与本技术的实施例一起用于解释本技术的技术方案,并不构成对本技术技术方案的限制。16.图1为本技术实施例提供的linux文件系统修复方法的步骤流程图;17.图2为本技术实施例提供的linux文件系统修复系统的示意图;18.图3为本技术实施例提供的linux文件系统修复装置的示意图。具体实施方式19.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。20.需要说明的是,虽然在系统示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于系统中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。21.当linux系统因意外断电等情况关闭,linux的文件系统可能会出现损坏,导致无法正常进入系统。相关技术中一般使用fcsk(filesystemcheck,文件系统检查)修复工具对文件系统进行修复。其中,针对不同的文件系统,可以选择fsck.ext4、fsck.msdos、fsck.cramfs等修复工具进行修复。22.但是,fsck工具一般以磁盘为输入,在获悉文件系统格式的情况下,调用不同的修复工具对整个磁盘内的所有文件数据进行遍历检查修复,导致修复过程耗时较长,并且需要占用较大的内存空间。可以理解的是,随着使用时长增加,磁盘中的数据会逐渐增多,一方面修复工具遍历文件所需要的时间会变得更长,另一方面磁盘中剩余的可用空间可能会不足以令修复工具正常启动,导致修复过程失败。23.基于此,本技术提供了一种linux文件系统修复方法、系统、装置及存储介质,该方法首先在内核新增输入输出控制接口,然后通过输入输出控制接口获取待修复磁盘中的文件参数。打开待修复磁盘,根据预设的文件修复条件和文件参数,确定待修复磁盘中的待修复文件,并对待修复文件的元数据信息进行校验;当校验出现异常,调用修复工具对待修复文件进行修复;修复完成后,写入待修复磁盘,并在写入完成后关闭待修复磁盘。本技术实施例提出的文件系统修复方法,无需遍历系统中的所有文件,能够根据预设的文件修复条件确定需要修复的文件,有助于减少修复过程的耗时,实现快速修复;且本技术实施例的方法只对待修复文件执行修复,令总体的修复过程占用的内存空间降低,有助于帮助低内存的磁盘正常完整文件系统修复过程。24.下面结合附图,对本技术实施例作进一步阐述。25.参考图1,图1为本技术实施例提供的linux文件系统修复方法的步骤流程图,该方法包括但不限于步骤s100-s150:26.s100、在内核新增输入输出控制接口;27.具体地,在本技术实施例中,分别从linux系统的内核态和用户态两个方面进行改进,以实现linux文件系统修复方法。内核态和用户态是操作系统的两种运行级别,用户态主要是指操作系统运行用户程序,而内核态则是指操作系统运行操作系统程序和硬件。28.在本步骤中,首先需要操作系统以内核态的级别运行,在内核新增输入输出控制接口(input/outputcontrol,ioctl),该输入输出控制接口是设备驱动程序中设备控制接口的函数,通过该输入输出控制接口,操作系统能够在修复过程中获取到文件系统中文件的信息,具体将在以下步骤中展开阐述。29.s110、通过输入输出控制接口获取待修复磁盘中的文件参数;30.具体地,在内核设置好输入输出控制接口后,当linux系统意外关机或重启,文件系统发生损坏,则开始进行文件系统的修复过程,本技术实施例的修复过程在用户态中进行。可以理解的是,文件系统的修复以磁盘修复为单位。31.将可能损坏的文件系统中的所有磁盘确定为待修复磁盘,首先,处于用户态的操作系统将当前待修复磁盘进行挂载;然后操作系统调用内核中预先设置好的输入输出控制接口调用文件系统,获取到待修复磁盘中所有文件对应的文件参数;在获取完文件参数后,操作系统将当前挂载起来的待修复磁盘卸载。32.在本技术实施例中,输入输出控制接口需要获取的文件参数种类可以预先设定,文件参数包括但不限于文件的创建时间、修改或最新创建时间、文件存储位置、文件大小、文件输入输出口信息等等,根据用户的修复习惯,可以令操作系统选择采集不同的文件参数,本技术不对操作系统获取文件参数的具体种类和具体数量作具体限定。33.需要说明的是,首先,内核获取文件参数这一过程与修复工具遍历文件系统这一过程相比,速度大大加快,并且在后续步骤中,修复工具也无需进行遍历文件系统这一过程,因此本技术提出的修复方法具有耗时短、速度快的优势。另外,在操作系统挂在磁盘、调用输入输出控制接口获取文件参数,然后卸载磁盘的过程中,操作系统的内核能够同步完成对文件系统中无效数据和孤儿文件的修复,也能够达到缩短整体的修复时长的效果。34.s120、打开待修复磁盘,根据预设的文件修复条件和文件参数,确定待修复磁盘中的待修复文件;35.具体地,处于用户态的操作系统打开当前的待修复磁盘,检查获取到的文件参数,当存在文件参数与预设的文件修复条件相吻合,则可以确定当前文件参数所对应的文件为待修复磁盘中的待修复文件。也就是说在本技术实施例中,待修复文件是指可能出现异常的文件,操作系统需要调用修复工具对待修复文件进行修复。36.上述内容中提出,在挂载磁盘的时候,操作系统可以获取到待修复磁盘中文件对应的文件参数,因此,本技术实施例中提出通过预设的文件修复条件对文件参数中特定几项参数进行匹配,则能够确定待修复文件。37.在一些实施例中,文件系统损坏可能发生在操作系统读写数据的过程中,在这种情况下,一般文件系统中发生损坏的某个磁盘中最新修改或最新创建的文件,也可以理解为是磁盘中最后处理的文件。因此,可以设置文件修复条件为文件为待修复磁盘中最新修改或最新创建的文件。可以理解的是,如果需要确定磁盘中最新修改或最新创建的文件,则需要知道文件修改时间或文件创建时间。因此,如果选取本技术实施例中的文件修复条件实现快速修复,则操作系统获取的文件参数应至少包括文件修改时间或文件创建时间。通过查询当前待修复磁盘中所有文件的文件修改时间或文件创建时间,可以确定磁盘中最新修改或最新创建的文件,并将该文件确定为待修复文件,在后续步骤中对其进行检查修复。38.在另一些实施例中,操作系统也可以通过系统报错确定具体是哪些文件需要修复。例如,在操作系统获取的文件参数时,获取文件的输入输出口(io)信息,该输入输出口信息能够记录文件是否出现io出错。则在确定当前文件修复条件为文件的输入输出口出错的情况下,操作系统则可以通过文件参数中的输入输出口信息确定io出错的文件为待修复文件,在后续步骤中对其进行检查修复。39.可以理解的是,在本步骤中,本技术实施例提出的修复方法以匹配文件参数和文件修复条件的方法,快速定位可能受到损坏的待修复文件,免去了修复工具对文件系统进行遍历的过程,实现了快速修复的目。并且在不同的应用场景中,只需要对应调整文件修复条件,就可以进一步提高定位待修复文件的精度,在保证修复速度的同时提升准确率。40.s130、对待修复文件的元数据信息进行校验;41.具体地,通过上述步骤s120确定待修复文件,这些待修复文件是通过文件修复条件和文件参数匹配得到的可能出现损坏、异常的文件,而待修复文件是否真的损坏,还需要对这些待修复文件的元数据信息进行校验,以确定是否需要对待修复文件进行修复。42.不同文件系统中,文件的元数据并不相同,例如在ext4文件系统中,文件的元数据包括节点表(inodetable)、节点位图(inodebitmap)和数据块位图(datablockbitmap)等信息;而在fat文件系统中,文件的元数据则至少包括两个fat表、簇链、目录项和簇大小信息,下面以fat文件系统为例,阐述对待修复文件的元数据信息进行校验的具体过程。43.首先,fat文件系统的元数据中包括两个fat表,校验过程需要检查两个fat表是否一致,若两个fat表一致,则继续检查元数据中的簇链是否完整,若簇链也完整,则继续检查目录项中记录的的文件大小信息和簇大小信息是否一致,若文件大小信息和簇大小信息也一致,则说明当前待修复文件对应的元数据信息校验正常,当前待修复文件没有损坏,不需要进行修复。44.反之,在fat文件系统的元数据校验过程中,若出现两个fat表不一致、簇链不完整或者是目录项中的文件大小信息和簇大小信息不一致这三种情况中的至少一种,则说明当前待修复文件对应的元数据信息校验出现异常,当前待修复文件遭到损坏,需要进行修复。45.可以理解的是,上述内容中提到不同文件系统的元数据不相同,如果是对ext4文件系统进行修复,则对应校验inodetable、inodebitmap、datablockbitmap等信息是否有效,从而确定当前待修复文件是否损坏。其他文件系统也可以执行类似的校验过程,本技术不对文件系统的种类和具体的校验方式作具体限制。46.s140、当校验出现异常,调用修复工具对待修复文件进行修复;47.具体地,上述步骤s130中提到,若出现两个fat表不一致、簇链不完整或者是目录项中的文件大小信息和簇大小信息不一致这三种情况中的至少一种,则说明当前待修复文件对应的元数据信息校验出现异常,则针对不同的文件系统,调用对应的修复工具对待修复文件进行修复。48.s150、修复完成后,写入待修复磁盘,并在写入完成后关闭待修复磁盘;49.具体地,对待修复文件的修复完成之后,写入待修复磁盘,然后关闭待修复磁盘,完成对当前磁盘的文件修复工作。50.通过步骤s100-s150,本技术实施例提供了一种linux文件系统修复方法,首先在内核新增输入输出控制接口,然后通过输入输出控制接口获取待修复磁盘中的文件参数。打开待修复磁盘,根据预设的文件修复条件和文件参数,确定待修复磁盘中的待修复文件,并对待修复文件的元数据信息进行校验;当校验出现异常,调用修复工具对待修复文件进行修复;修复完成后,写入待修复磁盘,并在写入完成后关闭待修复磁盘。本技术实施例提出的文件系统修复方法,无需遍历系统中的所有文件,能够根据预设的文件修复条件确定需要修复的文件,有助于减少修复过程的耗时,实现快速修复;且本技术实施例的方法只对待修复文件执行修复,令总体的修复过程占用的内存空间降低,有助于帮助低内存的磁盘正常完整文件系统修复过程。51.下面结合linux系统在实际生活中的应用,阐述本技术实施例的linux文件系统修复方法。52.在生活中,linux系统可以存在于行车记录仪产品中,在行车记录仪采集数据,进行写卡的过程中,用户可能会出现异常拔卡行为,此时,文件系统中的最后一个文件(可能是最新创建或者最新修改的文件)损坏的可能性很大。则linux系统实现本技术实施例提出的linux文件系统修复方法:首先对待修复的磁盘进行挂载,并通过内核的ioctl获取磁盘中所有文件的文件创建时间或文件修改时间,并且在获取完文件参数之后卸载待修复磁盘。在上述过程中,内核同步完成对无效数据和孤儿文件的修复。然后操作系统打开待修复磁盘,根据文件参数确定待修复磁盘中的最新修改或最新创建的文件为待修复文件,并对待修复文件的元数据信息进行校验。当校验出现异常,调用修复工具对待修复文件进行修复;修复完成后,写入待修复磁盘,并在写入完成后关闭待修复磁盘。53.参照图2,图2为本技术实施例提供的linux文件系统修复系统的示意图,该系统200包括但不限于第一模块210、第二模块220、第三模块230、第四模块240、第五模块250和第六模块260。第一模块用于在内核新增输入输出控制接口;第二模块用于通过输入输出控制接口获取待修复磁盘中的文件参数;第三模块用于打开待修复磁盘,根据预设的文件修复条件和文件参数,确定待修复磁盘中的待修复文件;第四模块用于对待修复文件的元数据信息进行校验;第五模块用于当校验出现异常,调用修复工具对待修复文件进行修复;第六模块用于修复完成后,写入待修复磁盘,并在写入完成后关闭待修复磁盘。54.参考图3,图3为本技术实施例提供的linux文件系统修复装置的示意图,该装置300包括至少一个处理器310,还包括至少一个存储器320,用于存储至少一个程序;图3中以一个处理器及一个存储器为例。55.处理器和存储器可以通过总线或者其他方式连接,图3中以通过总线连接为例。56.存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。57.以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。58.本技术实施例还公开了一种计算机存储介质,其中存储有处理器可执行的程序,处理器可执行的程序在由处理器执行时用于实现本技术提出的方法。59.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。60.以上是对本技术的较佳实施进行了具体说明,但本技术并不局限于上述实施方式,熟悉本领域的技术人员在不违背本技术精神的前提下还可作出种种的等同变形或替换,这些等同的变形或替换均包含在本技术权利要求所限定的范围内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1