一种快速合并磁盘分区的系统及方法与流程

文档序号:18074154发布日期:2019-07-03 04:06阅读:574来源:国知局
一种快速合并磁盘分区的系统及方法与流程

本发明涉及计算机技术领域,更具体地涉及一种快速合并磁盘分区的系统及方法。



背景技术:

当目前系统进行磁盘分区管理时,通常涉及到对分区进行合并。之前的系统在进行分区合并时,通常是将旧的,处于磁盘末尾分区的文件,拷贝到首个分区中,然后将删除处于磁盘末尾分区的文件。当首个分区空间不够时,将磁盘末尾分区的文件分配表和分区相关标志向后移动,直到移动到首个未移动的文件处为止。调整文件分配表和分区相关记录,直到符合当前系统状况。重复上面的动作,直到末尾分区的文件分配表为空为止。目前的合并分区的方法需要拷贝文件,在合并相邻分区时需要大量的时间,拷贝大量的文件并进行随机寻道,效率较低。



技术实现要素:

为了解决上述技术问题,提供了根据本发明的一种快速合并磁盘分区的系统及方法。

根据本发明的第一方面,提供了一种快速合并磁盘分区的系统。该系统包括:分区表解析模块,用于解析出任意磁盘分区的物理地址,所述磁盘分区不少于两个;分区解析模块,用于基于所述物理地址判断任意两个磁盘分区是否相互连接,若不相互连接,则报错退出,若相互连接,则分别对相互连接的磁盘分区的第一分区和第二分区进行解析,获取文件分配表位置1和文件分配表位置2;文件分配表提取模块,用于基于所述文件分配表位置2提取所述第二分区的文件分配记录;冲突解决模块,用于比对所述第一分区和所述第二分区中的文件名,若有文件名相同,则对所述第二分区的文件名进行修改;文件分配表写入模块,用于基于文件分配表位置1将所述第二分区的文件分配记录写入所述第一分区;分区表写入模块,用于删除所述第二分区,并将被写入的所述第一分区的长度记录信息延长到所述第二分区的结束点。

在一些实施例中,系统包括:信息修正模块,用于修正被写入的所述第一分区的信息,使之符合实际分区数据情况。

在一些实施例中,所述文件分配记录包括文件名、文件开始点、结束点、分配区块物理地址。

在一些实施例中,所述对所述第二分区的文件名进行修改包括给出新的文件名、在文件名后加一些随机字符。

在一些实施例中,所述用于修正被写入的所述第一分区的信息包括空余区块记录、大小记录、日志信息。

根据本发明的第二方面,提供一种快速合并磁盘分区的方法,该方法包括:解析出任意磁盘分区的物理地址,所述磁盘分区不少于两个;基于所述物理地址判断任意两个磁盘分区是否相互连接,若不相互连接,则报错退出,若相互连接,则分别对相互连接的磁盘分区的第一分区和第二分区进行解析,获取文件分配表位置1和文件分配表位置2;基于所述文件分配表位置2提取所述第二分区的文件分配记录;比对所述第一分区和所述第二分区中的文件名,若有文件名相同,则对所述第二分区的文件名进行修改;将所述第二分区的文件分配记录写入所述第一分区;删除所述第二分区,并将被写入的所述第一分区的长度记录信息延长到所述第二分区的结束点。

在一些实施例中,所述方法包括:修正被写入的所述第一分区的信息,使之符合实际分区数据情况。

在一些实施例中,所述文件分配记录包括文件名、文件开始点、结束点、分配区块物理地址。

在一些实施例中,所述对所述第二分区的文件名进行修改包括给出新的文件名、在文件名后加一些随机字符。

在一些实施例中,所述修正被写入的所述第一分区的信息包括空余区块记录、大小记录、日志信息。

本发明所提供的技术方案,直接解析第二分区的内容,并获取第二个分区每个文件的物理位置,然后移除第二分区的分区表等分区记录信息,在第一个分区的文件分配表中新增项,写入第二分区的全部文件的文件名等信息,将两个分区合并成一个分区。本发明只需批量扫描磁盘文件分配记录,并批量添加磁盘文件分配记录,无需移动原始文件内容,由于文件分配记录的聚集性,可以批量获取写入,极大的减少IO次数,提高速度。

附图说明

为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为根据本发明实施例的一种快速合并磁盘分区的系统的框图;

图2为根据本发明实施例的一种快速合并磁盘分区的方法的流程图。

具体实施方式

下面参照附图对本发明的优选实施例进行详细说明,在描述过程中省略了对于本发明来说是不必要的细节和功能,以防止对本发明的理解造成混淆。虽然附图中显示了示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本发明的范围完整的传达给本领域的技术人员。

本发明提供的方法是当分区相邻,且分区内所有文件均按原样存在,即分区未加密时,直接解析在磁盘尾部分区的磁盘文件分配表和文件所在的区块,计算该区块在按照在磁盘头部分区的相对位置,并在磁盘头部分区上新增磁盘文件分配表项指向该区块。移除第二个分区的全部磁盘分配表记录,并将第二个分区未能拆解的部分作为空白块处理,修改区块分配记录和日志系统等内容,使其与系统一致,同时修改分区表,抹去尾部分区的记录,并扩充头部分区记录的分配空间,使其与系统一致。

图1为根据本发明实施例的一种快速合并磁盘分区的系统的框图。如图1所述,系统可以包括:分区表解析模块110、分区解析模块120、文件分配表提取模块130、冲突解决模块140、文件分配表写入模块150、分区表写入模块160、信息修正模块170。

分区表解析模块110,用于解析出任意磁盘分区的物理地址,磁盘分区不少于两个。

分区解析模块120,用于基于物理地址判断任意两个磁盘分区是否相互连接,若不相互连接,则报错退出,若相互连接,则分别对相互连接的磁盘分区的第一分区和第二分区进行解析,获取文件分配表位置1和文件分配表位置2。

分区解析模块110和分区表解析模块120可使用fdisk、sfdisk等开源工具的相关模块,其本质为对磁盘分区表的解析和修改。

文件分配表提取模块130,用于基于文件分配表位置2提取第二分区的文件分配记录。

文件分配记录包括文件名、文件开始点、结束点、分配区块物理地址。

冲突解决模块140,用于比对第一分区和第二分区中的文件名,若有文件名相同,则对第二分区的文件名进行修改。

冲突解决模块140本质上是一个用户逻辑模块,该模块起当文件名重复时给出新的文件名的作用,通常的解决方法是在文件名后加一些随机字符,主要是对第二分区的文件名进行修改。

文件分配表写入模块150,用于基于文件分配表位置1将第二分区的文件分配记录写入第一分区。

文件分配表提取模块130和文件分配表写入模块150可参考linux kernel和相关磁盘开源代码中对对应文件系统的目录、文件读取和写入相关信息。

分区表写入模块160,用于删除第二分区,并将被写入的第一分区的长度记录信息延长到第二分区的结束点。

一些实施例中,系统还包括:

信息修正模块170,用于修正被写入的第一分区的信息,使之符合实际分区数据情况。

用于修正被写入的第一分区的信息包括空余区块记录、大小记录、日志信息等。

具体的,首先,使用分区表解析模块110解析出第一分区、第二分区的物理地址范围,并判断两个分区是否相互连接,若不相互连接,则报错退出。若相互连接,使用分区解析模块120对第二分区进行解析,得到第二分区的文件分配表位置,然后使用文件分配表提取模块130提取出第二分区的文件分配记录。

其次,使用分区解析模块120对第一分区进行解析,得到第一分区的文件分配表位置,然后使用文件分配表写入模块150,将第二分区的文件分配记录写入第一分区。若有文件名的冲突,则使用冲突解决模块140进行解决,并将解决后的内容写入第一分区。

最后,使用分区表写入模块160删除第二分区,并将第一分区的长度记录信息延长到第二分区的末尾。使用信息修正模块170修正分区的空余区块记录、大小记录、日志信息等内容。

图2示出了根据本发明实施例的一种快速合并磁盘分区的方法的流程图。如图2所示,方法包括如下步骤:

S210,解析出任意磁盘分区的物理地址。

本实施例中磁盘分区不少于两个,通过本方法可以对任意相邻的磁盘分区进行合并处理。

S220,基于物理地址判断任意两个磁盘分区是否相互连接,若不相互连接,则报错退出。

S230,若相互连接则分别对相互连接的磁盘分区的第一分区和第二分区进行解析,获取文件分配表位置1和文件分配表位置2。

S240,基于文件分配表位置2提取第二分区的文件分配记录。

文件分配记录包括文件名、文件开始点、结束点、分配区块物理地址。

S250,比对第一分区和第二分区中的文件名,若有文件名相同,则对第二分区的文件名进行修改。

对第二分区的文件名进行修改包括给出新的文件名、在文件名后加一些随机字符等方式。

S260,将第二分区的文件分配记录写入第一分区。

在第一个分区的文件分配表中新增项,写入第二分区的全部文件的文件分配记录等信息。

S270,删除第二分区,并将被写入的第一分区的长度记录信息延长到第二分区的结束点。

删除第二分区的分区表等分区补记任务,第二个分区相当于不存在。最后将第一分区的分区表中的分区结束信息修改为第二分区的分区结束点。

一些实施例中,还包括下面的步骤:

S280,修正被写入的第一分区的信息,使之符合实际分区数据情况。

修正被写入的第一分区的信息包括空余区块记录、大小记录、日志信息。

至此已经结合优选实施例对本发明进行了描述。应该理解,本领域技术人员在不脱离本发明的精神和范围的情况下,可以进行各种其它的改变、替换和添加。因此,本发明的范围不局限于上述特定实施例,而应由所附权利要求所限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1