CN106709014B - 一种文件系统转换方法及装置 - Google Patents
一种文件系统转换方法及装置 Download PDFInfo
- Publication number
- CN106709014B CN106709014B CN201611221007.1A CN201611221007A CN106709014B CN 106709014 B CN106709014 B CN 106709014B CN 201611221007 A CN201611221007 A CN 201611221007A CN 106709014 B CN106709014 B CN 106709014B
- Authority
- CN
- China
- Prior art keywords
- ext
- metadata
- file
- data block
- block
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/164—File meta data generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/116—Details of conversion of file system types or formats
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种文件系统转换方法及其装置。在一种文件系统转换方法中,根据分区中文件分配表FAT文件系统的文件分配表和FAT目录项,确定FAT文件系统的目录结构和文件存储的簇,根据所述目录结构和所述文件存储的簇生成扩展文件系统EXT元数据,将所述EXT元数据写入所述分区。通过本申请提供的方案,在将分区的FAT文件系统转换到EXT的过程中,直接在分区中写入EXT元数据,不需要将全部文件拷贝到其它存储空间,节省了文件系统转换时间。
Description
技术领域
本申请涉及文件系统管理技术领域,尤其涉及一种文件系统转换方法及装置。
背景技术
文件分配表(英文:File Allocation Table,FAT)文件系统和扩展文件系统(英文:Extended file system,EXT)是两种常见类型的文件系统。FAT文件系统通常应用于DOS、Windows98和VxWorks等操作系统,EXT应用于Linux等操作系统。在对操作系统进行转换,例如将VxWorks转换为Linux时,操作系统使用的文件系统也需要从FAT文件系统转换到EXT。
文件系统转换过程中需要对存储器进行格式化,以便将FAT文件系统格式化为EXT。为避免存储器中的数据丢失,在格式化之前需要将存储器中的全部文件拷贝到其它存储空间,待格式化完成之后再将全部文件重新拷贝至所述存储器。因此,文件系统转换需要花费较多时间。
发明内容
本申请提供了一种文件系统转换方法及装置,有助于解决文件系统转换耗时较多的问题。
第一方面,提供了一种文件系统转换方法。所述方法应用于包括有处理器和存储器的计算机中,由处理器执行。所述存储器包括具有文件分配表FAT文件系统的分区,分区中包括FAT文件系统元数据和文件。FAT文件系统元数据包括文件分配表和FAT目录项。所述方法包括:
首先,根据文件分配表和FAT目录项,确定FAT文件系统的目录结构和文件存储的簇;其次,根据目录结构和文件存储的簇生成扩展文件系统EXT元数据,该EXT元数据中包括有索引节点和EXT目录项。其中索引节点记录EXT目录项将要存储的数据块和文件数据块,文件数据块为文件将要存储的数据块。文件数据块与文件存储的簇位于分区中的相同扇区。EXT目录项记录目录结构中目录的名称与索引节点的对应关系,以及目录结构中文件的名称与索引节点的对应关系;最后,将生成的EXT元数据写入分区。可选地,所述EXT元数据还包括超级块和组描述符表,所述方法在生成所述EXT元数据之后以及将所述EXT元数据写入分区之前,还包括:
获取搬移数据块的数据,搬移数据块为既属于EXT元数据块又属于文件数据块的数据块,其中所述EXT元数据块为EXT元数据将要存储的数据块,并且EXT元数据块是根据超级块、组描述符表、索引节点和EXT目录项来确定的;
以及将索引节点中记录的文件数据块中属于搬移数据块的数据块替换为空闲数据块,其中所述空闲数据块为分区中既不属于EXT元数据块又不属于文件数据块的数据块。
以上向分区写入EXT元数据前,提前将搬移数据块的数据提取出来,有助于避免EXT元数据写入时覆盖文件数据而使得文件数据丢失,并且写入前更新EXT元数据的索引节点,有助于快捷地从内存向分区一次性写入EXT元数据。
可选地,所述EXT元数据还包括超级块和组描述符表,所述方法在生成所述EXT元数据之后以及将所述EXT元数据写入分区之前,还包括:
获取搬移数据块的数据,搬移数据块为既属于EXT元数据块又属于文件数据块的数据块,其中EXT元数据块为EXT元数据将要存储的数据块,并且EXT元数据块是根据超级块、组描述符表、索引节点和EXT目录项来确定的;
以及,所述方法在将所述EXT元数据写入分区后,将索引节点中记录的文件数据块中属于搬移数据块的数据块替换为空闲数据块,所述空闲数据块为分区中既不属于EXT元数据块又不属于文件数据块的数据块。
以上向分区写入EXT元数据前,提前将搬移数据块的数据提取出来,有助于避免EXT元数据写入时覆盖文件数据而使得文件数据丢失,并且写入后再更新EXT元数据的索引节点,有助于将EXT文件系统生成和使用时间提前。
可选地,所述方法还包括在将所述EXT元数据写入分区前,对覆盖扇区的数据进行备份,其中覆盖扇区为分区中被所述FAT文件系统元数据或所述文件使用的扇区中位于所述EXT元数据块的扇区。提前备份覆盖扇区的数据有助于在文件系统转换发生错误时,恢复原有FAT文件系统。
可选地,所述方法还包括在获取所述搬移数据块的数据后,将所述搬移数据块的数据写入所述空闲数据块。该写入时机可以根据实际需要确定以便提高计算机处理效率。例如存在对搬移数据块的读取时再写入,或是处理器空闲或分区空闲时再写入。
通过以上第一方面的方法,在将分区的FAT文件系统转换到EXT的过程中,直接在分区中写入EXT元数据,不需要将全部文件拷贝到其它存储空间,节省了文件系统转换时间。
第二方面,提供了一种文件系统转换装置。所述装置应用于计算机中。所述计算机包括具有文件分配表FAT文件系统的分区,分区中包括FAT文件系统元数据和文件。FAT文件系统元数据包括文件分配表和FAT目录项。所述装置包括确定单元、生成单元和写入单元。
所述确定单元,用于根据所述文件分配表和所述FAT目录项,确定所述FAT文件系统的目录结构和所述文件存储的簇。
所述生成单元,用于根据所述目录结构和所述文件存储的簇生成扩展文件系统EXT元数据。所述EXT元数据包括索引节点和EXT目录项。所述索引节点记录所述EXT目录项将要存储的数据块和文件数据块,所述文件数据块为所述文件将要存储的数据块,所述文件数据块与所述文件存储的簇位于相同的扇区。所述EXT目录项记录所述目录结构中目录的名称与所述索引节点的对应关系,以及所述目录结构中文件的名称与所述索引节点的对应关系。
所述写入单元,用于将所述EXT元数据写入所述分区。
可选地,所述EXT元数据还包括超级块和组描述符表,所述装置还包括获取单元和替换单元。
所述获取单元,用于在所述生成单元生成所述EXT元数据之后以及所述写入单元将所述EXT元数据写入所述分区之前获取搬移数据块的数据。所述搬移数据块为既属于EXT元数据块又属于所述文件数据块的数据块,所述EXT元数据块为所述EXT元数据将要存储的数据块,其中所述EXT元数据块是根据所述超级块、所述组描述符表、所述索引节点和所述EXT目录项确定的。
所述替换单元,用于在所述获取单元获取所述搬移数据快的数据后,将所述索引节点中记录的所述文件数据块中属于所述搬移数据块的数据块替换为空闲数据块。所述空闲数据块为所述分区中既不属于所述EXT元数据块又不属于所述文件数据块的数据块。
可选地,所述EXT元数据还包括超级块和组描述符表,所述装置还包括获取单元和替换单元。
所述获取单元,用于在所述生成单元生成所述EXT元数据之后以及所述写入单元将所述EXT元数据写入所述分区之前获取搬移数据块的数据。所述搬移数据块为既属于EXT元数据块又属于所述文件数据块的数据块,所述EXT元数据块为所述EXT元数据将要存储的数据块,其中所述EXT元数据块是根据所述超级块、所述组描述符表、所述索引节点和所述EXT目录项确定的。
所述替换单元,用于在所述写入单元将所述EXT元数据写入所述分区后,将所述索引节点中记录的所述文件数据块中属于所述搬移数据块的数据块替换为所述空闲数据块。所述空闲数据块为所述分区中既不属于所述EXT元数据块又不属于所述文件数据块的数据块。
可选地,所述装置还包括备份单元。该备份单元用于在所述写入单元将所述EXT元数据写入所述分区前,对覆盖扇区的数据进行备份,所述覆盖扇区为所述分区中被所述FAT文件系统元数据或所述文件使用的扇区中位于所述EXT元数据块的扇区。
可选地,所述装置中的写入单元还用于在所述获取单元获取所述搬移数据块的数据后,将所述搬移数据块的数据写入所述空闲数据块。
第二方面的上述方案与第一方面描述内容中使用相同手段的对应方案具有相同的技术效果。
第三方面,提供一种包括处理器和存储器的计算机。所述存储器包括具有文件分配表FAT文件系统的分区,所述分区包括FAT文件系统元数据和文件,所述FAT文件系统元数据包括文件分配表和FAT目录项。所述存储器还存储有计算机程序指令,所述处理器读取所述计算机程序指令来执行第一方面提供的方法。
第三方面的上述方案与第一方面描述内容中使用相同手段的对应方案具有相同的技术效果。
附图说明
图1为本申请实施例提供的一种计算机的结构示意图;
图2为一种使用FAT文件系统的分区格式示意图;
图3为一种使用EXT的分区格式示意图;
图4为本申请实施例提供的一种文件系统转换方法的流程示意图;
图5为本申请实施例提供的将EXT元数据写入到FAT文件系统分区的数据覆盖类型示意图;
图6为本申请实施例提供的一种文件系统转换装置的结构示意图;
图7为本申请实施例提供的一种计算机的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式做出进一步地详细描述。
图1给出了一种计算机100的结构示意图。计算机100例如可以是主机、服务器、路由器或交换机等。计算机100包括处理器101和存储器102。存储器102例如可以是硬盘、紧凑式闪存(英文:Compact Flash,CF)卡等。所述硬盘可以是电子集成驱动器(英文:Integrated Drive Electronics,IDE)硬盘或串行高级技术附件(英文:Serial AdvancedTechnology Attachment,SATA)硬盘等。存储器102可以仅包括一个分区,例如分区1021,也可以包括多个分区,例如包括分区1021、1022和1023。每个所述分区都可以使用一种文件系统来管理文件数据。所述文件系统可以是FAT文件系统或EXT等。FAT文件系统可以应用于DOS、windows98和VxWorks等操作系统,例如可以是FAT16或FAT32。EXT可以被用于Linux等操作系统,例如可以是EXT2、EXT3或EXT4。
图2给出了一种使用FAT文件系统的分区的格式示意图。该使用FAT文件系统的分区包括元数据(英文:metadata)和文件数据。元数据是用于管理文件数据的数据,元数据进一步包括引导扇区、FSINFO、保留扇区、FAT1、FAT2、根目录和多个目录项。其中引导扇区可以用于记录例如本分区大小、FAT个数、每扇区字节数、每簇扇区数(1个簇例如包括8个扇区)、根目录起始簇号、FSINFO所在扇区和保留扇区数等。FSINFO可以用于记录例如空闲簇的数量以及下一可用簇的簇号等。FAT文件系统中存储空间以簇为分配单位,一个簇由一组连续的扇区组成。根据文件大小分配一个簇或是多个簇来进行存储。FAT1和FAT2两个文件分配表,其中FAT1是一组与簇号相对应的列表,FAT1描述簇的分配状态以及表明文件或目录的下一簇的簇号。FAT2通常为FAT1的备份。根目录包括多个目录项,用于记录根目录下的子目录和文件。每个记录子目录的目录项中包括子目录的名字和该子目录第一个簇的簇号等信息。每个记录文件的目录项中包括该文件的名字和该文件第一个簇的簇号等信息。除根目录下的目录项外,所述元数据还包括用于记录子目录下的目录和文件的目录项。每个用于记录子目录下的目录的目录项包括该子目录下的目录的名字和该子目录下的目录第一个簇的簇号等信息,每个用于记录子目录下的文件的目录项记录了该子目录下的文件的名字和该子目录下的文件第一个簇的簇号等信息。
图3中给出了一种使用EXT的分区的格式示意图。该使用EXT的分区包括多个块组,每个块组大小一致,EXT的元数据分布在每个块组中,每个块组中都包括元数据和文件数据。每个块组中的元数据是用于管理该块组中的文件数据的数据,每个块组中的元数据进一步包括超级块(英文:Super Block)、组描述符表(英文:Group Descriptor Table,GDT)、保留组描述符表(英文:Reserved Group Descriptor Table)、数据块位图(英文:DataBlock Bitmap)、索引节点位图(inode Bitmap)、索引节点表(inode Table)和多个目录项。其中超级块中用于记录整个文件系统有多少个块组、每个块组有多少个数据块、每个数据块包括多少个扇区(1个数据块例如包括8个扇区)、索引节点个数,以及每个索引节点占多少个字节等。组描述符表用于记录文件系统中所有块组的描述符,每个块组的描述符包括数据块位图起始块号、索引节点位图起始块号和索引节点表的起始块号等。数据块位图和索引节点位图分别用于记录块组中数据块和索引节点是否被使用。EXT中每个文件或目录对应一个索引节点。索引节点表包括EXT所有索引节点的信息,用于记录每个索引节点对应的数据块位置、对应的文件或目录包括的数据块数等,由此根据索引节点能够获取文件或目录的内容。目录项用于记录该目录下的文件的名字和该文件所对应的索引节点的对应关系,以及该目录下的子目录的名字以及该子目录所对应的索引节点的对应关系,由此根据文件的名字或子目录的名字能够获得对应的索引节点。
本申请实施例提供的文件系统转换方法,在将分区的FAT文件系统转换到EXT的过程中,直接在分区中写入EXT元数据,从而不需要将全部文件拷出,节省了文件系统转换时间。图4给出了本申请实施例提供的一种文件系统转换方法的流程示意图。该方法包括如下步骤:
S401、根据FAT文件系统元数据中的文件分配表和FAT目录项,确定FAT文件系统的目录结构和文件存储的簇。
假设该方法应用于图1所示的计算机100,由处理器101执行,进行文件系统转换的分区为分区1021。分区1021使用FAT文件系统,具有如图2所示的文件系统格式。处理器101根据分区1021的FAT文件系统元数据生成用于写入到分区1021的EXT元数据。其中处理器101根据FAT文件系统元数据中的文件分配表和FAT目录项,可以确定分区1021中FAT文件系统的目录结构和文件存储的簇。具体来说,引导扇区记录了FSINFO、FAT1、FAT2和根目录存储的扇区的位置。根据根目录中的目录项,可以获得根目录下包括的子目录和文件的名字和起始簇号等,根据文件分配表FAT可以获得对应于子目录和文件起始簇号的后续簇号,从而一方面确定文件存储的簇,另一方面从子目录实际存储的簇中可以进一步获得该子目录下的目录和文件的目录项。每个子目录下的目录的目录项包括该子目录下的目录的名字和该子目录下的目录第一个簇的簇号等信息,每个子目录下的文件的目录项记录了该子目录下的文件的名字和该子目录下的文件第一个簇的簇号等信息。再结合FAT1记录的后续簇号,可以进一步沿目录结构逐级向下获得各级目录和文件的信息由此,根据FAT文件系统元数据中的文件分配表和目录项,计算机100中的处理器101可以确定整个FAT文件系统的目录结构和文件存储的簇。
S402、根据所述目录结构和所述文件存储的簇生成扩展文件系统EXT元数据,所述EXT元数据包括索引节点和EXT目录项。
所述索引节点记录所述EXT目录项将要存储的数据块和文件数据块,所述文件数据块为所述文件将要存储的数据块。所述文件数据块与所述文件存储的簇位于相同的扇区,所述EXT目录项记录所述目录结构中目录的名称与所述索引节点的对应关系,以及所述目录结构中文件的名称与所述索引节点的对应关系。
举例来说,根据S401中确定的文件存储的簇可以获得这些文件的实际存储的扇区,并且在分配索引节点和在分配的索引节点中记录这些文件存储的数据块时,直接选择对应于这些实际存储的扇区的数据块,可以使得文件将要存储的数据块与文件存储的簇位于相同扇区。根据S401中确定的目录结构可以生成EXT目录项,该EXT目录项一方面记录文件的名称和索引节点的对应关系,另一方面记录目录的名称和索引节点的对应关系。例如可以采用从根目录开始逐级向下的生成方式,首先针对根目录下的目录和文件生成多个目录项,每个目录项记录一个根目录下的目录名称或文件名称(例如根目录下存在名称为etc的目录,名称abc的文件,则生成对应于目录etc的目录项和对应于文件abc的目录项),设置该多个目录项将要存储的数据块(例如块号100的数据块),设置2号索引节点(通常根目录对应2号索引节点)指向该多个目录项将要存储的数据块(例如块号100的数据块,由此2号索引节点指向的块号100的数据块将要存储对应于目录etc的目录项和对应于文件abc的目录项);对于文件abc来说,分配索引节点进行记录时,可以根据S401中确定的文件存储的簇,直接配置索引节点指向的数据块与文件存储的簇位于相同扇区;对于目录etc来说,进一步针对etc下的目录和文件生成目录项,并设置目录项将要存储的数据块(例如etc下存在名称为passwd的目录,对应于passwd的目录项被设置为将要存储在块号110的数据块),为目录passwd分配索引节点并设置该分配的索引节点指向块号110的数据块。通过以上过程逐级向下生成EXT元数据中的索引节点和EXT目录项。
可选地,还可以对EXT元数据中的其他数据进行预设定。举例来说,EXT元数据包括超级块、组描述符表、数据块位图、索引节点位图、索引节点表和目录项。所述预设定可以包括:设定分区1021中每个数据块包括多少个扇区、每个块组多少个块、包括多少个块组、索引节点数和每个索引节点占用多少个字节等,根据以上设定的数据生成超级块;设定每个块组中数据块位图起始块号、索引节点位图起始块号和索引节点表的起始块号等,根据以上起始块号数据生成组描述符表;根据数据块对应扇区的使用情况生成数据块位图,根据索引节点使用情况生成索引节点位图。
由于以上生成的EXT元数据记录的文件的存储位置与FAT文件系统中该文件的存储位置相同,使得在EXT中可以直接使用该文件,而不需要将文件拷贝到分区1021以外的存储空间,节省了文件系统转换时间。
S403、将生成的EXT元数据写入分区。
所述EXT元数据生成后,根据EXT元数据记录的信息,计算机100中的处理器101将所述EXT元数据写入分区1021中来构建分区的扩展文件系统EXT,使得处理器101能够通过读取所述EXT元数据来读取原有的文件。例如处理器101根据EXT元数据记录的块组总数、每个块组包括的数据块数、每个数据块包括的扇区数,可以获取每个块组的开始位置,在每个块组的开始位置写入各个组的超级块和组描述符表。其中第一个块组即块组0的开始位置可以从分区1021的第2个数据块开始,这是由于分区开头的第1个数据块经常会被保留用于存储引导扇区数据。再例如,处理器101根据EXT元数据中组描述符表记录的每个块组中数据块位图起始块号、索引节点位图起始块号和索引节点表的起始块号,可以将所述EXT元数据中的数据块位图、索引节点位图和索引节点表写入分区1021。
可选地,处理器101将EXT元数据写入到分区1021中可能会覆盖原有的数据。图5给出了将EXT元数据写入到FAT文件系统分区1021的数据覆盖类型示意图。转换前分区1021包括FAT文件系统元数据(简称FAT元数据)、FAT文件系统文件数据(简称FAT文件数据)和FAT文件系统空闲扇区(简称FAT空闲扇区)。处理器101将EXT元数据写入时包括三种覆盖类型:(1)EXT元数据覆盖FAT元数据、(2)EXT元数据覆盖FAT文件数据和(3)EXT元数据覆盖FAT空闲扇区。其中对于第(2)种覆盖类型,可以提前获取将要被覆盖的数据块的数据,以便减小有个别文件被覆盖的影响。
可选地,所述方法在S402和S403之间还可以包括S4021和S4022。
S4021:获取搬移数据块的数据,所述搬移数据块为既属于EXT元数据块又属于所述文件数据块的数据块,所述EXT元数据块为所述EXT元数据将要存储的数据块。对于以上第(2)种覆盖类型,S402生成的EXT元数据中,在索引节点记录了文件将要存储的数据块,在目录项记录了各级目录和文件的名字及对应的索引节点,由此可以确定分区1021中的文件将要存储的数据块(即文件数据块)。以及参见S403中确定EXT元数据将要存储的数据块的方法,可以确定分区1021中将要存储EXT元数据的数据块(即EXT元数据块)。其中所述EXT元数据块是根据所述超级块、所述组描述符表、所述索引节点和所述EXT目录项确定的。所述文件数据块和所述EXT元数据块的重合部分既位于文件数据块中也位于EXT元数据块中,也就是既属于EXT元数据块又属于所述文件数据块的数据块,即为需要搬移的搬移数据块。
S4022:将所述索引节点中记录的所述文件数据块中属于所述搬移数据块的数据块替换为空闲数据块,所述空闲数据块为所述分区中既不属于所述EXT元数据块又不属于所述文件数据块的数据块。分区中既不位于所述文件数据块中也不位于所述EXT元数据块的数据块,即既不属于所述EXT元数据块又不属于所述文件数据块的数据块,属于空闲数据块。将EXT元数据中的索引节点中记录的搬移数据块的块号替换为空闲数据块的块号,由此在需要根据EXT元数据的索引节点读取原搬移数据块的数据时,可以改为读取该用于替换原搬移数据块的空闲数据块。
由此向分区写入EXT元数据前,提前将搬移数据块的数据提取出来,有助于避免EXT元数据写入时覆盖文件数据而使得文件数据丢失,并且写入前更新EXT元数据的索引节点,有助于快捷地从内存向分区一次性写入EXT元数据。
可选地,所述方法还可以在S402和S403之间执行S4021,并在S403之后执行S4022。S4021和S4022的内容如上所述,不再赘述。由此向分区写入EXT元数据前,提前将搬移数据块的数据提取出来,有助于避免EXT元数据写入时覆盖文件数据而使得文件数据丢失,并且写入后再更新EXT元数据的索引节点,有助于将EXT文件系统生成和使用时间提前。
可选地,所述方法还包括在S4021之后,将所述搬移数据块的数据写入所述空闲数据块。处理器101将搬移数据块的数据写入的时机可以根据实际需要确定以便提高计算机处理效率。例如当存在或预期存在对搬移数据块的数据的读取时进行写入,或是处理器空闲时写入,或是分区不在读写状态时写入,有利于加快计算机对其他操作的响应时间,降低计算机处理负担。
可选地,所述方法还包括在S403之前,对覆盖扇区的数据进行备份,其中覆盖扇区为分区中被所述FAT文件系统元数据或所述文件使用的扇区中位于所述EXT元数据块的扇区。举例来说,根据FAT文件系统元数据中的引导扇区(包括FSINFO、FAT1、FAT2和根目录存储的扇区的位置等信息)、文件分配表FAT1和目录项,并参见S401中确定目录结构中各目录项存储的簇和文件存储的簇的方法,可以确定FAT文件系统元数据使用的扇区,还可以确定文件使用的扇区。以及参见S403中确定EXT元数据将要存储的数据块的方法,可以确定分区1021中将要存储EXT元数据块的扇区。由此,FAT文件系统元数据使用的扇区和所述文件使用的扇区中将要用来存储EXT元数据块的扇区的即为覆盖扇区。以上备份的覆盖扇区的数据可以保存在内存中、存储器102除分区1021以外的其他分区中或是其他存储器中。提前备份覆盖扇区的数据有助于在文件系统转换发生错误时,恢复原有FAT文件系统,提高了可靠性。
可选地,以上生成的EXT元数据可以在内存中全部完成构建再写入分区中,有助于加快文件系统转换速度。所述搬移数据块的数据也可以保存在内存中,随同EXT元数据写入分区,有助于进一步加快文件系统转换速度。
图6给出了本申请实施例提供的一种文件系统转换装置600的结构示意图。应用装置600的计算机包括具有文件分配表FAT文件系统的分区,分区中包括FAT文件系统元数据和文件。FAT文件系统元数据包括文件分配表和FAT目录项。该装置600包括确定单元601、生成单元602和写入单元603。该装置600可以应用于图1的计算机100中,执行图4所述的方法。
确定单元601,用于根据所述文件分配表和所述FAT目录项,确定所述FAT文件系统的目录结构和所述文件存储的簇。
生成单元602,用于根据确定单元601确定的所述目录结构和所述文件存储的簇生成扩展文件系统EXT元数据。所述EXT元数据包括索引节点和EXT目录项。所述索引节点记录所述EXT目录项将要存储的数据块和文件数据块,所述文件数据块为所述文件将要存储的数据块,所述文件数据块与所述文件存储的簇位于相同的扇区。所述EXT目录项记录所述目录结构中目录的名称与所述索引节点的对应关系,以及所述目录结构中文件的名称与所述索引节点的对应关系。
写入单元603,用于将生成单元602生成的所述EXT元数据写入所述分区。所述分区例如是图1中的分区1021,写入单元603在写入所述EXT元数据前,分区1021可以有例如图2所示的文件系统结构,写入单元603在写入所述EXT元数据后,分区1021可以有例如图3所示的文件系统结构。
可选地,所述EXT元数据还包括超级块和组描述符表,所述装置600还包括获取单元604和替换单元605。
获取单元604,用于在生成单元602生成所述EXT元数据之后以及所述写入单元将所述EXT元数据写入所述分区之前获取搬移数据块的数据。所述搬移数据块为既属于EXT元数据块又属于所述文件数据块的数据块,所述EXT元数据块为所述EXT元数据将要存储的数据块,其中所述EXT元数据块是根据所述超级块、所述组描述符表、所述索引节点和所述EXT目录项确定的。
替换单元605,用于在获取单元604获取所述搬移数据快的数据后,将所述索引节点中记录的所述文件数据块中属于所述搬移数据块的数据块替换为空闲数据块。所述空闲数据块为所述分区中既不属于所述EXT元数据块又不属于所述文件数据块的数据块。
可选地,以上所述替换单元605的功能可以更改为,用于在写入单元603将所述EXT元数据写入所述分区后,将所述索引节点中记录的所述文件数据块中属于所述搬移数据块的数据块替换为所述空闲数据块。所述空闲数据块为所述分区中既不属于所述EXT元数据块又不属于所述文件数据块的数据块。
可选地,所述装置600还包括备份单元606。该备份单元606用于在所述写入单元603将所述EXT元数据写入所述分区前,对覆盖扇区的数据进行备份,所述覆盖扇区为所述分区中被所述FAT文件系统元数据或所述文件使用的扇区中位于所述EXT元数据块的扇区。
可选地,所述装置600中的写入单元603还用于在所述获取单元获取所述搬移数据块的数据后,将所述搬移数据块的数据写入所述空闲数据块。
图7为本申请实施例提供的一种计算机700的结构示意图。该计算机700包括处理器701和存储器702。图7提供的计算机700可以为图1的计算机100,存储器702可以为图1中的存储器102。
存储器702包括具有文件分配表FAT文件系统的分区,所述分区包括FAT文件系统元数据和文件,所述FAT文件系统元数据包括文件分配表和FAT目录项。该分区可以为图1中的分区1021。
存储器702还存储有计算机程序指令,处理器701读取所述计算机程序指令来执行图4所述的方法。
图7提供的计算机700还可以包括图6所示的文件系统转换装置600,通过以上处理器701读取存储器702存储的计算机程序指令实现文件系统转换装置600各个单元的功能。
以上处理器101和701包括但不限于中央处理器(英文:Central ProcessingUnit,简称:CPU),网络处理器(英文:Network Processor,简称:NP),专用集成电路(英文:Application-Specific Integrated Circuit,简称:ASIC)或上述种类的处理器的组合。
应理解,在本申请的各种实施例中,上述各方法的序号的大小并不意味着执行顺序的先后,各方法的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的电路及方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
Claims (10)
1.一种文件系统转换方法,其特征在于,所述方法应用于计算机中,所述计算机包括处理器和存储器,所述存储器包括具有文件分配表FAT文件系统的分区,所述分区包括FAT文件系统元数据和文件,所述FAT文件系统元数据包括文件分配表和FAT目录项,所述方法由所述处理器执行,所述方法包括:
根据所述文件分配表和所述FAT目录项,确定所述FAT文件系统的目录结构和所述文件存储的簇;
根据所述目录结构和所述文件存储的簇生成扩展文件系统EXT元数据,所述EXT元数据包括索引节点和EXT目录项,所述索引节点记录所述EXT目录项将要存储的数据块和文件数据块,所述文件数据块为所述文件将要存储的数据块,所述文件数据块与所述文件存储的簇位于相同的扇区,所述EXT目录项记录所述目录结构中目录的名称与所述索引节点的对应关系,以及所述目录结构中文件的名称与所述索引节点的对应关系;
将所述EXT元数据写入所述分区。
2.如权利要求1所述的方法,其特征在于,所述EXT元数据还包括超级块和组描述符表,所述方法在生成所述EXT元数据之后以及将所述EXT元数据写入所述分区之前,还包括:
获取搬移数据块的数据,所述搬移数据块为既属于EXT元数据块又属于所述文件数据块的数据块,所述EXT元数据块为所述EXT元数据将要存储的数据块,其中所述EXT元数据块是根据所述超级块、所述组描述符表、所述索引节点和所述EXT目录项确定的;
将所述索引节点中记录的所述文件数据块中属于所述搬移数据块的数据块替换为空闲数据块,所述空闲数据块为所述分区中既不属于所述EXT元数据块又不属于所述文件数据块的数据块。
3.如权利要求1所述的方法,其特征在于,所述EXT元数据还包括超级块和组描述符表,所述方法在生成所述EXT元数据之后以及将所述EXT元数据写入所述分区之前,还包括:
获取搬移数据块的数据,所述搬移数据块为既属于EXT元数据块又属于所述文件数据块的数据块,所述EXT元数据块为所述EXT元数据将要存储的数据块,其中所述EXT元数据块是根据所述超级块、所述组描述符表、所述索引节点和所述EXT目录项确定的;
以及,所述方法在将所述EXT元数据写入所述分区后,将所述索引节点中记录的所述文件数据块中属于所述搬移数据块的数据块替换为空闲数据块,所述空闲数据块为所述分区中既不属于所述EXT元数据块又不属于所述文件数据块的数据块。
4.如权利要求2或3所述的方法,其特征在于,所述方法还包括:
在将所述EXT元数据写入所述分区前,对覆盖扇区的数据进行备份,所述覆盖扇区为所述分区中被所述FAT文件系统元数据或所述文件使用的扇区中位于所述EXT元数据块的扇区。
5.如权利要求2或3所述的方法,其特征在于,所述方法还包括:在获取所述搬移数据块的数据后,将所述搬移数据块的数据写入所述空闲数据块。
6.一种文件系统转换装置,其特征在于,所述装置应用于计算机中,所述计算机包括具有文件分配表FAT文件系统的分区,所述分区包括FAT文件系统元数据和文件,所述FAT文件系统元数据包括文件分配表和FAT目录项,所述装置包括:
确定单元,用于根据所述文件分配表和所述FAT目录项,确定所述FAT文件系统的目录结构和所述文件存储的簇;
生成单元,用于根据所述目录结构和所述文件存储的簇生成扩展文件系统EXT元数据,所述EXT元数据包括索引节点和EXT目录项,所述索引节点记录所述EXT目录项将要存储的数据块和文件数据块,所述文件数据块为所述文件将要存储的数据块,所述文件数据块与所述文件存储的簇位于相同的扇区,所述EXT目录项记录所述目录结构中目录的名称与所述索引节点的对应关系,以及所述目录结构中文件的名称与所述索引节点的对应关系;
写入单元,用于将所述EXT元数据写入所述分区。
7.如权利要求6所述的装置,其特征在于,所述EXT元数据还包括超级块和组描述符表,所述装置还包括:
获取单元,用于在所述生成单元生成所述EXT元数据之后以及所述写入单元将所述EXT元数据写入所述分区之前获取搬移数据块的数据,所述搬移数据块为既属于EXT元数据块又属于所述文件数据块的数据块,所述EXT元数据块为所述EXT元数据将要存储的数据块,其中所述EXT元数据块是根据所述超级块、所述组描述符表、所述索引节点和所述EXT目录项确定的;
替换单元,用于在所述获取单元获取所述搬移数据快的数据后,将所述索引节点中记录的所述文件数据块中属于所述搬移数据块的数据块替换为空闲数据块,所述空闲数据块为所述分区中既不属于所述EXT元数据块又不属于所述文件数据块的数据块。
8.如权利要求6所述的装置,其特征在于,所述EXT元数据还包括超级块和组描述符表,所述装置还包括:
获取单元,用于在所述生成单元生成所述EXT元数据之后以及所述写入单元将所述EXT元数据写入所述分区之前获取搬移数据块的数据,所述搬移数据块为既属于EXT元数据块又属于所述文件数据块的数据块,所述EXT元数据块为所述EXT元数据将要存储的数据块,其中所述EXT元数据块是根据所述超级块、所述组描述符表、所述索引节点和所述EXT目录项确定的;
替换单元,用于在所述写入单元将所述EXT元数据写入所述分区后,将所述索引节点中记录的所述文件数据块中属于所述搬移数据块的数据块替换为空闲数据块,所述空闲数据块为所述分区中既不属于所述EXT元数据块又不属于所述文件数据块的数据块。
9.如权利要求7或8所述的装置,其特征在于,所述装置还包括:
备份单元,用于在所述写入单元将所述EXT元数据写入所述分区前,对覆盖扇区的数据进行备份,所述覆盖扇区为所述分区中被所述FAT文件系统元数据或所述文件使用的扇区中位于所述EXT元数据块的扇区。
10.如权利要求7或8所述的装置,其特征在于,所述写入单元还用于:在所述获取单元获取所述搬移数据块的数据后,将所述搬移数据块的数据写入所述空闲数据块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611221007.1A CN106709014B (zh) | 2016-12-26 | 2016-12-26 | 一种文件系统转换方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611221007.1A CN106709014B (zh) | 2016-12-26 | 2016-12-26 | 一种文件系统转换方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106709014A CN106709014A (zh) | 2017-05-24 |
CN106709014B true CN106709014B (zh) | 2020-08-25 |
Family
ID=58902708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611221007.1A Active CN106709014B (zh) | 2016-12-26 | 2016-12-26 | 一种文件系统转换方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106709014B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019204853A1 (en) * | 2018-04-24 | 2019-10-31 | Vorteil.io Pty Ltd | Filesystems |
CN110569218B (zh) * | 2019-08-01 | 2021-11-23 | 厦门市美亚柏科信息股份有限公司 | 一种ext文件系统离线修改方法、装置及存储介质 |
CN112800005B (zh) * | 2021-01-22 | 2023-01-03 | 中孚安全技术有限公司 | 一种文件系统深度检查方法、系统、终端及存储介质 |
CN113253945B (zh) * | 2021-07-08 | 2021-09-28 | 成都易我科技开发有限责任公司 | 磁盘卷变簇的方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799691A (zh) * | 2012-08-15 | 2012-11-28 | 深圳市宏电技术股份有限公司 | 文件系统转换访问方法及文件系统转换访问设备 |
CN103198102A (zh) * | 2013-03-20 | 2013-07-10 | 广东欧珀移动通信有限公司 | 一种Android设备内置硬盘文件系统的转换方法和装置 |
CN104951482A (zh) * | 2014-03-31 | 2015-09-30 | 炬芯(珠海)科技有限公司 | 一种操作Sparse格式的镜像文件的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9824090B2 (en) * | 2015-04-09 | 2017-11-21 | Sophos Limited | Emulating transparent file processing |
-
2016
- 2016-12-26 CN CN201611221007.1A patent/CN106709014B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799691A (zh) * | 2012-08-15 | 2012-11-28 | 深圳市宏电技术股份有限公司 | 文件系统转换访问方法及文件系统转换访问设备 |
CN103198102A (zh) * | 2013-03-20 | 2013-07-10 | 广东欧珀移动通信有限公司 | 一种Android设备内置硬盘文件系统的转换方法和装置 |
CN104951482A (zh) * | 2014-03-31 | 2015-09-30 | 炬芯(珠海)科技有限公司 | 一种操作Sparse格式的镜像文件的方法及装置 |
Non-Patent Citations (1)
Title |
---|
EXT2文件系统;匿名;《博客园URL:https://www.cnblogs.com/rama/p/4362683.html》;20140426;第1-2页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106709014A (zh) | 2017-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10430286B2 (en) | Storage control device and storage system | |
US10977124B2 (en) | Distributed storage system, data storage method, and software program | |
KR100622801B1 (ko) | 파일 시스템 액세스 방법, 파일 시스템 복원 방법, 컴퓨터 판독 가능 기록 매체 및 데이터 처리 시스템 | |
US8924664B2 (en) | Logical object deletion | |
US8818950B2 (en) | Method and apparatus for localized protected imaging of a file system | |
US8024383B2 (en) | Fat directory structure for use in transaction safe file | |
US7930559B1 (en) | Decoupled data stream and access structures | |
US7634627B1 (en) | System and method for performing extent level backups that support single file restores | |
JP6501916B2 (ja) | ファイルストレージにおけるインデックス付け実施方法及びシステム | |
CN106709014B (zh) | 一种文件系统转换方法及装置 | |
US20110010496A1 (en) | Method for management of data objects | |
US7415653B1 (en) | Method and apparatus for vectored block-level checksum for file system data integrity | |
EP3092556B1 (en) | Systems and methods for fail-safe operations of storage devices | |
US9940331B1 (en) | Proactive scavenging of file system snaps | |
CN112463753B (zh) | 一种区块链数据存储方法、系统、设备及可读存储介质 | |
CN113568582B (zh) | 数据管理方法、装置和存储设备 | |
CN110597762A (zh) | 文件处理方法、装置、设备及存储介质 | |
CN110147203B (zh) | 一种文件管理方法、装置、电子设备及存储介质 | |
JP4755244B2 (ja) | 情報生成方法、情報生成プログラム及び情報生成装置 | |
CA2825891A1 (en) | Storage system for storing data in a plurality of storage devices | |
CN113419897A (zh) | 一种文件处理方法、装置、电子设备及其存储介质 | |
US11513702B2 (en) | Placement of metadata on data storage drives in a first storage enclosure of a data storage system | |
CN114217741A (zh) | 存储装置的存储方法及存储装置 | |
CN109947600B (zh) | 一种基于Ceph的文件恢复方法、装置、设备及介质 | |
CN109241011B (zh) | 一种虚拟机文件处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211222 Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province Patentee after: Super fusion Digital Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |