操作系统热备份方法、装置及文件系统重构方法

文档序号:6489848阅读:212来源:国知局
操作系统热备份方法、装置及文件系统重构方法
【专利摘要】本发明涉及信息安全领域,公开了一种操作系统热备份方法、装置及文件系统重构方法。本发明中,直接对数据块而不是文件进行备份,如果在备份过程中有覆盖性写入操作,则在覆盖前先将要被覆盖的数据块保存到临时文件中,备份时如果数据块存在于临时文件中,则直接备份临时文件中的数据块,这样备份到的数据块都是开始备份那一时刻的数据,保证了备份数据的完整性和一致性,而且在对操作系统的备份过程中该操作系统仍可以正常运行。基于驱动级的数据块备份技术,增加了对增量备份和差量备份的完美支持,可以节省存储空间,而且备份速度也更快。
【专利说明】操作系统热备份方法、装置及文件系统重构方法
【技术领域】
[0001]本发明涉及信息安全领域,特别涉及操作系统热备份和恢复技术。
【背景技术】
[0002]当今社会科技发展日新月异,Windows操作系统作为桌面操作系统的主流,对系统容灾的需求显得越来越重要,对Windows操作系统的备份在国内基本没有类似研究,即使有也是那种关闭操作系统后进行的备份,也就是冷备份,无法满足在操作系统运行的过程中进行系统备份。
[0003]这里,需要说明的是,操作系统冷备份,是指操作系统在非运行状态下进行备份。
[0004]现有技术是通过备份文件的方式来备份系统,但是,这种技术存在如下方面的缺点。
[0005]( 1)备份文件时存在文件被其他程序以独占的方式打开而无法备份的现象;
[0006]( 2 )文件备份无法备份一些系统文件;
[0007](3)文件备份不能完全保证数据的一致性,比如备份一个文件时,在备份了文件的上半部分时用户将此文件内容全部修改,此时再备下半部分的时侯,所备的上半部分是修改前的,下半部分是修改后的,所以上下两部分存在数据不一致现象;
[0008](4)文件备份不能备份已删掉但没有在回收站中清除的文件;
[0009](5)文件备份的速度比较慢;
[0010](6)如果文件的文件夹深度太深,可能会耗费大量内存甚至导致程序崩溃;
[0011](7)文件级别的备份很难支持增量备份和差量备份。

【发明内容】

[0012]本发明的目的在于提供一种操作系统热备份方法、装置及文件系统重构方法,这样备份到的数据块都是开始备份那一时刻的数据,保证了备份数据的完整性和一致性,而且在对操作系统的备份过程中该操作系统仍可以正常运行。
[0013]为解决上述技术问题,本发明的实施方式公开了一种操作系统全量热备份方法,包括以下步骤:
[0014]记录操作系统所在的存储介质中各数据块在开始备份时刻的使用状态记录;
[0015]在备份过程中,如果有向存储介质的写入操作,则根据使用状态记录判断要写入的数据块是否已被使用,如果已被使用则先将该数据块中原来的数据保存到临时文件后再向该数据块写入新数据,否则直接向该数据块写入新数据;
[0016]对使用状态记录中已被使用的数据块进行读取和备份,其中在读取要备份的数据块时,如果该数据块中的数据已被保存到临时文件中,则从临时文件中读取该数据块的数据进行备份,否则从存储介质中读取该数据块进行备份。
[0017]本发明的实施方式还公开了一种操作系统增量热备份方法,包括以下步骤:
[0018]对操作系统自上一次备份后的数据写入状态进行监控和记录,形成写入状态记录;
[0019]记录操作系统所在的存储介质中各数据块在开始备份时刻的使用状态记录;
[0020]在备份过程中,如果有向存储介质的写入操作,则根据使用状态记录判断要写入的数据块是否已被使用,如果已被使用则先将该数据块中原来的数据保存到临时文件后再向该数据块写入新数据,否则直接向该数据块写入新数据;
[0021]根据写入状态记录和使用状态记录,对既被写入过又被使用的数据块进行读取和备份,其中在读取要备份的数据块时,如果该数据块中的数据已被保存到临时文件中,则从临时文件中读取该数据块的数据进行备份,否则从存储介质中读取该数据块进行备份。
[0022]本发明的实施方式还公开了一种操作系统差量热备份方法,包括以下步骤:
[0023]对操作系统自上一次全量备份后的数据写入状态进行监控和记录,形成写入状态记录;
[0024]记录操作系统所在的存储介质中各数据块在开始备份时刻的使用状态记录;
[0025]在备份过程中,如果有向存储介质的写入操作,则根据使用状态记录判断要写入的数据块是否已被使用,如果已被使用则先将该数据块中原来的数据保存到临时文件后再向该数据块写入新数据,否则直接向该数据块写入新数据;
[0026]根据写入状态记录和使用状态记录,对既被写入过又被使用的数据块进行读取和备份,其中在读取要备份的数据块时,如果该数据块中的数据已被保存到临时文件中,则从临时文件中读取该数据块的数据进行备份,否则从存储介质中读取该数据块进行备份。
[0027]本发明的实施方式还公开了一种文件系统重构方法,包括以下步骤:
[0028]利用上文所述的任一种操作系统热备份方法,对操作系统进行热备份;
[0029]根据原分区的保留扇区大小设定被还原分区的保留扇区大小,其中保留扇区的第一个扇区作为启动扇区;
[0030]根据启动扇区中根入口的数据块号计算根目录的大小,按照从目标分区起始位置开始找空闲数据块的规则在目标分区中分配相同大小的空间,将目录项拷贝至目标分区所分配的空间,并对文件分配表作相应的已使用标记;
[0031 ] 根据根目录大小得到根目录中目录项个数,读取目录项的内容,根据目录项找到目录项所指示的文件的的起始位置,按数据块大小读取文件的数据,再按从目标分区起始位置开始找空闲数据块的规则,将文件数据写入所找到的空闲数据块中,并在文件分配表中作数据块的已使用记录;
[0032]更新目录项所指示的文件的起始数据块字段并回写至该目录项在目标分区的对应项位置,然后根据上一个数据块所指示的位置找到下一个数据块的位置,继续分配空间并在文件分配表中作已使用标记和拷贝数据,直至数据块指示的数据块号为OxFFFFFFFF。
[0033]本发明的实施方式还公开了一种文件系统重构方法,包括以下步骤:
[0034]利用上文所述的任一种操作系统热备份方法,对操作系统进行热备份;
[0035]打开备份文件,通过分析数据块的信息初始化原备份分区卷信息结构;
[0036]将原分区的启动文件拷贝至目标分区的起始位置,计算主文件表中前4个文件记录的备份的起始位置,按从分区起始位置找空闲数据块的规则将主文件表中前4个文件记录的备份拷贝至目标分区;
[0037]修改目标分区启动文件的第一个扇区的内容;[0038]读取主文件表属性得到主文件表大小,初始化目标分区的卷信息结构,更新主文件表的文件记录,更新主文件表中前4个文件记录的备份的文件记录,更新使用状态记录的文件记录,更新坏数据块文件的文件记录,读取原分区数据块使用状态记录大小和目标分区数据块使用状态记录大小,移动所有主文件表的数据到目标分区,更新主文件表文件记录中数据块空间分配的位置记录信息,根据数据块空间的分配状况在分区使用状态记录中作相应标记,完成整个主文件表的还原;
[0039]根据主文件表的大小计算文件记录个数,根据文件记录个数拷贝主文件表外的所有文件;
[0040]根据新生成的分区使用状态记录信息重写目标分区的使用状态记录。
[0041]本发明的实施方式还公开了一种操作系统全量热备份装置,包括:
[0042]第一使用状态记录单元,用于记录操作系统所在的存储介质中各数据块在开始备份时刻的使用状态记录;
[0043]第一判断单元,用于在备份的过程中,如果有向存储介质的写入操作,则根据第一使用状态记录单元记录的使用状态记录判断要写入的数据块是否已经被使用;
[0044]第一写入单元,用于根据第一判断单元的判断,如果要写入的数据块已被使用则将该数据块中原来的数据保存到临时文件后再向该数据块写入新数据,否则直接向该数据块写入新数据;
[0045]第一备份单元,用于对使用状态记录中已被使用的数据块进行读取和备份,其中在读取要备份的数据块时,如果该数据块中的数据已被保存到临时文件中,则从临时文件中读取该数据块的数据进行备份,否则从存储介质中读取该数据块进行备份。
[0046]本发明的实施方式还公开了一种操作系统增量热备份装置,包括:
[0047]第一写入状态记录单元,用于对操作系统自上一次备份后的数据写入状态进行监控和记录,形成写入状态记录;
[0048]第二使用状态记录单元,用于记录操作系统所在的存储介质中各数据块在开始备份时刻的使用状态记录;
[0049]第二判断单元,用于在备份的过程中,如果有向存储介质的写入操作,则根据第二使用状态记录单元记录的使用状态记录判断要写入的数据块是否已被使用;
[0050]第二写入单元,用于根据第二判断单元的判断,如果要写入的数据块已被使用则将该数据块中原来的数据保存到临时文件后再向该数据块写入新数据,否则直接向该数据块写入新数据;
[0051]第二备份单元,用于根据写入状态记录和使用状态记录,对既被写入过又被使用的数据块进行读取和备份,其中在读取要备份的数据块时,如果该数据块中的数据已被保存到临时文件中,则从临时文件中读取该数据块的数据进行备份,否则从存储介质中读取数据块进行备份。
[0052]本发明的实施方式还公开了一种操作系统差量热备份装置,包括:
[0053]第二写入状态记录单元,用于对操作系统自上一次全量备份后的数据写入状态进行监控和记录,形成写入状态记录;
[0054]第三使用状态记录单元,用于记录操作系统所在的存储介质中各数据块在开始备份时刻的使用状态记录;[0055]第三判断单元,用于在备份的过程中,如果有向存储介质的写入操作,则根据第三使用状态记录单元记录的使用状态记录判断要写入的数据块是否已被使用;
[0056]第三写入单元,用于根据第三判断单元的判断,如果要写入的数据块已被使用则将该数据块中原来的数据保存到临时文件后再向该数据块写入新数据,否则直接向该数据块写入新数据;
[0057]第三备份单元,用于根据写入状态记录和使用状态记录,对既被写入过又被使用的数据块进行读取和备份,其中在读取要备份的数据块时,如果该数据块中的数据已被保存到临时文件中,则从临时文件中读取该数据块的数据进行备份,否则从存储介质中读取数据块进行备份。
[0058]本发明实施方式与现有技术相比,主要区别及其效果在于:
[0059]直接对数据块而不是文件进行备份,如果在备份过程中有覆盖性写入操作,则在覆盖前先将要被覆盖的数据块保存到临时文件中,备份时如果数据块存在于临时文件中,则直接备份临时文件中的数据块,这样备份到的数据块都是开始备份那一时刻的数据,保证了备份数据的完整性和一致性,而且在对操作系统的备份过程中该操作系统仍可以正常运行。
[0060]基于驱动级的数据块备份技术,通过驱动的数据转储技术来对操作系统分区进行保护,使备份时的数据状态保持一致性,也不会出现无法打开文件的现象,已删掉但没有在回收站中清除的文件的数据块也在备份之列,而且备份速度也较文件备份大大提高。
[0061]基于驱动级的数据块备份技术,增加了对增量备份和差量备份的完美支持,可以节省存储空间,而且备份速度也更快。
[0062]通过文件系统重构技术,可以在操作系统出错后快速恢复到全量备份或增量备份或差量备份的任一时间点状态,从而大大降低操作系统出错后的损失。
[0063]通过文件系统重构技术技术,可以将操作系统分区数据还原到比备份分区大的分区,也可以还原到比备份分区小的分区。
【专利附图】

【附图说明】
[0064]图1是本发明第一实施方式中一种操作系统全量热备份方法的流程示意图;
[0065]图2是本发明第二实施方式中一种操作系统增量热备份方法的流程示意图;
[0066]图3是本发明第三实施方式中一种操作系统差量热备份方法的流程示意图;
[0067]图4是本发明第四实施方式中一种文件系统重构方法的流程示意图;
[0068]图5是本发明第五实施方式中一种文件系统重构方法的流程示意图;
[0069]图6是本发明第六实施方式中一种操作系统全量热备份装置的结构示意图;
[0070]图7是本发明第七实施方式中一种操作系统增量热备份装置的结构示意图;
[0071]图8是本发明第八实施方式中一种操作系统差量热备份装置的结构示意图。
【具体实施方式】
[0072]在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。[0073]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
[0074]本发明第一实施方式涉及一种操作系统全量热备份方法。图1是该操作系统全量热备份方法的流程示意图。
[0075]操作系统热备份,是指操作系统在运行的过程中进行备份。
[0076]全量备份,是指备份整个要备份的内容。
[0077]具体地说,如图1所示,该操作系统全量热备份方法包括以下步骤:
[0078]在步骤101中,记录操作系统所在的存储介质中各数据块在开始备份时刻的使用状态记录。
[0079]此后进入步骤102,判断有向存储介质的写入操作。
[0080]若是,则进入步骤103 ;若否,则进入步骤106。
[0081]在步骤103中,判断要写入的数据块是否已被使用。
[0082]若是,则进入步骤104 ;若否,则进入步骤105。
[0083]在步骤104中,将该数据块中原来的数据保存到临时文件。
[0084]此后进入步骤105,向该数据块写入新数据。
[0085]在备份过程中,如果有向存储介质的写入操作,则根据使用状态记录判断要写入的数据块是否已被使用,如果已被使用则先将该数据块中原来的数据保存到临时文件后再向该数据块写入新数据,否则直接向该数据块写入新数据。
[0086]此后进入步骤106,对使用状态记录中已被使用的数据块进行读取和备份。
[0087]对使用状态记录中已被使用的数据块进行读取和备份,其中在读取要备份的数据块时,如果该数据块中的数据已被保存到临时文件中,则从临时文件中读取该数据块的数据进行备份,否则从存储介质中读取该数据块进行备份。
[0088]此后结束本流程。
[0089]直接对数据块而不是文件进行备份,如果在备份过程中有覆盖性写入操作,则在覆盖前先将要被覆盖的数据块保存到临时文件中,备份时如果数据块存在于临时文件中,则直接备份临时文件中的数据块,这样备份到的数据块都是开始备份那一时刻的数据,保证了备份数据的完整性和一致性,而且在对操作系统的备份过程中该操作系统仍可以正常运行。
[0090]本申请实现了一种Windows操作系统容灾解决方案,此方案旨在帮助广大Windows用户提高操作系统容灾能力,保证在Windows操作系统出现问题后能够快速恢复系统并正常启动运行,从而大大降低由于Windows操作系统崩溃而带来的损失,主要适用于 Windows (XP/Vista/ffin7/ffindows Server2003/2008)操作系统的热备份。
[0091]此外,可以理解,该申请中所述的操作系统容灾解决方案同样也可以适用于其他的桌面操作系统,例如Linux操作系统等等。
[0092]在本申请中,我们以Windows操作系统为例进行详细阐述。
[0093]现就本实施方式的详细技术方案做如下介绍:
[0094]首先介绍本发明的核心驱动之一 hikwtf.sys,这是一个Upperfilters驱动(即上层过滤驱动),其核心功能是在备份的过程中在驱动级进行数据转储并为系统备份软件提供读数据请求接口。所谓数据转储就是在备份的那一刻记录下系统分区簇的使用情况的位图分布,在此驱动的保护过程中只要有对该系统分区的写操作都会被捕捉到,此时不是将写操作的数据直接写到被写的位置,而是根据位图信息来判断如何操作:(1)当写操作所在的簇在簇位图信息中的位置被置为O时,写操作直接写到该系统分区对应的位置;(2)当写操作所在的簇在簇位图信息中的位置被置为I时,先将该写操作对应真实位置的数据读取出来,根据设定的数据存储规则将其存入临时文件中,然后将写操作直接写到该分区对应的位置。也就是说当一个簇在备份的时侯已经被使用了,有写操作到来,就将该簇原来的数据转储到临时文件中,然后再进行写操作;当一个簇在备份的时侯没有被使用时,有写操作到来直接执行即可。驱动为备份软件提供的读数据请求功能区别于一般的读数据功能,这个读数据请求发生时,驱动会检测读请求所读的簇是否在临时文件中存在,如果存在直接从临时文件中读取,然后返回,如果不存在,从硬盘中簇所在的位置读取,然后返回,无论是那种情况都比普通的读写大大提高效率,因为这是在驱动级直接向底层发送读请求,而不需要再经过上层的各级组件和驱动。
[0095]其次介绍一下本发明的另一个核心驱动hikdmr.sys,这也是一个Upperfilters驱动,而且和hikwtf.sys挂载在同一级上,但属于比hikwtf.sys更底层的驱动,hikwtf.sys捕获到的读写数据的I/O请求包都会发送到此驱动中,此驱动的功能是为增量备份和差量备份提供数据改变记录,通过这些记录可以很快速地进行增量备份和差量备份,而不需要通过预先的估算来进行增量备份和差量备份,大大的提高了增量备份和差量备份的备份效率。
[0096]增量备份:是指针对上一次备份后的所有改变的内容的备份。
[0097]差量备份:是指基于最近一次全量备份后所有改变的内容的备份。
[0098]扇区:磁盘上的每个磁道被等分为若干个弧段,这些弧段便是磁盘的扇区
[0099]簇:相邻的N个扇区组合起来形成一个簇,簇的大小为2的X次幂
[0100]本发明第二实施方式涉及一种操作系统增量热备份方法。图2是该操作系统增量热备份方法的流程示意图。
[0101]具体地说,如图2所示,该操作系统增量热备份方法包括以下步骤:
[0102]在步骤201中,对操作系统自上一次备份后的数据写入状态进行监控和记录,形成写入状态记录。这里的上一次备份可以是全备份、增量备份或差量备份。在一个优选例中,可以以I表示一个数据块有写入,O表示一个数据块无写入。为了形成写入状态记录,可以从驱动中获取写入状态记录后将驱动中的原始写入记录清O。当然还可以有其它的方式形成写入记录,例如,以O表示一个数据块有写入I表示一个数据块无写入,此时可以从驱动中获取写入状态记录后将驱动中的原始写入记录全部写为I。再如,可以以一个字节对应一个数据块是否有写入,从驱动中获取写入状态记录后将驱动中的原始写入记录全部写为表不未写入的值。
[0103]此后进入步骤202,记录操作系统所在的存储介质中各数据块在开始备份时刻的使用状态记录。
[0104]此后进入步骤203,判断是否有向存储介质的写入操作。
[0105]若是,则进入步骤204 ;若否,则进入步骤206。
[0106]在步骤204中,判断要写入的数据块是否已被使用。
[0107]若是,则进入步骤205 ;若否,进入步骤206。[0108]在步骤205中,将该数据块中原来的数据保存到临时文件中。
[0109]此后进入步骤206,向数据块写入新数据。
[0110]在备份过程中,如果有向存储介质的写入操作,则根据使用状态记录判断要写入的数据块是否已被使用,如果已被使用则先将该数据块中原来的数据保存到临时文件后再向该数据块写入新数据,否则直接向该数据块写入新数据。
[0111]此后进入步骤207,对既被写入过又被使用的数据块进行读取和备份。
[0112]此后结束本流程。
[0113]根据写入状态记录和使用状态记录,对既被写入过又被使用的数据块进行读取和备份,其中在读取要备份的数据块时,如果该数据块中的数据已被保存到临时文件中,则从临时文件中读取该数据块的数据进行备份,否则从存储介质中读取该数据块进行备份。
[0114]基于驱动级的数据块备份技术,通过驱动的数据转储技术来对操作系统分区进行保护,使备份时的数据状态保持一致性,也不会出现无法打开文件的现象,已删掉但没有在回收站中清除的文件的数据块也在备份之列,而且备份速度也较文件备份大大提高。
[0115]需要说明的是,第一实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
[0116]本发明第三实施方式涉及一种操作系统差量热备份方法。图3是该操作系统差量热备份方法的流程示意图。
[0117]具体地说,如图3所示,该操作系统差量热备份方法主要包括以下步骤:
[0118]在步骤301中,对操作系统自上一次全量备份后的数据写入状态进行监控和记录,形成写入状态记录。
[0119]此后进入步骤302,记录操作系统所在的存储介质中各数据块在开始备份时刻的使用状态记录;
[0120]此后进入步骤303,判断是否有向存储介质的写入操作。
[0121]若是,则进入步骤304 ;若否,则进入步骤306。
[0122]在步骤304中,判断要写入的数据块是否已被使用。
[0123]若是,则进入步骤305 ;若否,进入步骤306。
[0124]在步骤305中,将该数据块中原来的数据保存到临时文件中。
[0125]此后进入步骤306,向数据块写入新数据。
[0126]在备份过程中,如果有向存储介质的写入操作,则根据使用状态记录判断要写入的数据块是否已被使用,如果已被使用则先将该数据块中原来的数据保存到临时文件后再向该数据块写入新数据,否则直接向该数据块写入新数据。
[0127]此后进入步骤307,对既被写入过又被使用的数据块进行读取和备份。
[0128]此后结束本流程。
[0129]根据写入状态记录和使用状态记录,对既被写入过又被使用的数据块进行读取和备份,其中在读取要备份的数据块时,如果该数据块中的数据已被保存到临时文件中,则从临时文件中读取该数据块的数据进行备份,否则从存储介质中读取该数据块进行备份。
[0130]基于驱动级的数据块备份技术,增加了对增量备份和差量备份的完美支持,可以节省存储空间,而且备份速度也更快。
[0131]更具体地说,Windows操作系统的备份流程如下:
[0132]第一步,开启备份程序,程序会自动获取主机名、操作系统类型、位数(32位或64位)、系统分区总大小、起始扇区、文件系统类型、已使用空间、未使用空间、硬盘的磁头数、文件系统的每个数据块(簇)大小和数据块个数、隐藏扇区数;获取所有本地盘符信息作为备份目的地的备选项,主要是总空间大小和未使用空间大小,根据未使用空间大小来计算是否可以作为备份的目的地,如果要备份到网络需要先映射网络驱动器,然后选择适合的备份目的地;
[0133]第二步,点下一步后会出现选择备份方式的页面,备份方式有三种,分别为:全量备份、差量备份和增量备份,但这个页面出现的备份方式组合只有三种可能:①全量备份;②全量备份和差量备份;③全量备份和增量备份。只有在最近一次全量备份的过程中开启了差量备份或增量备份功能才会在备份方式页面中出现差量备份或增量备份功能,且增量备份和差量备份只能出现其中一个,视驱动开启的功能而定,驱动开启增差量备份功能每次只能开启其中之一。针对备份方式的选择:
[0134](I)选择全量备份点下一步进入第三步,如果上一次全备开启了增量备份或差量备份功能,则会弹出一个选择对话框并提示“系统已开启增量备份或差量备份,执行全量备份将会关闭之前开启的增量备份或差量备份功能,选择是表示关闭,选择否表示不关闭”,如果选择否,则仍停留在当前页面;如果选择是,则记录下关闭标记以便真正备份时能够关闭该功能。选择是之后会进入下一个页面,此页面为是否开启增量备份和差量备份的页面,选择开启增量备份或差量备份或什么都不选,点下一步进入第四步备份确认页面,点击开始,系统提示是否开始备份,选择是进入第五步,开始备份数据,在开始备份数据之前需要写入文件头、扩展头和硬盘的前63或2048个扇区的备份,其中文件头的信息为文件头本身大小、硬盘信息、备份的系统分区信息和备份类型等,这些信息写完之后开始备份系统分区真实数据,备份的数据根据簇的使用情况的位图信息来计算,簇在位图中的位置被置为I的将被备份,置为0的不被备份,在每一个数据包之前会有一个数据包头,包头记录数据包的起始位置信息和校验信息,写入包头后再写入包头所指示的数据,这些数据都是通过向驱动hikwtf.sys发送请求所读取到的,此驱动的数据转储和数据读取功能上面已经介绍,不再赘述。之后的所有数据的读取写入均以此类推直至备份完所有数据,之后写入数据包位置的索引(指示那个数据包在那个文件中那个位置以方便快速查找),然后根据实际备份文件的个数更新文件开始位置的文件头信息并将文件头写入文件结尾位置,完成备份。
[0135](2)同理,增量备份和差量份原理与全量备份原理一样且都是系统运行状态下进行备份(热备份),不同的是备份过程使用的位图信息以及增量备份和差量备份不需要开启任何额外的功能,增量备份和差量备份的位图信息首先从驱动hikdmr.sys获取初始数据,增量备份需要在获取到初始数据后将驱动中的初始数据清0,然后将这些初始数据与系统分区的位图信息相与,相与之后得到的位置信息才是真是要备份的簇的位图信息,根据此位图信息来完成增量备份或差量备份。
[0136]需要说明的是,第一和第二实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一和第二实施方式互相配合实施。第一和第二实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一和第二实施方式中。
[0137]本发明第四实施方式涉及一种文件系统重构方法。图4是该文件系统重构方法的流程示意图。
[0138]具体地说,如图4所示,该文件系统重构方法包括以下步骤:
[0139]在步骤401中,利用上文所述的任一种操作系统热备份方法,对操作系统进行热备份。
[0140]此后进入步骤402,根据原分区的保留扇区大小设定被还原分区的保留扇区大小,其中保留扇区的第一个扇区作为启动扇区。
[0141]此后进入步骤403,根据启动扇区中根入口的数据块号计算根目录的大小,按照从目标分区起始位置开始找空闲数据块的规则在目标分区中分配相同大小的空间,将目录项拷贝至目标分区所分配的空间,并对文件分配表(File Allocation Table,简称“FAT”)作相应的已使用标记。
[0142]此后进入步骤404,根据根目录大小得到根目录中目录项个数,读取目录项的内容,根据目录项找到目录项所指示的文件的的起始位置,按数据块大小读取文件的数据,再按从目标分区起始位置开始找空闲数据块的规则,将文件数据写入所找到的空闲数据块中,并在FAT表中作数据块的已使用记录。
[0143]此后进入步骤405,更新目录项所指示的文件的起始数据块字段并回写至该目录项在目标分区的对应项位置,然后根据上一个数据块所指示的位置找到下一个数据块的位置,继续分配空间并在FAT表中作已使用标记和拷贝数据,直至数据块指示的数据块号为OxFFFFFFFF。
[0144]此后结束本流程。
[0145]通过文件系统重构技术,可以在操作系统出错后快速恢复,使恢复后的操作系统正常启动运行,实现操作系统的快速容灾。
[0146]该文件系统重构方法适用于FAT32文件系统,从根目录开始循环重构目录和目录中的文件和子目录,直至所有子目录和文件全部重构完成,完成整个FAT32文件系统的重构。
[0147]需要说明的是,第一、第二和第三实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一、第二和第三实施方式互相配合实施。第一、第二和第三实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一、第二和第三实施方式中。
[0148]本发明第五实施方式涉及一种文件系统重构方法。图5是该文件系统重构方法的流程示意图。
[0149]具体地说,如图5所示,该文件系统重构方法包括以下步骤:
[0150]在步骤501中,利用上文所述的任一种操作系统热备份方法,对操作系统进行热备份。
[0151]此后进入步骤502,打开备份文件,通过分析数据块的信息初始化原备份分区卷信
息结构。
[0152]此后进入步骤503,将原分区的启动文件拷贝至目标分区的起始位置,计算主文件表中前4个文件记录的备份的起始位置,按从分区起始位置找空闲数据块的规则将主文件表中前4个文件记录的备份拷贝至目标分区。
[0153]此后进入步骤504,修改目标分区启动文件的第一个扇区的内容。
[0154]此后进入步骤505,读取主文件表属性得到主文件表大小,初始化目标分区的卷信息结构,更新主文件表的文件记录,更新主文件表中前4个文件记录的备份的文件记录,更新使用状态记录的文件记录,更新坏数据块文件的文件记录,读取原分区数据块使用状态记录大小和目标分区数据块使用状态记录大小,移动所有主文件表的数据到目标分区,更新主文件表文件记录中数据块空间分配的位置记录信息,根据数据块空间的分配状况在分区使用状态记录中作相应标记,完成整个主文件表的还原。
[0155]此后进入步骤506,根据主文件表的大小计算文件记录个数,根据文件记录个数拷贝主文件表外的所有文件。
[0156]此后进入步骤507,根据新生成的分区使用状态记录信息重写目标分区的使用状态记录。
[0157]此后结束本流程。
[0158]该操作系统重构方法适用于NTFS文件系统。
[0159]综合上述第四和第五实施方式,更具体地说,Windows操作系统的还原流程如下:
[0160]第一步,从WinPE启动还原程序,获取系统识别的所有硬盘和分区的信息,硬盘包括硬盘号、硬盘大小、硬盘的头道扇区数,分区的信息包括分区起始位置、分区大小、分区文件系统类型、文件系统的块大小以及块的个数、分区之前的隐藏扇区,点下一步进入第二步,选择要还原的系统的全量备份文件(如果要从网络上还原,需要先映射网络驱动器,找到还原文件),点下一步进入第三步,还原程序会自动搜索全量备份文件所在目录,如果存在增量备份文件或差量备份文件则会弹出选择增量备份文件或差量备份文件的对话框,选择增量备份文件或差量备份文件后点下一步进入第四步,程序自动校验还原文件结构是否正确,不选择增量备份文件或差量备份文件的话可以选择取消直接进入全量备份文件结构完整性校验;如果不存在增量备份文件或差量备份文件,则会自动进入全量备份文件结构完整性校验。在备份文件校验页面可以勾选详细还原模式或不勾选详细还原模式,如果不勾选详细还原模式,则属于简单模式还原,只能进入已存在的分区选择页面,此页面只能选择已存在的分区,不能改变分区大小,也不能选择未分配的空间;如果勾选详细还原模式,则会进入详细模式还原目的地选择页面,此页面首先选择硬盘号指示还原到哪个硬盘,此时会列出这个硬盘的分区空间分布,您可以选择任何列出的空间进行还原,只要空间足够(空间必须满足不小于备份文件中系统分区的已使用空间大小),也可以将已存在的分区扩大(扩大的前提是此分区前面或后面有未使用空间)或缩小并选择之进行还原。无论是进入简单模式还是详细模式,还原都不受硬盘限制,也就是说只要空间足够,可以还原到任何硬盘。如果被还原的分区和原来备份的系统分区大小完全一样,则将备份文件中的数据包读出并根据数据包所指示的相对位置写入分区即可完成数据的还原,让系统数据还原后能启动的技术将在后面介绍;如果被还原的分区和备份的系统分区大小不一样,且满足还原条件(空间必须满足不小于备份文件中系统分区的已使用空间大小),则要进行扩大或缩小还原,这两种还原都需要用到重构文件系统技术。
[0161]重构文件系统:即将文件系统内的文件按照文件系统的结构定义重新进行文件的空间分配,并更新文件系统结构文件MFT中的对应于每个文件的数据,使所有文件从分区起始位置依次向后分配空间,从而既实现了文件系统扩大和缩小还原又减少文件系统分区碎片的一种技术。
[0162]简单模式:应用于还原时所选择的一种还原模式,此模式只能还原到已存在的分区。
[0163]详细模式:应用于还原时所选择的一种还原模式,此模式可以还原到硬盘上的任何一块空间,包括已使用的和未使用的空间。
[0164]下面详细介绍文件系统重构技术,本申请支持FAT32文件系统和NTFS文件系统:
[0165](I) FAT32文件系统重构技术:
[0166]此技术从根目录开始循环重构目录和目录中的文件和子目录,直至所有子目录和文件全部重构完成,完成整个FAT32文件系统的重构。下面开始详细介绍:
[0167]首先根据原分区的保留扇区大小设定被还原分区的保留扇区大小(通常为32),保留扇区的第一个扇区为启动扇区需要特殊处理,部分内容需要根据后面重构时计算的数值进行填充,如总扇区数需要根据新分区大小进行修改,根目录入口要根据实际的根起始位置填写,每道扇区数和磁头数根据从整个硬盘获取的参数来填写,FAT (文件分配表)扇区数的大小根据分区总大小来计算,FAT扇区数=(((扇区总数-保留扇区数-FAT扇区数*2)/每簇扇区数)*2+4)/512,每簇的扇区数的计算方式为:1)大于128G簇大小为64K ;2)小于128G且大于32G的簇大小为32K ;3)小于32G且大于16G的簇大小为16K ;4)大于16G且小于8G的簇大小为8K ;5)小于8G的簇大小为4K。计算完这些参数之后,将其填充至启动扇区的对应位置,接着开始拷贝文件,根据原分区启动扇区中根入口的簇号计算根目录的大小,按照从目标分区起始位置开始找空闲簇的规则在目标分区中分配相同大小的空间,将目录项拷贝至目标分区所分配的空间,并对FAT表作相应的已使用标记,由根目录大小得到根目录中目录项个数,循环读取目录项的内容,根据目录项找到目录项所指示的文件的起始位置,按簇大小读取文件的数据,再按照从目标分区起始位置开始找空闲簇的规则,将文件数据写入找到的空闲簇中并在FAT表中作簇的已使用记录,更新目录项所指示的该文件的起始簇字段并回写至(覆盖)该目录项在目标分区的对应项位置,然后根据上一个簇所指示的位置找到下一个簇的位置,继续分配空间并在FAT表中作已使用标记和拷贝数据,以此类推直至簇指示的簇号为OxFFFFFFFF指示文件数据拷贝结束为止,其他文件的重构与此原理相同,直至所有目录项循环完毕,目录重构完成,同时目录下的文件也重构完成;如果目录项中指示的不是文件而是目录则与根目录的重构原理相同,按根目录重构原理类推即可,至此FAT32文件系统重构完成。
[0168](2) NTFS文件系统重构技术:
[0169]NTFS文件系统的所有信息都是以文件的形式存在的,它有一个很重要的文件MFT(主文件表),这个文件会记录NTFS文件系统中所有文件的各种属性和数据(数据太大会记录数据的位置),针对每一个文件的记录我们称之为文件记录(File Record),依据这些特性具体介绍一下NTFS文件系统的重构技术。打开备份文件,通过分析数据块的信息初始化原备份分区卷信息结构,如文件的各种属性值、扇区大小、簇大小、每个文件记录的字节数、每索引记录的字节数、MFT的起始位置,读取MFT自身的文件记录,检验文件记录的完整性,分析此文件记录初始化MFT自身的节点结构以备后面分析其他文件使用,根据原分区总大小计算分区位图信息大小和分区位图信息的簇数,分析MFT文件属性得到MFT位图属性的大小并为之分配内存,读取MFT的位图属性值;将原分区的启动文件$Boot拷贝至目标分区的起始位置,计算MFTMirr (MFT中前4个文件记录的备份)的起始位置,按从分区起始位置找空闲簇的规则将MFTMirr拷贝到目标分区;接着修改目标分区启动文件$Boot的第一个扇区(也是分区的第一个扇区或分区的启动扇区)的内容,包括MFT的起始簇号、MFTMirr的起始簇号、分区总大小;读取MFT属性得到MFT大小,初始化目标分区的卷信息结构(原理同原分区相同),更新文件MFT的文件记录,重新初始化目标分区的卷信息结构以保证该结构信息的正确且处于最新状态,更新MFTMirr的文件记录,更新位图信息的文件记录,更新坏簇文件的文件记录,读取原分区的簇使用情况位图信息大小和目标分区簇使用情况的位图信息大小,移动所有MFT的数据到目标分区,且空间分配按从分区起始位置找空闲簇的规则来分配,直至数据拷贝完成,更新MFT文件记录中簇空间分配的位置记录信息,其他属性不变,根据簇空间的分配状况在分区位图信息中作相应标记,完成整个MFT的还原(之后所有文件的还原都会根据此文件的内容来还原,因为所有文件的文件访录都在MFT中);根据MFT的大小计算文件记录个数,根据文件记录个数和MFT文件的拷贝原理来循环拷贝其他所有文件,完成所有文件的拷贝之后根据新生成的分区位图信息重写目标分区的位图信息,至此完成整个分区的还原。
[0170]通过文件系统重构技术技术,可以将操作系统分区数据还原到比备份分区大的分区,也可以还原到比备份分区小的分区。
[0171]通过文件统重构技术完成分区数据还原之后,需要修改注册表文件的信息和相关系统文件信息,此时系统并没有启动,所以系统API中注册表相关的API肯定是无法修改被还原的分区中注册表的信息的,这个时侯就需要用到注册表二进制解析技术了,下面介绍注册表二进制解析技术:
[0172]1、注册表相关术语介绍:
[0173]注册表结构,注册表文件一般存放在\系统文件夹\SYSTEM32\C0NFIG目录下的6个文件 DEFAULT、SAM、SECURITY、SOFTWARE、USERDIFF 和 SYSTEM 中,其中每一个注册表文件叫一个储巢(HIVE)。
[0174]一个储巢文件由多个巢箱(BIN)组成,HIVE文件的首部有一个文件头(基本块、base block),用于描述这个HIVE文件的一些全局信息;
[0175]—个BIN由多个巢室(CELL)组成,CELL可以分为具体的5种(后面介绍),用于存储不同的注册表数据,一个巢室可以容纳一个键、一个值、一个安全描述符、一列子键或者一列键值,分别有对应的巢室来存储数据;
[0176]键巢室,包含了一个注册表键(也称为键节点)的巢室,一个键巢室包含一个特征签名(对于一个键是kn,一个符号链接是kl)、该键最近一次更新的时间戳、该键父键巢室的巢室索引、代表该键的子键的子键列表巢室的索引、该键的安全描述符巢室索引、一个代表该键类名的字符串键巢室索引,以及该键的名称;
[0177]值巢室,一个巢室,包含了关于一个键的值的信息,该巢室包含一个签名kv,该值的类型,如REG_DW0RD或REG_BINARY,以及该值的名称。一个值巢室也包含了另一个值巢室的索引,后者包含了对前者的数据;
[0178]子键列表巢室,有一系列的键巢室的巢室索引构成的巢室,这些键巢室是同一个父键下面的所有子键;[0179]值列表巢室,有一系列的值巢室的巢室索引构成的巢室,这些值巢室是同一个父键下面的所有值;
[0180]安全描述符巢室,包含了一个安全描述符巢室,其首部的特征签名为ks,以及一个引用计数,该引用计数值记录了所有共享安全描述符的键节点数目,多个键巢室可以共享同样的安全描述符巢室。
[0181]储巢的结构是通过一些链接建立起来的,这些链接称为巢室索引(cell index)。每个巢室索引是一个巢室在储巢文件中的偏移。因此,巢室索引就像是一个指针,从一个巢室指向另一个巢室,配置管理器将巢室索引解释为相对于储巢起始处的偏移。
[0182]2、了解了注册表相关术语后,下面开始介绍如何用注册表二进制解析技术实现对注册表的增删查改:
[0183]a)读取键值:首先读取注册表文件的所有数据,通过这些数据初始化储巢结构信息并保存整个注册表文件数据缓存区的首地址以备解析时使用,比如我想查询根键下A\B\C下的D的值,那么首先通过储巢结构找到根键的位置偏移,利用根键巢室中的子键列表巢室索引,找到包含A的所有子键列表的那个巢室,然后再利用该子键列表巢室中的巢室索引列表找到A的每个子键的巢室,最终找到A,同理找到B和C,再通过C键的结构找到C的值列表巢室,然后根据D的值遍历C的值列表巢室,找到D的值巢室索引,然后通过该索引找到D的的巢室,读取出D的值,
[0184]b)同理,修改该值的话需要找到D的值巢室,然后将它的值用要修改的值替换,然后重新写回文件即可;
[0185]c)增加键值:同样先遍历找到要增加键值的路径,然后找到其所在巢箱的起始的位置,根据这个起始位置查找空闲块,如果没有找到空闲块,则从整个注册表的每个巢箱开始查找空闲块,找到后标为已使用空间,如果在路径所在的巢箱中找到空闲块也同样标为已使用空间供存储键值使用,然后根据找到的空间填充相应的结构信息,包括数字签明、名称长度、数据长度、类型、数据相对巢室起始位置的偏移量、标记值、名称,最后将填充的结构信息写入分配的巢室空间中,完成键值的增加;
[0186]d)删除键值:同理,从储巢开始位置遍历找到要删除的键值的路径的起始位置,根据这个起始位置找到键巢室的巢室索引,遍历巢室索引,将每个巢室索引的键名称与要删除的键名称比较,直至找到要删除的键的巢室索引,由这个索引找到巢室的位置,释放巢室的空间并将其添加到所在巢箱的未使用空间中,更新已使用巢室个数,并将更新后的数据回写至注册表文件中完成键值的删除。至此注册表二进制解析技术介绍完毕。
[0187]接着上面完成系统分区数据还原后,接着修改与系统启动相关的数据项,首先修改注册表中 HKEY_LOCAL_MACHINE\SYSTEM\
[0188]MountedDevices下的某一项的值,这个项通过原系统分区的DISKID和起始偏移确定,用前面介绍的注册表二进制解析技术修改为新还原的分区的DISKID和新的起始偏移,接着修改新还原分区起始扇区中的隐藏扇区数和磁头数,然后针对XP/SerVer2003需要修改根目录下Boot, ini的启动选项的值,被还原的分区在第几个分区就修改成该值,针对Vista/Win7/Server2008需要修改注册表文件Boot/bed中的Objects下所有有与系统分区相关的键和子键的值,这些值同样是将原分区的DISKID和分区起始位置偏移修改为新分区的DISKID和新分区的起始位置偏移,所用技术同样是前面介绍的注册表二进制解析技术。最后根据新分区的还原位置以及大小修改整个硬盘起始扇区中的分区表项使新还原的分区与其位置相对应,到此完成整个操作系统的还原,重启WinPE,从被还原的硬盘启动,即可进入新还原的系统。
[0189]需要说明的是,第一、第二、第三和第四实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一、第二、第三和第四实施方式互相配合实施。第一、第二、第三和第四实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一、第二、第三和第四实施方式中。
[0190]本发明的各方法实施方式均可以以软件、硬件、固件等方式实现。不管本发明是以软件、硬件、还是固件方式实现,指令代码都可以存储在任何类型的计算机可访问的存储器中(例如永久的或者可修改的,易失性的或者非易失性的,固态的或者非固态的,固定的或者可更换的介质等等)。同样,存储器可以例如是可编程阵列逻辑(Programmable ArrayLogic,简称“PAL”)、随机存取存储器(Random Access Memory,简称“RAM”)、可编程只读存储器(Programmable Read Only Memory,简称“PROM”)、只读存储器(Read-Only Memory,简称“ROM”)、电可擦除可编程只读存储器(Electrically Erasable Programmable ROM,简称“EEPROM”)、磁盘、光盘、数字通用光盘(Digital Versatile Disc,简称“DVD”)等等。
[0191]本发明第六实施方式涉及一种操作系统全量热备份装置。图6是该操作系统全量热备份装置的结构示意图。
[0192]具体地说,如图6所示,该操作系统全量热备份装置包括:
[0193]第一使用状态记录单元,用于记录操作系统所在的存储介质中各数据块在开始备份时刻的使用状态记录。
[0194]第一判断单元,用于在备份的过程中,如果有向存储介质的写入操作,则根据第一使用状态记录单元记录的使用状态记录判断要写入的数据块是否已经被使用。
[0195]第一写入单元,用于根据第一判断单元的判断,如果要写入的数据块已被使用则将该数据块中原来的数据保存到临时文件后再向该数据块写入新数据,否则直接向该数据块写入新数据。
[0196]第一备份单元,用于对使用状态记录中已被使用的数据块进行读取和备份,其中在读取要备份的数据块时,如果该数据块中的数据已被保存到临时文件中,则从临时文件中读取该数据块的数据进行备份,否则从存储介质中读取该数据块进行备份。
[0197]第一实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
[0198]本发明第七实施方式涉及一种操作系统增量热备份装置。图7是该操作系统增量热备份装置的结构示意图。
[0199]具体地说,如图7所示,该操作系统增量热备份装置包括:
[0200]第一写入状态记录单元,用于对操作系统自上一次备份后的数据写入状态进行监控和记录,形成写入状态记录。在一个优选例中,可以以I表示一个数据块有写入,O表示一个数据块无写入。为了形成写入状态记录,可以从驱动中获取写入状态记录后将驱动中的原始写入记录清O。
[0201]第二使用状态记录单元,用于记录操作系统所在的存储介质中各数据块在开始备份时刻的使用状态记录。
[0202]第二判断单元,用于在备份的过程中,如果有向存储介质的写入操作,则根据第二使用状态记录单元记录的使用状态记录判断要写入的数据块是否已被使用。
[0203]第二写入单元,用于根据第二判断单元的判断,如果要写入的数据块已被使用则将该数据块中原来的数据保存到临时文件后再向该数据块写入新数据,否则直接向该数据块写入新数据。
[0204]第二备份单元,用于根据写入状态记录和使用状态记录,对既被写入过又被使用的数据块进行读取和备份,其中在读取要备份的数据块时,如果该数据块中的数据已被保存到临时文件中,则从临时文件中读取该数据块的数据进行备份,否则从存储介质中读取数据块进行备份。
[0205]第二实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第二实施方式互相配合实施。第二实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第二实施方式中。
[0206]本发明第八实施方式涉及一种操作系统差量热备份装置。图8是该操作系统差量热备份装置的结构示意图。
[0207]具体地说,如图8所示,该操作系统差量热备份装置包括:
[0208]第二写入状态记录单元,用于对操作系统自上一次全量备份后的数据写入状态进行监控和记录,形成写入状态记录。
[0209]第三使用状态记录单元,用于记录操作系统所在的存储介质中各数据块在开始备份时刻的使用状态记录。
[0210]第三判断单元,用于在备份的过程中,如果有向存储介质的写入操作,则根据第三使用状态记录单元记录的使用状态记录判断要写入的数据块是否已被使用。
[0211]第三写入单元,用于根据第三判断单元的判断,如果要写入的数据块已被使用则将该数据块中原来的数据保存到临时文件后再向该数据块写入新数据,否则直接向该数据块写入新数据。
[0212]第三备份单元,用于根据写入状态记录和使用状态记录,对既被写入过又被使用的数据块进行读取和备份,其中在读取要备份的数据块时,如果该数据块中的数据已被保存到临时文件中,则从临时文件中读取该数据块的数据进行备份,否则从存储介质中读取数据块进行备份。
[0213]第三实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第三实施方式互相配合实施。第三实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第三实施方式中。
[0214]需要说明的是,本发明各装置实施方式中提到的各单元都是逻辑单元,在物理上,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现,这些逻辑单元本身的物理实现方式并不是最重要的,这些逻辑单元所实现的功能的组合才是解决本发明所提出的技术问题的关键。此外,为了突出本发明的创新部分,本发明上述各装置实施方式并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,这并不表明上述设备实施方式并不存在其它的单元。
[0215]需要说明的是,在本专利的权利要求和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0216]虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
【权利要求】
1.一种操作系统全量热备份方法,其特征在于,包括以下步骤: 记录操作系统所在的存储介质中各数据块在开始备份时刻的使用状态记录; 在备份过程中,如果有向所述存储介质的写入操作,则根据所述使用状态记录判断要写入的数据块是否已被使用,如果已被使用则先将该数据块中原来的数据保存到临时文件后再向该数据块写入新数据,否则直接向该数据块写入新数据; 对所述使用状态记录中已被使用的数据块进行读取和备份,其中在读取要备份的数据块时,如果该数据块中的数据已被保存到所述临时文件中,则从所述临时文件中读取该数据块的数据进行备份,否则从所述存储介质中读取该数据块进行备份。
2.一种操作系统增量热备份方法,其特征在于,包括以下步骤: 对操作系统自上一次备份后的数据写入状态进行监控和记录,形成写入状态记录; 记录操作系统所在的存储介质中各数据块在开始备份时刻的使用状态记录; 在备份过程中,如果有向所述存储介质的写入操作,则根据所述使用状态记录判断要写入的数据块是否已被使用,如果已被使用则先将该数据块中原来的数据保存到临时文件后再向该数据块写入新数据,否则直接向该数据块写入新数据; 根据所述写入状态记录和所述使用状态记录,对既被写入过又被使用的数据块进行读取和备份,其中在读取要备份的数据块时,如果该数据块中的数据已被保存到所述临时文件中,则从所述临时文件中读取该数据块的数据进行备份,否则从所述存储介质中读取该数据块进行备份。
3.一种操作系统差量热备份方法,其特征在于,包括以下步骤:` 对操作系统自上一次全量备份后的数据写入状态进行监控和记录,形成写入状态记录; 记录操作系统所在的存储介质中各数据块在开始备份时刻的使用状态记录; 在备份过程中,如果有向所述存储介质的写入操作,则根据所述使用状态记录判断要写入的数据块是否已被使用,如果已被使用则先将该数据块中原来的数据保存到临时文件后再向该数据块写入新数据,否则直接向该数据块写入新数据; 根据所述写入状态记录和所述使用状态记录,对既被写入过又被使用的数据块进行读取和备份,其中在读取要备份的数据块时,如果该数据块中的数据已被保存到所述临时文件中,则从所述临时文件中读取该数据块的数据进行备份,否则从所述存储介质中读取该数据块进行备份。
4.一种文件系统重构方法,其特征在于,包括以下步骤: 利用权利要求1至3中任一项所述的操作系统热备份方法,对操作系统进行热备份;根据原分区的保留扇区大小设定被还原分区的保留扇区大小,其中保留扇区的第一个扇区作为启动扇区; 根据启动扇区中根入口的数据块号计算根目录的大小,按照从目标分区起始位置开始找空闲数据块的规则在目标分区中分配相同大小的空间,将目录项拷贝至目标分区所分配的空间,并对文件分配表作相应的已使用标记; 根据根目录大小得到根目录中目录项个数,读取目录项的内容,根据目录项找到目录项所指示的文件的的起始位置,按数据块大小读取文件的数据,再按从目标分区起始位置开始找空闲数据块的规则,将文件数据写入所找到的空闲数据块中,并在文件分配表中作数据块的已使用记录; 更新目录项所指示的文件的起始数据块字段并回写至该目录项在目标分区的对应项位置,然后根据上一个数据块所指示的位置找到下一个数据块的位置,继续分配空间并在文件分配表中作已使用标记和拷贝数据,直至数据块指示的数据块号为OxFFFFFFFF。
5.根据权利要求4所述的文件系统重构方法,其特征在于,该操作系统重构方法适用于FAT32文件系统。
6.一种文件系统重构方法,其特征在于,包括以下步骤: 利用权利要求1至3中任一项所述的操作系统热备份方法,对操作系统进行热备份; 打开备份文件,通过分析数据块的信息初始化原备份分区卷信息结构; 将原分区的启动文件拷贝至目标分区的起始位置,计算主文件表中前4个文件记录的备份的起始位置,按从分区起始位置找空闲数据块的规则将主文件表中前4个文件记录的备份拷贝至目标分区; 修改目标分区启动文件的第一个扇区的内容; 读取主文件表属性得到主文件表大小,初始化目标分区的卷信息结构,更新主文件表的文件记录,更新主文件表中前4个文件记录的备份的文件记录,更新使用状态记录的文件记录,更新坏数据块文 件的文件记录,读取原分区数据块使用状态记录大小和目标分区数据块使用状态记录大小,移动所有主文件表的数据到目标分区,更新主文件表文件记录中数据块空间分配的位置记录信息,根据数据块空间的分配状况在分区使用状态记录中作相应标记,完成整个主文件表的还原; 根据主文件表的大小计算文件记录个数,根据文件记录个数拷贝主文件表外的所有文件; 根据新生成的分区使用状态记录信息重写目标分区的使用状态记录。
7.根据权利要求6所述的文件系统重构方法,其特征在于,该操作系统重构方法适用于NTFS文件系统。
8.一种操作系统全量热备份装置,其特征在于,包括: 第一使用状态记录单元,用于记录操作系统所在的存储介质中各数据块在开始备份时刻的使用状态记录; 第一判断单元,用于在备份的过程中,如果有向所述存储介质的写入操作,则根据所述第一使用状态记录单元记录的使用状态记录判断要写入的数据块是否已经被使用; 第一写入单元,用于根据所述第一判断单元的判断,如果要写入的数据块已被使用则将该数据块中原来的数据保存到临时文件后再向该数据块写入新数据,否则直接向该数据块写入新数据; 第一备份单元,用于对所述使用状态记录中已被使用的数据块进行读取和备份,其中在读取要备份的数据块时,如果该数据块中的数据已被保存到所述临时文件中,则从所述临时文件中读取该数据块的数据进行备份,否则从所述存储介质中读取该数据块进行备份。
9.一种操作系统增量热备份装置,其特征在于,包括: 第一写入状态记录单元,用于对操作系统自上一次备份后的数据写入状态进行监控和记录,形成写入状态记录;第二使用状态记录单元,用于记录操作系统所在的存储介质中各数据块在开始备份时刻的使用状态记录; 第二判断单元,用于在备份的过程中,如果有向所述存储介质的写入操作,则根据所述第二使用状态记录单元记录的使用状态记录判断要写入的数据块是否已被使用; 第二写入单元,用于根据所述第二判断单元的判断,如果要写入的数据块已被使用则将该数据块中原来的数据保存到临时文件后再向该数据块写入新数据,否则直接向该数据块写入新数据; 第二备份单元,用于根据所述写入状态记录和所述使用状态记录,对既被写入过又被使用的数据块进行读取和备份,其中在读取要备份的数据块时,如果该数据块中的数据已被保存到所述临时文件中,则从所述临时文件中读取该数据块的数据进行备份,否则从所述存储介质中读取数据块进行备份。
10.一种操作系统差量热备份装置,其特征在于,包括: 第二写入状态记录单元,用于对操作系统自上一次全量备份后的数据写入状态进行监控和记录,形成写入状态记录; 第三使用状态记录单元,用于记录操作系统所在的存储介质中各数据块在开始备份时刻的使用状态记录; 第三判断单元,用于在备份的过程中,如果有向所述存储介质的写入操作,则根据所述第三使用状态记录单元记录的使用状态记录判断要写入的数据块是否已被使用; 第三写入单元,用于根据所述第三判断单元的判断,如果要写入的数据块已被使用则将该数据块中原来的数据保存到临时文件后再向该数据块写入新数据,否则直接向该数据块写入新数据; 第三备份单元,用于根据所述写入状态记录和所述使用状态记录,对既被写入过又被使用的数据块进行读取和备份,其中在读取要备份的数据块时,如果该数据块中的数据已被保存到所述临时文件中,则从所述临时文件中读取该数据块的数据进行备份,否则从所述存储介质中读取数据块进行备份。
【文档编号】G06F11/34GK103729262SQ201210390529
【公开日】2014年4月16日 申请日期:2012年10月12日 优先权日:2012年10月12日
【发明者】林鹏 申请人:武汉海康威视系统技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1