本申请涉及由Kartik Raghaven,Sarah Schumacher和Wesley Witt提出的题为“控制图像文件的方法和系统”的悬而未决的申请(对应于代理案号LVM215711),本文援引该文件以供参考。
具体实施方式
本发明涉及一图像文件和一用来建立和恢复图像文件的方法和系统。图像文件具有多个包括一控制流、一数据流、一位图流、一群集图流,一固定流,以及可选择地包括的一检查跟踪流和一特性流。数据流包括从源储存介质空间来的源数据。控制流、位图流、群集图流、检查跟踪流和特性流包括允许访问和编辑数据流中的源数据的信息。固定流根据在数据流内的数据的组织,更新在多个流中的信息。
现转向诸附图,其中,同样的标号表明同样的元件,本发明的说明是在一合适的计算机环境中进行实施。尽管并不要求,但本发明将在一般的计算机执行指令的范围内进行描述,例如,由个人电脑执行的程序模块。一般来说,程序模块包括程序、编程、目标、部件、数据结构等,它们执行特定的任务或实施特定的抽象的数据类型。本发明也可在分布的计算机环境中实施,其中,通过通信网络连接的远处的处理设备完成诸项任务。在分布的计算机环境中,程序模块可位于就地的和远处的存储器储存设备中。
图1示出一可实施本发明的合适的计算机系统环境100的实例。该计算机系统环境100只是一个合适的计算机环境的实例,并不意图建议对本发明的使用范围或功能的任何限制。计算机环境100不能被认为有任何的依赖或要求于示范性的操作环境100中所示出的有关的任何一个部件或诸部件的组合。
本发明可用于多种其它的一般用途或特殊用途的计算机系统环境或结构中。可适合用于本发明的众所周知的计算机系统、环境和/或结构的实例,包括有(但不限于)个人电脑、服务器计算机、手提式或笔记本电脑、多处理器系统、多处理器型系统、机顶盒、编程的消费电子产品、网络PC机、微型计算机、主机计算机、包括上述系统或设备中的任何一种的分布的计算机环境,以及诸如此类的系统和设备。
本发明可在一般的计算机执行指令的范围内进行描述,例如,由计算机执行的程序模块。一般来说,程序模块包括程序、编程、目标、部件、数据结构等,它们执行特定的任务或实施特定的抽象的数据类型。本发明也可在分布的计算机环境中实施,其中,通过通信网络连接的远处的处理设备完成诸项任务。在分布的计算机环境中,程序模块可位于就地的和远处的包括存储器储存设备的储存介质中。
参照图1,实施本发明的一示范的系统包括呈一计算机110形式的通用的计算机设备。计算机11O的部件可包括(但不限于)一处理单元120、一系统存储器130,以及一连接包括系统存储器至处理单元120的各系统部件的系统总线121。系统总线121可以是若干种类型的总线结构中的任何一种,其中包括一存储器总线或存储器控制器、一外围总线,以及一使用各种总线结构中的任何一种的局域总线。举例来说(但不限于),这样的结构包括:工业标准结构(ISA)总线、微通道结构(MCA)总线、增强型ISA(EISA)总线、视频电子仪器标准联合(VESA)局域总线,以及外围部件互连(PCI)总线(也称之为中层总线)。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是被计算机110访问的任何可供使用的介质,且包括易失的和非易失的介质,可卸的和非可卸的介质。举例来说(但不限于),计算机可读介质可包括计算机储存介质和通信介质。计算机储存介质包括易失的和非易失的,可卸的和非可卸的介质,它们以任何的方法或技术实施信息储存,诸如计算机可读指令、数据结构、程序模块或其它数据。计算机储存介质包括(但不限于)RAM、ROM、EEPROM、瞬时存储器或其它的存储器技术、CD-ROM、数字化视频光盘(DVD)或其它光盘储存、盒式磁带、磁带、磁盘储存或其它的磁性储存设备,以及任何其它可用来储存要求的信息并可被计算机110访问的介质。通信介质通常实施计算机的可读指令、数据结构、程序模块或在调制数据信号中的其它数据,调制数据信号诸如一载波或其它的传输机构,通信介质并包括任何的信息递送介质。术语“调制数据信号”是指具有一个或多个本身的特征组的、或以加密信号中信息的方式进行变化的信号。举例来说(但不限于),通信介质包括诸如有线网络或直接连线连接的有线介质,以及诸如声、RF、红外线和其它的无线介质的无线介质。上述任何种的组合也应包括在计算机可读介质的范围内。
系统存储器130包括呈易失和/和非易失存储器形式的、诸如只读存储器(ROM)131和随机存取存储器(RAM)132的计算机储存介质。包含有助于在计算机110内(例如起动过程中)的诸元件之间传送信息的基本程序的一基本输入/输出系统133(BIOS),通常储存在ROM131内。RAM132通常包含这样的数据和/或程序模块,它们通过处理单元120立即被存取和/或目前正被操作。举例来说(但不限于),图1示出操作系统134、应用程序135、其它程序模块136,以及程序数据137。
计算机110也可包括其它的可卸/非可卸的、易失/非易失的计算机储存介质。仅作为举例来说,图1示出一硬盘驱动器141,它从一非可卸的、非易失的磁性介质上读出或写入其中,一磁盘驱动器151,它从一可卸的、非易失的磁盘152上读出或写入其中,以及一光盘驱动器155,它从诸如一CD ROM或其它光学介质的可卸的、非易失的光盘156上读出或写入其中。其它的可用于示例的操作环境中的可卸/非可卸的、易失/非易失的计算机储存介质包括(但不限于)盒式磁带、瞬时存储卡、数字化视频光盘、数字化视频磁带、固态RAM、固态ROM,以及诸如此类的储存介质。硬盘驱动器141通常通过诸如接口140的非更换存储器接口连接到系统总线121,而磁盘驱动器151和光盘驱动器155通常通过诸如接口150的可卸的存储器接口连接到系统总线121。
上述的和在图1中示出的驱动器和器相关的计算机储存介质,提供储存计算机可读指令、数据结构。程序模块以及其它的用于计算机110的数据。在图1中,例如,硬盘驱动器141示为储存操作系统144、应用程序145、其它程序模块146,以及程序数据147。应注意到,这些部件可以是与操作系统134、应用程序135、其它的程序模块136,以及程序数据137相同或不相同。操作系统144、应用程序145、其它的程序模块146,以及程序数据147这里给以不同的标号,以表明它们至少是不同的拷贝。一用户可通过诸如一键盘162和定点设备161(通常称之为鼠标),跟踪球或接触垫,将指令和信息输送入计算机110。其它的输入设备(未示出)可包括一话筒、操纵杆、游戏垫、圆盘式卫星电视天线,扫描仪或诸如此类的设备。上述的和其它的输入设备通常通过连接到系统总线上的用户输入接口160连接到处理单元120,但也可通过其它的接口和总线结构来连接,例如,并行端口。游戏端口或通用串行总线架构(USB)。一监视器191或其它类型的显示器设备也可通过一诸如视频接口190的接口连接到系统总线121上。除了监视器之外,计算机也可包括诸如扬声器197和打印机196的其它外围输出设备,所述扬声器和打印机可通过输出外围接口195进行连接。
计算机110通过逻辑地连接到一个或多个远处的计算机(例如远程的计算机180),可在一网络环境中操作。该远程的计算机180可以是另外的个人电脑、服务器、路由选择器、网络PC、同位设备或其它公共的网络节点,并且通常包括相对于个人电脑110的许多或所有上述的元件,但只有一存储器储存设备181已示出在图1中。图1所示出的逻辑连接包括一局域网(LAN)171和宽域网(WAN)173,但也可包括其它的网络。这样的网络环境常见于办公室、企业范围内的计算机网络,企业内部互联网和因特网。
当用于LAN网络环境时,个人电脑110通过网络接口或适配器170连接到LAN171。当用于WAN网络环境时,电脑110通常包括一调制解调器172(modem)或其它用来通过诸如因特网的宽域网173建立通信的装置。调制解调器172(其可以是内置的或外部的)可通过用户输入接口160,或其它合适的机构,连接到系统总线121上。在一网络环境中,相对于个人电脑或其部分而示出的程序模块,可储存在远处的存储器储存设备内。举例来说(但不限于),图1示出寄存在存储器设备181内的远处的应用程序185。应该认识到,所示的网络连接是示范性的,且其它的在计算机之间建立通信连接的装置也可被使用。
在下面的描述中,本发明将参照由一个或多个计算机执行的操作动作和符号表示来进行描述(除非另有指明)。这样,应该理解的是,这些时时被参考而被计算机执行的动作和操作,包括由计算机的处理单元对呈结构形式的代表数据的电信号进行的操作。这种操作转换数据或将其仍保持在计算机的存储器系统内的诸位置处,其以本技术领域内的技术人员所熟知的方式进行再组合或另外改变计算机的操作。数据被保持的数据结构,是具有被数据格式定义的特定性质的存储器的物理位置。然而,尽管本发明在上述的范围内进行描述,但这并不意味着局限于本技术领域内的技术人员将认为的那样,在下文中描述的各种动作和操作也以硬件的方式实施。
图2示出一示范性的操作结构和用来实施本发明的图形文件格式。操作结构包括一与源储存介质204和目标储存介质206接口的计算机200。一操作系统202在计算机200内执行。操作系统202包括诸如文件系统驱动器208、图像驱动器210和便于在计算机200和储存介质204和206之间通信的设备驱动器212。
各个储存介质逻辑地分为一个或多个空间。储存介质204分成第一空间214和第二空间216。储存介质206分成单一空间。储存介质204和206根据几何特性进行定义。储存介质的几何特性包括多个圆柱,每个圆柱的磁道和每个磁道的区段。一个区段是储存介质上的一个物理单位。每个区段能储存一定量的信息,例如,512字节。储存介质的几何特性是熟知的,在此不需详细加以描述。
群集(cluster)是一个或多个区段组。操作系统202通过参考一个或多个在储存介质上的群集,来从储存介质上读出信息和将数据写入其中。一文件系统确定包括群集的区段的数量。已知存在的各种文件系统诸如有文件分配表16(FAT16),文件分配表32(FAT32),光盘文件系统(CDFS),以及新技术文件系统(NTFS)。
如图所示,源储存介质204的第一空间214包括源数据218。源数据218包括多个文件,例如,操作系统文件236、诸如应用程序的可执行程序238,以及用于应用程序的数据文件240。源数据218还包括控制信息242。控制信息包括识别包括每个文件数据的在储存介质空间214上的群集的文件分配到数据249。控制信息242还包括一位掩模(bitmask)248。位掩模248包括多个字节,且每个字节对应于在储存介质空间上的一个群集。在位掩模内的每个字节值可识别对应的群集是否包括用于至少一个文件的储存数据,或群集是否仍未被分配。
用来组织和储存控制信息242和文件236、238、240的方式,取决于所使用的文件系统。举例来说,NTFS文件系统在储存介质上储存一主文件表(MFT)。MFT包括一对于各储存在储存介质上的文件的范围表。该范围表包括一系列识别一起始阶段和长度的的进口。起始阶段和长度定义一系列包括文件的数据的相邻的群集。
作为部分包括在源数据218内的其它信息,包括页式存储器244和一BI0S参数块(BPB)。页面标记存储器244是写入储存介质214内的计算机存储器的一部分。BPB246包括关于储存介质空间的数据,例如介质大小和在储存介质上的某些文件的位置。
目标储存介质206包括一图像文件220。图像文件是诸如源数据218的信息的逻辑性的获取。在本发明中,图像文件220用来将源数据218恢复到源储存介质空间214上。或者,图像文件220用来提供与源储存介质空间214结构相同的一个或多个储存介质空间。
图像文件220包括多个图像流。如图所示,图像文件220包括一控制流222、一数据流224、一位图流226、一群集图流228、一检查跟踪流230,以及一特性流232。图像流作为图像文件220的一部分储存在目标储存介质206上。图像文件220还包括一固定流234。固定流234用来在它们写入到图像文件220之前,修正其它图像流中的数据。在本发明的一实施例中,检查跟踪流230和特性流232是任意可选择的。
在所示的实施例中,目标储存介质206和源储存介质214通过一公共设备驱动器212和文件系统驱动器208与计算机200接口,由此,假定两个储存介质使用一公共的文件系统和一公共的储存介质类型。如本技术领域内的技术人员所认识的,不同的储存介质会使用不同的文件系统和不同的储存介质类型。例如,储存介质206可以是使用CDFS文件系统的CD ROM,而储存介质204可以是使用FAT16或FAT32的硬盘。在这种情形下,可要求多个文件系统驱动器208和设备驱动器212。
通常来说,一用户要求通过系统工具232来建立图像文件220。系统工具可以诸如用户接口或命令行要求的任何合适的方式来实施。或者,系统工具232可以诸如一应用程序的另一程序模块的一部分来实施。该要求通到图像驱动器210,它通过文件系统驱动器208获得对源介质204和目标介质206的访问。一旦图像驱动器210获得对源和目标储存介质的访问,操作系统202通过图像驱动器210和设备驱动器212与储存介质接口。为了建立图像文件,操作系统读出源数据218,形成多个图像流222-234,并将图像流写入到目标储存介质206。为了从一图像文件220中恢复源数据218,一用户恢复源数据218的要求是由系统工具232来启动的。图像驱动器210通过文件系统驱动器208获得对源储存介质空间214和图像文件的访问。操作系统通过图像驱动器210和设备驱动器212读出图像文件220。然后,操作系统202根据图像文件220中的数据将源数据218恢复到源储存介质214上。
图3示出用来实施本发明的图像文件220的实施例。图像文件220包括控制流222、数据流224、位图流226、群集图流228、检查跟踪流230,以及特性流232。如上所述,检查跟踪流230和特性流232是任意可选择的,并实施来对图像文件提供额外的功能。固定流234在其它流写入到图像文件220之前,用来修正其它图像流中的数据。
控制流222是一数据结构,其用作描述图像文件220的属性的标头的作用,该属性是打开和说明包括在图像文件220内的其它数据所需要的。在控制流内的数据包括图像识别250,空间信息252,储存介质几何特性254,文件系统信息256,操作系统信息258,以及压缩信息260。
图像识别250是唯一识别图像的数据,也是识别控制流222的字节大小的数据。空间信息252包括定义源储存介质空间214的数据。在空间信息252内的数据包括偏离储存介质204的起始位置的一空间,一空间的长度,在空间内隐藏的区段数,空间数,以及被空间使用的文件系统的类型。
储存介质几何特性254包括描述源储存介质254的物理属性的数据,其中包括圆柱数,每个圆柱的磁道数,以及每个磁道的区段数。文件系统信息256包括识别群集的总数,每串的字节数,以及每个记录的群集数。
操作系统信息258包括识别储存在源储存介质空间214上的一操作系统版本的数据。操作系统信息258还包括识别用于诸如服务压缩识别的操作系统的任何更新的数据。一服务压缩是对一软件程序的更新,该软件程序将已知问题与软件程序固定或提供对软件程序的加强。服务组件识别可识别出储存在用于操作系统文件236的源储存介质空间214上的任何服务组件。压缩/加密信息260包括识别图像文件220是否被压缩和图像文件是否被加密的数据。
数据流224包括对于各位于目标储存介质空间214上的文件的数据。各文件的数据可使用已知的方法,可任选地加以压缩或加密。如下面将会更详细地介绍,作出数据压缩的决定根据文件而定。因此,有些数据流224中的数据可以被压缩,而有些数据则不能被压缩。与此类似,有些数据流224中的数据可以被加密,而有些数据则不被加密。形成源数据218的部分的控制信息242也包括一个或多个文件,并以数据流224的部分而加以储存。
在本发明的一实施例中,数据流224不包括同一数据的多份拷贝。例如,如果同一数据文件240的多个拷贝储存在源储存介质空间214内,则仅有一个数据文件240的拷贝储存在数据流224中。页式存储器244也无需被包括在数据流224中。当图像文件220在储存介质空间上恢复时,操作系统220按要求在储存介质空间上形成一页式存储器244。消除数据的多拷贝和页式存储器文件,可减小图像文件220的大小。
群集图流228将图像文件220内的数据位置与其在源储存介质空间214上的位置相关。群集图流228包括一系列记录。图3示出在群集图流228内的单一记录。每个记录包括一起始群集262和一结束群集264。起始群集262和结束群集264识别数据位于源储存介质214上的起始群集和结束群集。
偏移268识别出在数据流224中的数据的起始位置(从数据流的开始起量测)。对于压缩的文件,在图像文件220内的数据长度等于压缩大小270。对于非压缩的数据,在图像文件220内的数据长度是长度266和每群集字节数(如在控制流222中识别的)的乘积。标记字段272识别出图像文件220内的数据是否被压缩或未被压缩。
群集图流228提供一机构,其使得操作系统能够在数据流224中对数据进行定位。这使得能够对图像文件进行观看和编辑。
参照图4,图中示出一数据流224内的数据位置与其在源储存介质空间214上的位置之间的关系的实例。图4中,假定在控制流222中被识别的每一群集的字节数是512。源储存介质空间214包括顺序编号的方框(block)。每个方框代表在源储存介质空间上的一个群集。数据流224也包括顺序编号的方框。数据流224中的每个方框代表数据流224中的一个字节,且编号代表与数据流224的起始点的偏离(以字节计)。
群集图记录228的起始群集字段262包括一起始群集100和一结束群集字段149。因此,如一般所示,数据储存在源储存介质空间214的群集100至149上。偏离字段具有值1000。因此,数据起始于离数据流224的起始点为1000字节的偏离。字段272表明数据未被压缩。在数据流224中的数据长度是长度(在长度字段266内被识别为50)和每群集字节数512的乘积(50群集*512每群集字节=25,600字节)。如图所示,在图像文件内的对应数据相对于数据流224的起始点,位于字节1000至26599。
如果同一数据的多个拷贝储存在源储存介质空间214上,则数据仅在一个时间内放置在数据流224中。如果出现这种情况,则在群集流228中形成多条记录,对发生在源储存介质空间214上的数据,存在有一记录。各个记录包括相同的长度266,偏离262,压缩大小270,以及压缩272字段,由此,指向数据流224中的同一数据。起始群集262和结束群集264字段互不相同,由此,识别出数据所属的源储存介质214上的多位置。
回头转到图3上,位图流226用来识别目标储存介质空间214的分配和未分配的群集。分配的群集是包括对于在目标储存介质空间214上的文件的数据的群集。未分配群集是用来储存新数据的群集。在所示的实例中,位图流实施为一位图。在位图上的每个位对应于目标储存介质214上的群集。带有值“1”的位代表一分配的群集,而带有值“0”的位代表一未分配的群集。位图流实现如同位掩模248相同的功能。然而,因为位图流226在数据录224的外面,所以,容易地在图像文件220内存取。
检查跟踪流230包括实施识别的数据,它识别对图像文件所作的任何变化,启动这种变化的用户,文件(如有任何修改),以及实施这些变化的数据和时间。特性流232包括实施识别的数据,它识别诸如操作系统的版本的图像文件220的属性。特性流232被查询来识别图像文件220的所要求的属性。例如,特性流232被查询来定位包括特定版本的操作系统的图像文件。检查跟踪流230和特性流232以任何合适的方式实施。
固定流在源数据218被操作系统202读出后,用来修正图像流。例如,当源数据218放置在数据流224上时,它可相对于源储存介质214上的原始位置移动。固定流更新BPB246和在数据流内的控制信息242,以反映源数据218的合适的位置。
图5a和5b示出源储存介质214上的数据在放置入数据流224时,如何随意地进行磁盘非裂化。如图所示,源数据218储存在源储存介质214上。文件A的数据储存在标号为280的群集上,文件B的数据储存在标号为282的群集上,文件C的数据储存在标号为284的群集上。如图所示,文件A的数据和文件B的数据储存在非相邻的群集上。当一文件的数据储存在非相邻的群集上时,则文件称之为裂化。
当操作系统202对文件A读出源储存介质214上的控制信息242时,它识别包含该文件数据的群集280,并读出该数据。然后,操作系统在数据流224内将文件A的数据放置在标号为287的相邻的位置。操作系统202对文件B和文件C遵循同样的过程。如图5b所示,文件B和文件C的数据分别放置在标号为288和289的相邻的位置。由于数据放置在相邻的位置,所以,操作系统202可通过对各文件的文件分配249的更新,来对文件进行非裂化。用来非裂化源储存介质214上的文件的方法,将在下面作更详细的描述。
如上所述,包括空间位掩模248和对于各文件的文件分配249的控制信息,作为一个或多个文件储存在数据流224中。对于控制信息242的数据286通常位于数据流224的尾端(如图5b所示)。
当对文件进行非裂化时,群集图228的记录被修正,以反映新数据的位置。因为数据是从其原始位置开始移动的,所以,起始群集和结束群集可不对应于源储存介质空间上的源数据的原始位置。相反,起始群集和结束群集识别,当图像文件恢复成储存介质空间时,数据将被储存的位置。
图6和7示出用来从源储存介质空间214建立图像文件220的过程。举例来说,诸如通过一程序模块在图像驱动器210内的操作,由操作系统部件来执行过程290。或者,全部地或部分地由系统工具232来执行处理过程290。通常,通过图像文件220通过用户要求,由系统工具232来建立。在用户要求从系统工具232被接受之后,如步骤292所示,操作系统202打开源储存介质空间214。为了打开源储存介质空间214,图像驱动器210通过文件系统驱动器208获得对于源储存介质空间214的一参考值。一旦获得对于源储存介质空间214的参考值,操作系统202通过图像驱动器210和设备驱动器212,与储存介质214建立通信。
在步骤294,处理过程290形成图像文件220的多个图像流,图像文件220包括控制流222、数据流224、一位图流226、一群集图流228、一检查跟踪流230、一特性流232,以及固定流234。在这点上,组成图像文件220的多个流以存储器结构实施,或者,直接地在目标储存介质空间206上实施。
在步骤296,过程290读出源储存介质空间上的控制信息242。控制信息242识别源储存介质空间214上的多个文件,以及分配到各个文件的群集。例如,如果源储存介质使用NTFS文件系统,则过程290读出在储存介质空间214上的MFT。
在步骤298,处理过程290读出被控制信息242识别出的第一文件的数据。在步骤300,过程将第一文件的数据放置在数据流224。如上所述,如果文件数据存在多个拷贝,则数据仅一时被放置在数据流。此外,如果数据是页式存储器244,则不需放置在数据流224内。当放置在数据流224中时,文件的数据可随意地被非裂化。
在步骤302,群集流228通过添加一记录得以更新,该记录使源储存介质空间214上的数据位置与其在数据流224中的位置相关。群集图流228允许操作系统202存取和编辑数据流224内的数据。在步骤304中,过程290确定源储存介质空间214是否包括更多的文件数据。如果存在更多的文件数据,则处理过程290返回到步骤298,并读出下一个文件的数据。
如果不存在更多的文件数据,则处理过程290进到步骤306,并施加固定到图像文件流。施加固定导致数据的移动。例如,如上所述,过程290可对在源储存介质214上的多个文件的数据进行非裂化。因此,过程290修正位于数据流224上的控制信息242,以使控制信息242识别出,现分配到各文件上的群集。在NTFS空间的情形中,过程对MFT中的各文件纠正范围表。因为对各文件的数据被非裂化,所以,对各文件的范围表包括单一的范围。位掩模248也被修正,以适当地反映鉴于数据位置的变化在目标储存介质上的分配和未分配的群集。固定也被施加到BPB246。因为参照于BPB的文件的位置发生变化,所以,BPB被修正,以便参考文件的合适位置。
一旦完成了处理过程,则控制流222、数据流224、位图流226、群集图流228、检查跟踪流230、以及特性流232,写入到目标储存介质206中,由此,形成如步骤308所示的图像文件220。
图7示出用来加密和压缩来自于源储存介质空间214的数据。在步骤320,处理过程290读出储存在被控制信息242识别出的群集上的数据。在步骤322中,过程290决定是否压缩数据。在本发明中,文件压缩是随意选择的,且可通过系统工具232或任何合适的操作者接口,由用户进行选择。如果选择文件压缩,则过程290压缩如步骤324所示的数据。如果还未以压缩格式储存的话,最好仅对数据进行压缩。如步骤324所示,采用合适的压缩/解压缩(CODEC)运算法则,进行数据压缩。
在步骤326中,处理过程290确定是否对数据进行加密。本发明中,文件加密是随意选择的,且可通过系统工具232,由用户进行选择。如果选择文件加密,则采用如步骤328所示的所有已知合适的方法进行数据加密。一旦数据被加密和/或压缩,如果这样实施的话,如步骤330所示,数据写入到数据流224中。
图8示出一标号为340的过程,其用来将图像文件220恢复到源储存介质空间214。处理过程340可通过操作系统202来执行。或者,处理过程340可全部地或部分地由系统工具232执行。在步骤342中,处理过程340打开图像文件220。操作系统202通过文件系统驱动器208获得对于目标储存介质空间206的参考值。
在步骤344中,处理过程340读出包括在群集图流228中的多个群集图记录中的一个。群集图记录识别出数据在数据流224中的位置,还识别出在源储存介质空间214上的要达到的位置。在读出群集图记录之后,如步骤346所示,从数据流224中读出数据。然后,该数据写入到在群集上的源储存介质214上,该群集由串图记录228中的起始群集和结束群集所识别。
在步骤350中,处理过程340确定是否在串图流228中存在更多的记录。如果存在更多的记录,则过程返回到步骤344,其中,检查下一个群集图记录。如果不存在更多的记录,则处理过程340进到步骤352,其中施加固定。如果用来建立图像文件的源储存介质空间214和源数据218恢复的储存介质空间之间的几何特性不相同,则要求有固定。例如,如果在BPB中被识别的文件的位置发生变化,则BPB更新以反映文件的新的位置。此外,BPB包括储存介质的几何信息。在BPB内的几何信息需要更新,以反映包括恢复的源数据218的储存介质的实际几何特性。
图9示出用来解密和解压缩来自于图像文件220的数据的过程。在步骤360中,处理过程340确定是否解压缩数据。如果数据要求解压缩,则采用如步骤362所示的已知解压缩运算法则进行数据解压缩。在步骤364中,处理过程340确定是否解密数据。如果数据要求解密,则采用如步骤366所示的已知解密运算法则进行数据解密。一旦数据按需要被解压缩和解密,数据写入到源储存空间214。数据写入到如在对于对应的数据的串记录中被识别的串中。
所有的参考文献,包括这里全文援引的,它们被援引在此以供参考。
鉴于有许多可能的应用本发明的原理的实施例,所以,应该认识到的,这里参照附图所描述的实施例目的仅在于说明,而不应认为对于本发明范围的限制。例如,本技术领域内的技术人员将会认识到,在软件中所示的实施例中的元件可在硬件中实施,而且反之亦然,或者,在不脱离本发明精神的前提下,所示实施例可在结构上和细节上进行修改。因此,本文所描述的本发明可构思出诸多这样的实施例,它们涵盖在附后的权利要求书和其等价物的范围内。