管理图像文件的方法和系统的制作方法

文档序号:6369876阅读:104来源:国知局
专利名称:管理图像文件的方法和系统的制作方法
相关申请的交叉引用本申请涉及标题为“用来创建和恢复图像文件的方法和系统”的共同未决(co-pending)的申请,其中该申请由Wesley Witt和Edward Miller在归档(相应于律师诉讼事件表编号LVM 215712),因此该文档作为参考清楚的合并于此。
存储媒体中的数据被组织为用来管理磁盘上文件的一组文件和其他的控制信息。例如,每个操作系统文件、应用程序或数据文件代表了存储媒体上不同的文件。控制信息标识存储媒体中包括每个文件数据的串。控制文件也标识存储媒体中被分配的串,如包括文件数据以及标识保持未分配的串,如可保存新数据。控制信息本身也作为一个或多个文件的部分保存起来。文件和控制信息在存储媒体上组织的精确方式依赖于文件系统。存在已知不同的文件系统,如文件分配表16(FAT 16)、文件分配表32(FAT 32)和新技术文件系统(NTFS)。
图像文件是保存在源存储媒体卷中数据副本。通常,图像文件是包含在源存储媒体卷中扇区接扇区(sector by sector)数据副本的单个数据流。图像文件依次保存在目标存储媒体卷中。该目标存储媒体卷是不同于相同存储媒体或者做为选择,单独的存储媒体的卷或分区。例如,代表硬盘卷副本的扇区接扇区的图像文件被保存在CD ROM中。
使用的图像文件至少有两个功能。第一,图像文件被用来将源存储媒体卷恢复到该图像文件创建时的状态。这样,若存储媒体卷受损或被破坏时,图像文件可用来恢复存储媒体卷。第二,图像文件用来将相同的基本配置提供给许多计算机系统。
因为图像文件被创建为源存储媒体的扇区接扇区副本,并保存为单数据流,所以操作该图像文件就很困难了。操作系统不能很容易的从数据流中读控制信息或单个文件数据。因此,数据流中的文件不能被新文件或编辑的文件替换。为了更新图像文件,有必要将图像文件恢复到存储媒体卷中,并更新到存储媒体卷,然后,创建新图像文件。另外,若用户或系统管理员想保持图像文件的不同版本,则必须创建每个不同版本的单独图像文件。这样,已知保持图像文件的方法是非常耗费资源且昂贵的。
控制流形成了唯一标识图像文件的图像文件标题。该控制流也包括标识源存储媒体卷的数据,如标识源存储媒体卷几何特性的数据和保存在源存储媒体中的操作系统。控制流提供了需要读、恢复、编辑或者其他操作图像文件的信息。
数据流包括源存储媒体卷中许多文件中每一个的数据。数据流也包括来自源存储媒体卷的控制信息。数据流中的数据被有选择的压缩或加密。在本发明的一个实施例中,当创建图像文件时,进行数据流中数据的碎片整理(defragmented)。
位图流标识了分配到文件的源存储媒体中的串和保持未分配的串。该位图流通过提供允许操作系统标识可保存新数据的源存储媒体位置的快速查找,来帮助编辑图像文件。
串地图流将源存储媒体中一组数据的位置与其在数据流中的位置相关联。诸如性质流和查账索引流这样的可选择图像文件流标识了位于图像文件中的文件类型,并标识了对该图像文件所作的编辑。
图像驱动器提供了允许操作系统存取图像文件的接口。该图像驱动器将包括虚拟串位置的存取需求转换为数据流位置。该图像驱动器允许操作系统像图像文件是单独设定地址的存储媒体卷一样来读该图像文件。
图像驱动器允许编辑图像文件。当图像驱动器接收到需求来将数据写到图像文件中时,图像驱动器将数据写到数据流的末端。图像驱动器通过提供将虚拟串位置与数据流位置相关联的串地图记录来更新串地图流。
进一步结合附图,从下面例证性实施例的详细说明中我们可以明显看到本发明的附加特性和优点。
图1是主要阐明本发明涉及的范例计算机系统的结构图;图2是用来创建、恢复和编辑图像文件的操作环境的结构图;图3是本发明使用的图像文件格式的结构图;图4是本发明使用的串流的结构图;图5是用来创建图像文件过程的结构图;图6是用来恢复图像文件过程的结构图;图7是用来允许存取图像文件中数据过程的结构图;图8是用来存取图像文件中数据操作环境的结构图。
图9是多相关图像文件的结构图;图10是用来在媒体上传送图像文件的方法结构图。
图像文件的数据流包括从源存储媒体卷复制的数据。控制流、位图流和串地图流包括需要管理数据流中数据的信息。图像文件由将虚拟存储媒体参考提供给图像文件的设置过程来存取。在设置了图像文件后,操作系统通过参考虚拟串存取数据流中的数据。串地图流用来将虚拟串转换为数据流中的位置。本发明允许操作系统像图像文件是诸如硬盘驱动器这样的存储媒体卷一样,存取图像文件。例如,可查看、编辑、创建或删除保存在数据流中的文件。
在本发明的一个实施例中,源存储媒体卷的多版本保存在一个或多个图像文件中。在第一时间段创建了源存储媒体卷中作为父图像文件的第一图像文件。在第二时间段创建了源存储媒体卷中作为子图像文件的第二图像文件。子图像文件仅包括来自从第一时间段开始就已改变的源存储媒体卷的数据。第一和第二图像文件被保存为单独文件。做为选择,第一和第二图像文件保存为单图像文件的一部分。第一和第二图像文件允许将来自在第一或第二时间段的源存储媒体卷的数据提供给目标存储媒体卷。
转到附图,其中相同的参考数字表示相同的元素,阐述的本发明是在合适的计算环境中实施的。这里将在计算机可执行指令的通用上下文中来说明本发明,尽管不需要这样做,其中该计算机可执行指令的通用上下文诸如由个人计算机正执行的程序模块。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。本发明也可在分布计算环境中应用,其中由通过通信网络连接的远程处理装置来执行任务。在分布计算环境中,程序模块既可位于本地存储器存储装置中,也可位于远程存储器存储装置中。
图1阐明了可实施本发明的合适计算系统环境100的例子。该计算系统环境100仅为合适计算环境的一个例子,且并没有暗示对本发明使用性或功能性范围的限制。该计算环境100也不应认为依赖或需要涉及范例操作环境100中阐明的任何一个组件和其组合。
本发明可用于许多其它的普通用途或专用计算系统环境或配置。可适合用于本发明的熟知计算系统、环境和/或配置的例子包括,但不仅限于,个人计算机、服务器计算机、手持或膝上装置、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子装置、网络PC、小型机、大型计算机、以及包括上述这些系统或装置中的任何一个和类似系统和装置的分布计算环境。
本发明可在诸如由计算机正执行的程序模块这样的计算机可执行指令的通用上下文中说明。通常,程序模块包括执行特定任务或实现特定的抽象数据类型的例程、程序、对象、组件、数据结构等。本发明也可在分布计算环境中应用,其中由通过通信网络连接的远程处理装置来执行任务。在分布计算环境中,程序模块既可位于包括存储器存储装置的本地计算机存储媒体中,也可位于包括存储器存储装置的远程计算机存储媒体中。
结合图1,用来实施本发明的范例系统包括形式为计算机110的通用计算装置。计算机110的组件可包括,但不局限于,处理单元120、系统存储器130和将包括系统存储器的不同系统组件与处理单元120结合起来的系统总线121。该系统总线121可为几种总线结构类型中的任何一种,这些总线结构类型包括存储器总线或存储器控制器、外围总线和使用多种总线结构中任何一种的本地总线。通过例子,但不局限于此,这样的结构包括工业标准结构(ISA)总线、微通道结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线和外围组件互连(PCI)总线,其中该PCI总线也是所知的Mezzanine总线。
计算机110通常包括多种计算机可读媒体。计算机可读媒体可为任何可被计算机110存取的可用媒体,它包括易失性和非易失性媒体、可移动和不可移动媒体。通过例子,但不局限于此,计算机可读媒体可包含计算存储媒体和通信媒体。计算机存储媒体包括在任何方法或技术中应用来存储诸如计算机可读指令、数据结构、程序模块或其它数据这样信息的易失性和非易失性、可移动和不可移动媒体。计算机存储媒体包括,但不局限于,RAM、ROM、EEPROM、闪存或其它存储器技术,CD ROM、数字多用途盘(DVD)或其它光盘存储器,盒式磁带、磁带、磁盘存储或其它磁存储器装置,或能用来保存所需信息并可由计算机110存取的任何其它媒体。通信媒体通常具体体现在计算机可读指令、数据结构、程序模块或其它诸如载波或其它传送机制这样的已调制数据信号中的数据上,通信媒体包括也包括任何信息传递媒体。术语“已调制的数据信号”意指将其一个或多个特性设置或改变为对信号中的信息编码的形式。通过例子,但不局限于此,通信媒体包括诸如有线网络或单线连接(direct-wired connection)这样的有线媒体和诸如声音、RF、红外线和其它无线媒体这样的无线媒体。上述任何媒体的组合也应包括在计算机可读媒体的范围之内。
系统存储器130包括形式为诸如只读存储器(ROM)131和随机存取存储器(RAM)132这样的易失性和/或非易失性存储器的计算机存储媒体。基本输入/输出系统133(BIOS),包括帮助在计算机110中的元素间传送信息的基本例程,如在开始阶段,该基本例程通常保存在ROM 131中。RAM 132通常包含可直接存取和/或当前在处理单元120上运行的数据和/或程序模块。通过例子,但不局限于此,图1阐明了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可包括其它的可移动/不可移动、易失性/非易失性计算机存储媒体。仅通过例子,图1阐明了读入或写出到不可移动、非易失性磁媒体的硬盘驱动器141,读入或写出到可移动、非易失性磁盘152的磁盘驱动器151,以及读入或写出到诸如CD ROM或其它光媒体这样的可移动、非易失性光盘156的光盘驱动器155。其它可用在范例操作环境中的可移动/不可移动、易失性/非易失性计算机存储媒体包括,但不局限于,盒式磁带、闪存卡、数字多用途盘、数字视频带(digital video tape)、固态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中,其中该指点装置161通常指鼠标器、跟踪球或触摸板。其它的输入装置(未示出)可包括扩音器、操纵杆、游戏垫、圆盘式卫星电视天线、扫描仪或类似的装置。这些和其它的输入装置通常通过与系统总线结合的用户输入接口160与处理单元120相连,其中用户输入接口160也可与其它的接口和总线结构相连,如并行端口、游戏端口或通用串行总线(USB)。监视器191或其它类型的显示装置也通过诸如视频接口190这样的接口与系统总线121相连。除了监视器之外,计算机也可包括诸如扬声器197和打印机196这样可通过输出外围接口195相连的其它外围输出装置。
计算机110可在使用到一个或多个诸如远程计算机180这样的远程计算机逻辑连接的网络化环境中工作。远程计算机180可为另一台个人计算机、服务器、路由器、网络PC、对等装置(peer device)或其它共用网络节点,该远程计算机180通常包括上述相对个人计算机110的许多或所有元素,尽管图1仅阐明了存储器存储装置181。图1中描述的逻辑连接包括本地网(LAN)171和广域网(WAN)173、但也可包括其它的网络。这样的网络环境常见于办公室、全企业计算机网络、局内网和国际互联网。
当在LAN网络环境中使用个人计算机110时,该个人计算机110通过网络接口或适配器170与LAN 171相连。当在WAN网络环境中使用计算机110时,计算机110通常包括调制解调器172或其它确立WAN 173上,如国际互联网上通信的装置。可为内置或外置的调制解调器172可通过用户输入接口160或其它合适的机制与系统总线121相连。在网络化环境中,相对个人计算机110描述的程序模块或其部分可保存在远程存储器存储装置中。通过例子,但不局限于此,图1阐明了驻留在存储器装置181中的远程应用程序185。需要注意,所示的网络连接是范例性的,可也使用在计算机间确立通信连接的其它装置。
在下列的说明中,除非另外指出,将结合由一台或多台计算机实施的动作和符号表示法来说明本发明。这样,我们会了解这样的动作和操作,有时指计算机可执行的,包括表现结构形式中数据的电子信号计算机处理单元的操作。该操作将数据转换或将数据保持在计算机存储器系统中的位置上,其将计算机的操作重新配置或改变为本领域的熟练技术人员易于理解的形式。数据保持的数据结构是具有用数据格式定义的特定性质的存储器物理位置。然而,虽然本发明用前述的上下文来描述,这并不意味着局限性,本领域的熟练技术人员可以理解,也可在硬件中实施下文中说明的不同动作和操作。
图2阐明了具体体现本发明的范例操作安排。该操作安排包括与源存储媒体204和目标存储媒体206相接的计算机200。操作系统202在计算机200中执行。该操作系统202包括诸如文件系统驱动器208、图像驱动器210和装置驱动器212这样帮助在计算机200和存储媒体204及206之间通信的组件。
每个存储媒体在逻辑上被划分为一个或多个卷。存储媒体204被划分为第一卷214和第二卷216。存储媒体206被划分为单卷。每个存储媒体卷是操作系统202可存取的。
每个存储媒体204和206包括几何特性。存储媒体的几何特性包括许多圆柱面、每圆柱面磁轨和每磁轨扇区。扇区是存储媒体上的物理单位。每个扇区能保存特定数量的信息,例如,512字节。每个存储媒体204和206的几何特性不必相同。
串是一组一个或多个扇区。操作系统202,尤其指文件系统驱动器208通过标识串的数量将读写需求发送到装置驱动器。文件系统确定包含串的扇区数量。存在不同的已知文件系统,如文件分配表16(FAT 16)、文件分配表32(FAT32)、紧密盘文件系统(CDFS)和新技术文件系统(NTFS)。
如所示,源存储媒体204的第一卷214包括源数据218。源数据218包括许多诸如操作系统文件236这样的操作系统、诸如应用程序这样的可执行程序238和使用在应用程序中的数据文件240。源数据218也包括控制信息242。该控制信息包括标识包括每个文件数据存储媒体卷214中的串的文件分配数据249。控制信息242也包括位面具(bitmask)248。该位面具248包含许多位,且每个位相应于存储媒体卷中的一个串。位面具中的每个位具有标识相应串是否包括至少一个文件的已保存数据以及该串是否保持未分配的值。
用来组织和保存控制信息242和文件236、238、240的方式依赖使用的文件系统。通过例子,NTFS文件系统在存储媒体中保存了主文件表(Master FileTable)(MFT)。该MFT包括每个保存在存储媒体中文件的范围列表(extent list)。该范围列表包括一连串的标识开始方块和长度的条目。该开始方块和长度定义了一连串的包括文件数据的邻近串。
包括作为源数据218部分的其它信息包括页面存储器(paged memory)244和BIOS参数块(BPB)。页面存储器244是计算机存储器中被写到存储媒体中的部分。BPB包括关于存储媒体卷的数据,如媒体的大小和存储媒体中特定文件的位置。
目标存储媒体206包括图像文件220。该图像文件是包括源数据218信息的逻辑捕获(logical capture)。在本发明中,图像文件220被用来恢复到存储媒体卷的源数据218。例如,图像文件220被用来将已恢复的数据创建到存储媒体卷216中。该已恢复的数据215包括操作系统文件236、可执行程序、238、数据文件240和原本源数据218的控制信息242。如在下面将更详细说明的,已恢复数据215中数据的串位置不必直接相应于来自源数据218数据的串位置。例如,当创建图像文件220时,可进行源数据218的碎片整理。已恢复的数据215也可置于源卷214中,那里生成了图像文件220,从而将源存储媒体卷214恢复到先前的状态。
图像文件220也可用来将源数据218置于与单独计算机相接的存储媒体上。可通过诸如LAN、WAN或国际互联网这样的计算机网络将图像文件220恢复到远程计算机的存储媒体上。若图像文件220被置于诸如CD ROM或DVD盘这样的可移动媒体上,则也可将图像文件220恢复到单独计算机上。可移动媒体与单独计算机相接,并被恢复到与单独计算机相接的另一个存储媒体卷中。
目标存储媒体206也包括标注为220a、220b、220c的图像文件。本发明允许编辑图像文件220。在编辑了图像文件220后,该图像文件可保存为诸如图像文件220a这样的单独文件。这样,就创建了图像文件的多版本。在可选择的实施例中,图像文件220是包括第一时间段处源数据218的父图像文件。图像文件220a、220b、220c是在后续时间段生成的子图像文件。每个子图像文件220a、220b、220c仅包括在创建父图像文件220后,对源数据218所做的改变。做为选择,子图像文件220a、220b、220c保存为图像文件220的一部分,从而用源数据218的多版本创建了单图像文件。
图像文件220包括许多图像流。如所示,图像220包括控制流222、数据流224、位图流226、串地图流228、查账索引流230和性质流232。图像流保存在目标存储媒体206中,作为图像文件220的一部分。图像文件220也包括修补流234。该修补流234是在其它图像流中的数据被写到图像文件220中之前,用来调整其它图像流中数据的临时流。一旦调整了其它流中的数据,该修补流234就被从图像文件中移除。在本发明的一个实施例中,查账索引流230和性质流232是可选的。图像文件220a、220b、220c包括与图像文件220相同的图像流。
在所示的实施例中,目标存储媒体206和源存储媒体214通过共用装置驱动器212和文件系统驱动器208连接到计算机200上,从而假设这两个存储媒体使用共用文件系统和相同的存储媒体类型。如本领域的熟练技术人员会认识到的,可使用不同的存储媒体类型,而且每个存储媒体卷可利用不同的文件系统。例如,当存储媒体卷214是使用FAT 16或FAT 32的硬盘时,存储媒体卷206是使用CDFS文件系统的CD ROM。在那种情况下,通常需要许多文件系统驱动器208和装置驱动器212。
操作管理包括装配工具250、捕获工具252、恢复工具254和应用程序256。应用程序256包括,如字处理应用程序、基于数据的程序和其它诸如用来管理存储媒体那样的系统资源。用来管理存储媒体的已知资源允许用户查看存储媒体中的文件、复制文件、删除文件、移动文件以及类似的操作。捕获工具252从源数据218中创建图像文件220。恢复工具254从诸如原本源存储媒体卷214这样的存储媒体卷中或诸如卷216这样的单独存储媒体卷中的图像文件220中创建已保存的数据215。
在本发明的一个实施例中,装配工具250、捕获工具252和恢复工具254被应用为孤立应用程序(stand alone applications)。然后,该工具可通过用户接口、应用程序、其它程序模块或命令行需求来执行。在本发明的另一个实施例中,装配工具250、捕获工具252和恢复工具254作为用户接口、应用程序或其它程序模块的一部分来实施。
工具250、252和254将请求发送到操作系统202。做为选择,来自工具250、252、254的请求通过接口232发送。接口232提供到图像文件220中单独流222-234中信息的存取。这样,就提供了可扩展的工具集合,如可创建新工具来操作图像文件220。
装配工具250被用来初始化允许操作系统202与图像文件220互相作用的序列,就像图像文件220是存储媒体卷一样。装配工具250与诸如图像驱动器210和文件系统驱动器208这样的操作系统组件协作,来提供图像文件220的可设定地址驱动器号装配点,从而就创建了虚拟存储媒体。在装配工具250执行后,操作系统可从图像文件220读数据和将数据写到图像文件220中。该装配工具由任何应用程序、用户接口、系统资源或命令行需求来初始化。例如,装配工具在引导序列阶段初始化,从而允许计算机200从图像文件220导入。
图3是本发明使用的图像文件220的实施例。该图像文件220包括控制流222、数据流224、位图流226、串地图流228、查账索引流230、性质流232和修补流234。如前所述,查账索引流230和性质流232是可选的,并实施用来提供图像文件220的附加功能性。修补流234是临时性的,被用来在其它图像文件流被写到目标存储媒体206中的图像文件220之前修正其它的图像文件流。
控制流222是起说明需要打开和解释包括在图像文件220中其它数据的图像文件220属性的标题作用的数据结构。控制流中的数据包括图像标识符260、卷信息262、存储媒体几何特性264、文件系统信息266、操作系统信息268和压缩信息270。
图像标识符260是唯一标识图像的数据,也是标识控制流222字节大小的数据。卷信息262包括定义源存储媒体卷214的数据。卷信息262中的数据包括距存储媒体204开始部分的卷偏移、卷的长度、卷中隐藏扇区的数量、卷标号和卷使用的文件系统类型。
存储媒体几何特性264包括说明源存储媒体264物理属性的数据,其中该源存储媒体264包括柱面数、每柱面磁轨数和每磁轨扇区数。文件系统信息266包括标识全部串数、每串字节和每记录串数的数据。
操作系统信息268包括标识保存为源数据218一部分的操作系统版本的数据。该操作系统信息268也包括标识所做到诸如服务包标识这样操作系统的任何更新的数据。服务包是到软件程序的更新,其中该更新用软件程序修补已知的问题或进行该软件程序增强。服务包标识标识任何保存在源存储媒体卷214中对操作系统文件236的服务包。压缩/加密信息包括标识图像文件是否被压缩和图像文件220是否被加密的数据。
数据流224包括来自源存储媒体卷214的源数据218。如前所述,源数据218包括用来在源存储媒体卷214中保存文件的数据。使用已知的方法对每个文件的数据进行有选择的压缩和加密。压缩或加密数据的决定是在一个文件接着一个文件为基础上做出的。这样,数据流224中的某些数据可被压缩,而其它数据却不能。同样的,数据流224中的某些数据可被加密,而其它数据却不能。形成源数据218一部分的控制信息242也包含文件,并保存为数据流224的一部分。
在本发明的一个实施例中,数据流224不包括同样数据的多副本。例如,若相同数据文件240的多副本被保存在源存储媒体卷214中,则数据文件240的仅一个副本保存在数据流224中。页面存储器244也不必包括在数据流224中。当图像文件220在存储媒体卷中恢复时,操作系统220根据需要在存储媒体卷中创建了页面存储器244。消除数据的多副本和页面存储器文件减小了图像文件220的大小。
串地图流228包括许多记录,每个记录标识虚拟串的位置和数据流的位置。每条记录中虚拟串的位置包括开始串272和结束串274。开始串272和结束串274标识了当一组源数据保存到存储媒体卷中时这组源数据属于的邻近串。数据流位置包括偏移278、长度276、压缩大小280,该数据流标识了该组数据存在于数据流224中的位置。偏移278标识了如从数据流的开始位置测得的数据流224中数据的开始位置。对已压缩的文件,图像文件220中该组数据的长度与已压缩的大小280相等。对未压缩的数据,图像文件220中该组数据的长度是长度276和每串字节数的乘积,这如在控制流222中标识的一样。标志区域282标识了图像文件220中的数据是否被压缩或未被压缩。串地图流228中的记录允许将图像220作为虚拟存储媒体卷和要读的数据流224中的数据来查看、编辑或操作。
图4阐明了数据流中数据的位置如何与虚拟串位置相关的例子。该虚拟串位置相应于当图像文件被恢复到卷中时数据将置于存储媒体中位置的串。在图4中,假设每串字节是如在控制流222中标识的512。标注为346的虚拟存储媒体包括连续标号的块。每个块表示一个串。数据流224也包括连续标注的块。数据流224中的每个块表示数据流224中的字节,该数量表示字节中从数据流224开始处的偏移。
串地图记录228中的开始串区域262包括开始串100,结束串区域149包括结束串149。开始和结束串定义了一组邻近块,其为当图像文件被恢复到存储媒体中时放置的一组数据;如虚拟串位置。偏移区域具有值1000。因此,数据从偏移数据流224开始处1000字节的地方开始。区域272表示数据没有被压缩。这样,数据流224中数据的长度是标识为长度区域266中50的长度和每串字节数512的乘积(50串×512字节每串=25,600字节)。如所示,图像文件中相应的数据以数据流224的开始为参考,通过26599定位在字节1000处。
如上所述,当创建图像文件220时,可进行源数据218的碎片整理。在该情况下,开始串和结束串可能不相应于源存储媒体卷214的原本位置。开始和结束串的数量而是标识了当图像文件220被恢复到存储媒体卷中时数据保存位置的串,这如虚拟存储媒体346表示的一样。
若相同数据的多副本保存在源存储媒体卷214中,则该数据仅被放置在数据流224中一次。在该事件发生的地方,创建了串流228中的多记录,源存储媒体卷214中数据每出现一次,就有一条记录。每条记录包括相同的长度266、偏移262、压缩大小270和压缩272领域,从而指向数据流224中的相同数据。开始串262和结束串264领域是不同,因此就标识了当图像文件被恢复到存储媒体卷中时数据将保存的多位置。
返回图3,位图流226被用来标识虚拟分配和未分配的串。该虚拟分配的串是将包括当图像文件被恢复到存储媒体卷中时数据的串。虚拟未分配的串表示当图像文件被恢复到存储媒体卷中时将可保存新数据的串。在所示范例中,位图流被实施为位图。位图中的每一位相应于串。具有值“1”的位表示虚拟分配的串,而具有值“0”的位表示虚拟未分配的串。位图流执行与位面具240相同的功能。然而,由于位图流226在数据流224的外部,所以很容易在图像文件220中存取该位图流226。
查账索引流230包括标识对图像文件所做的任何改变、初始化该变化的用户、文件,是否有任何修正以及实施改变的日期和时间。性质流232包括标识诸如操作系统版本这样图像文件220属性的数据。性质流232被询问来定位包括操作系统特定版本的图像文件。查账索引流和性质流以任何合适的方式来实施。
修补流被用来在操作系统202读源数据218之后和在将许多流写到图像文件220中之前修正图像流。例如,在NTFS文件系统的情况下,若当创建图像文件时进行文件的碎片整理,则修补流修正该MFT。
图5阐明了用来从源存储媒体卷214创建图像文件220的过程。该过程290可由诸如在图像驱动器210中工作的程序模块这样的操作系统202来执行。做为选择,该过程290可由诸如捕获工具252这样的系统工具232完全或部分的执行。
通常,通过来自系统工具232的用户需求来创建图像文件220。如前所述,系统工具232通过部分用户接口、应用程序或其它程序模块来执行或实施为部分用户接口、应用程序或其它程序模块。系统工具232也从命令行需求来执行。在接收了来自系统工具232的需求后,操作系统202打开步骤292所示的源存储媒体卷214。为打开源存储媒体卷214,图像驱动器210通过文件系统驱动器208获得源存储媒体卷214的参考。一旦获得了该存储媒体卷214的参考,操作系统202就通过图像驱动器210和装置驱动器212与存储媒体214进行通信。
在步骤294中,过程290创建了许多包括控制流222图像文件220的图像流、数据流224、位图流226、串地图流228、查账索引流230、性质流232和修补流234。在这一点,许多包括图像文件220的流可在存储器结构中实施,或做为选择,可在目标存储媒体卷206中直接实施。
在步骤296中,过程290读源存储媒体卷214中的控制信息242。该控制信息242标识了许多源存储媒体卷214中的文件和分配到每个这样文件中的串。例如,若源存储媒体卷使用NTFS文件系统,过程290就读存储媒体卷214中的MFT。
在步骤298中,过程290读由控制信息242标识的第一文件的数据。在步骤300中,过程将该文件数据置于数据流224中。如前所述,若存在文件数据的多副本,则该数据仅被置于数据流中一次。另外,若文件数据是页面存储器244的一部分,则该文件数据不必置于数据流224中。当该文件数据置于数据流224中时,其可进行有选择的碎片整理。
在步骤302中,通过将与虚拟串位置相关的记录添加到其数据流位置来更新串流228。在步骤304中,过程290确定源存储媒体卷214是否包括更多的文件数据。若存在更多的文件数据,过程290则返回到步骤298,并读下一个文件的数据。
若不存在更多的文件数据,过程290则前进到步骤306并将进行图像文件流的修补。进行的修补用来解决数据移动。例如,如前所述,过程290可对许多源存储媒体卷214中文件的数据进行碎片整理。这样,过程290就修正了位于数据流224中的控制信息242,以使控制信息242标识现在分配给每个文件的串。在NTFS卷的情况下,过程纠正了MFT中每个文件的范围列表。因为每个文件的数据进行了碎片整理,所以每个文件的范围列表包括单范围。考虑到数据位置的变化,位面具248也被修正来正确反映已分配的和未分配的串。修补也被应用到BPB 246中。因为参考BPB中的文件位置发生了变化,所以修正BPB,以使参考正确的文件位置。
一旦完成了该过程,控制流222、数据流224、位图流226、串地图流228、查账索引流230和性质流232就被写到目标存储媒体206中,从而形成了步骤308中所示的图像文件220。
图6示出了标注为310的过程,其用来将图像文件220恢复到诸如源存储媒体卷214这样的存储媒体卷中。过程310可由操作系统202来执行。做为选择,过程340由诸如恢复工具254这样的系统工具232完全或部分执行。在步骤312中,过程310打开图像文件220并获得目标存储媒体卷206的参考。
在步骤314中,过程310读许多包括在串地图流228中的串地图记录的其中一个。该串地图记录标识了数据流224中数据的位置,也标识了源存储媒体卷214中数据的意向位置;如虚拟串位置。在读过串地图记录后,如步骤316所示,该数据从数据流224中读出。然后,该数据被写到串中的存储媒体214,其中该串由串地图228中的开始和结束串标识。
在步骤320中,过程310确定是否有更多的记录存在于串地图流228中。若存在更多的记录,过程则返回到步骤314,在那里检查下一个串地图记录。若不存在更多的记录,过程310就前进到步骤322,那里进行修补。若用来创建图像文件的源存储媒体卷214和源数据218被恢复处的存储媒体卷之间的几何特性不同,则需要修补。例如,若在BPB中标识的文件位置改变了,则更新BPB来反映文件的新位置。BPB也包括存储媒体的几何信息。BPB中的几何信息需要更新来反映包括已恢复源数据218存储媒体的实际几何特性。
图7阐明了标注为328的过程,该过程用来提供由操作系统202对图像文件220进行的存取。过程328被初始化为来自装配工具250的用户需求的结果。做为选择,当应用程序256试图存取图像文件220时或当接收到命令行需求时,过程328被初始化了。在步骤330,图像驱动器210接收到了装配需求。
在图像驱动器210接收到装配需求时,图像驱动器210将需求发送到文件系统驱动器208来打开步骤332所示的图像文件220。打开文件是操作系统202进行的标准过程,其允许存取存储媒体中的文件。因为图像文件220保存为存储媒体206中的文件,所以必须在其被存取之前打开它。
一旦打开了图像文件220,图像驱动器210就绕过文件系统驱动器208并直接读图像文件220。该图像驱动器210读步骤334和336所示的控制流222和串地图流228。如前所述,控制流包括标识用来组织源数据218的文件系统类型以及源存储媒体214的几何特性。控制流中的数据有必要说明诸如数据流224这样其它流中的信息。串地图流228包括必要的信息来将虚拟串位置于数据流位置相关联。
在步骤338中,图像驱动器210需求图像文件220的驱动器号装配点任务。该任务由负责分配驱动器号装配点的操作系统202的部分来执行。
图8阐明了图像驱动器210如何与图像文件220合作以从图像文件220中的数据来创建虚拟存储媒体卷。一旦装配了图像文件220,该文件系统驱动器208就像图像文件是存储媒体卷一样来存取该图像文件220。如下,图像驱动器210操作所示的文件系统驱动器208并从文件系统驱动器208转换存取需求。为简单起见,未示出装置驱动器212。
通过例子,当文件系统驱动器208发布数据请求340来从图像文件中读数据时,该文件系统驱动器208标识了一组串。该串相应于需要的数据将驻留在已恢复数据215中的位置上。这样,操作系统202实际提供了一组虚拟串。图像驱动器210截取(intercepts)了数据请求340。然后,图像驱动器检查串地图流228,并用相应于由文件系统驱动器208提供虚拟串的开始串和结束串来定位记录。然后,图像驱动器在基于串地图记录的数据流中定位需要的数据,从数据流中读数据,并将需要的数据342传送到文件系统驱动器208中。
上面的安排允许操作系统就像其是存储媒体卷一样来请求来自该图像文件220的数据。这样,操作系统202可读控制信息242、数据文件240、可执行程序238和其它保存在数据流224中的数据。结果,操作系统202将图像文件作为通常标注为346的虚拟存储媒体来查看。例如,应用程序256可通过操作系统202从图像文件220中读数据文件240。然后,应用程序256可编辑数据文件240。如另一个例子,诸如那些用来读和显示存储媒体内容的存储媒体资源用于图像文件。该存储媒体资源显示了图像文件的内容,就像该图像文件是已恢复的数据215一样。
因为允许图像文件的存取,可用工具的集合是可扩展的。例如,接口232可形成允许存取图像文件220中数据流的应用程序设计接口232。这样,该结构就允许创建新工具来创建、恢复、查看、编辑或者操作图像文件220。
操作安排也允许编辑图像文件220。文件系统驱动器208发送数据请求340以将数据写到一组串中。该组串相应于一组虚拟未分配串。图像驱动器210截取该请求并将标注为248的数据写到数据流224的末端。若该数据表示新文件,图像文件驱动器210则创建标识虚拟串位置的新串地图记录。该串地图记录进一步包括数据流位置。
若该数据表示已编辑的文件,图像驱动器则将数据写到通常标注为248数据流224的末端。然而,没有创建新的串地图228记录。图像驱动器而是定位标识文件数据前面位置的记录,并修正该记录来包括新的虚拟串和数据流位置。
图9阐明了图像文件的多版本。父图像文件220是第一时间段处的源数据218捕获。如前所述,控制流包括唯一标识图像文件220的数据。子图像文件220a是第二时间段处的源数据218捕获。然而,子图像文件220a的数据流和串地图流仅表示从第一时间段到第二时间段对源数据218所做的数据改变。例如,若在生成父图像文件220之后添加新的操作系统程序236,子图像文件220a则仅包括新文件的数据。在子文件220a中创建串地图记录以支持数据流中和盘上新文件数据的位置。子图像文件220a包括在其控制流中的数据,其标识了父图像文件220。子图像文件220c同样表示在第三时间段处的源数据218。
父图像文件220和子图像文件220a、220b保存为分离文件。做为选择,父文件220和子图像文件220a、220b保存为更大文件206的一部分。使用父和子图像文件的优点是保持了图像的多版本,而不必重新创建(recreate)整个图像文件。这样,就减少了图像文件多版本的总体大小。
图10阐明了在诸如网络这样的媒体上传送图像文件的方法。如所示,图像文件220被破解为多个段360、362、364、366。每个段表示一组可在网络上单独传送的数据。第一段360包括控制流222、位图流226、性质流232、查账索引流230、修补流234和串地图流228。第一段也包括标注为224a数据流的一部分。剩余段362、363、364包括数据流224b、224c、224d的其它部分。224a、224b、224e和224d部分共同形成了整个数据流224。
每个段360、362、363、364是可在网络上单独传送的。这样,若第一计算机将图像文件220发送到网络中的第二计算机,并在没有网络连接的过程中,第一计算机则仅需要重新发送那些没有被第二计算机完全接收的段。
这里所引用的所有参考资料通过引用在此合并其全部内容。
考虑到本发明的原理可应用到许多可能的实施例中,应认识到这里结合


的实施例仅是例证性的,且不应对本发明范围做出限制。例如,那些在本领域熟练的技术人员会认识到软件中所示已阐明实施例中的元素可在硬件中实施,(反之亦然),且已阐明的实施例在不背离本发明的主旨的情况下可进行修正和详细修正。因此,这里所述的发明包括所有符合下列权利要求和其等价技术方案的实施例。
权利要求
1.存取图像文件中数据所述的方法,该图像文件包括许多包含数据流和串地图流的流。数据流包括数据和包括许多记录的串地图流,每条记录标识了数据的虚拟位置和数据的数据流位置,这包含接收存取请求,其中存取请求标识了数据的虚拟位置;将虚拟位置映射到使用许多记录的其中一个的数据流位置上;从数据流中读数据。
2.如权利要求1所述的方法,其特征在于存取请求从应用程序处初始化,数据由应用程序接收。
3.如权利要求1所述的方法,其特征在于存取请求从用户接口处初始化。
4.如权利要求1所述的方法,其特征在于存取请求从命令行请求处初始化。
5.如权利要求1所述的方法,进一步包含编辑数据和将已编辑的数据写到图像文件中数据流的步骤。
6.如权利要求5所述的方法,其特征在于已编辑的数据被写到数据流的末端。
7.如权利要求1所述的方法,其特征在于,进一步包含从应用程序处存取数据、编辑数据和将已编辑的数据写到图像文件中数据流的步骤。
8.如权利要求7所述的方法,其特征在于,已编辑的数据被写到数据流的末端。
9.如权利要求1所述的方法,其特征在于,虚拟位置包含一组串。
10.如权利要求9所述的方法,其特征在于,串是邻近的。
11.如权利要求1所述的方法,其特征在于,数据流中的数据被压缩了,进一步包含解压缩(decompressing)数据。
12.如权利要求1所述的方法,其特征在于,数据流中的数据被加密,进一步包含对数据进行解密。
13.如权利要求1所述的方法,进一步包含接收装配请求;打开图像文件来存取;将虚拟驱动器装配点提供给图像文件,其中该存取请求包括虚拟驱动器装配点。
14.编辑第一图像文件所述的方法,第一图像文件包含许多包括数据流和串地图流的流,这包括在图像驱动器处,接收请求来保存一组第一图像文件中的数据,该请求包括该组数据的虚拟位置;将该组数据添加到数据流中的位置;创建串地图记录;该串地图记录包括该组数据的虚拟位置和该组数据在数据流中的位置;将串地图记录添加到串地图流。
15.如权利要求14所述的方法,其特征在于,该组数据被添加到数据流的末端。
16.如权利要求14所述的方法,其特征在于,该组数据的虚拟位置从位面具流中确定;位面具流标识了已分配的和未分配的串,虚拟位置包含一个或多个未分配串。
17.如权利要求14所述的方法,其特征在于,图像文件进一步包含查账索引流,进一步包含创建查账索引记录,该查账索引记录标识了包括该组添加到数据流中数据的文件。
18.在至少包含第一计算机和第二计算机的网络上传送图像文件所述的方法,该图像文件包含控制流、数据流和串地图流将图像文件分解为至少包括第一段和第二段的许多段,其中第一段包含控制流、串地图流和数据流的第一部分,第二段包含数据流的第二部分;将第一段从第一计算机发送到第二计算机;将第二段从第一计算机发送到第二计算机。
19.如权利要求18所述的方法,其特征在于,第一和第二段的长度是充分相等的。
20.如权利要求19所述的方法,其特征在于,该长度是用户可选择的。
21.在计算机中,从源存储媒体中的源数据创建许多图像文件所述的方法包含从源数据创建第一图像文件,并将第一图像文件保存在目标存储媒体卷中,第一图像文件包含第一数据流,其中该第一数据流包括数据源、具有唯一标识符的第一控制流和第一串地图流;修正在源存储媒体卷中的源数据;从已修正的该组数据创建第二图像文件,并将第二图像文件保存在目标存储媒体卷中,第二图像文件包含包括已修正源数据的第二数据流;指向第一图像文件唯一标识符的控制流,以及第二串地图流。
22.如权利要求21所述的方法,其特征在于,第一和第二图像文件保存为单文件的一部分。
23.对存取图像文件中需要数据方法的具有计算机可执行指令的计算机可读媒体,该图像文件包含许多包括数据流和串地图流的流,该数据流包括需要数据和包括许多记录的串地图流,每条记录标识了需要数据的虚拟位置和需要数据的数据流位置,这包含接收存取请求,其中存取请求标识了需要数据的虚拟位置;将虚拟位置转换到使用许多记录的其中一个的数据流位置上;从数据流中读数据。
24.如权利要求23的计算机可读媒体,其特征在于,数据流中的所需数据被压缩了,进一步包含解压缩所需数据。
25.如权利要求23的计算机可读媒体,其特征在于,数据流中的所需数据被加密了,进一步包含对需要的数据进行解密。
26.如权利要求23的计算机可读媒体,进一步包含接收装配请求;打开图像文件来存取;将虚拟驱动器装配点提供给图像文件,其中该存取请求包括虚拟驱动器装配点。
27.对编辑第一图像文件方法的具有计算机可执行指令的计算机可读媒体,第一图像文件包含许多包括数据流和串地图流的流,这包含在图像驱动器处,接收请求来保存一组图像文件中的数据,该请求包括该组数据的虚拟位置;将该组数据添加到数据流中的位置;创建串地图记录;该串地图记录包括该组数据的虚拟位置和该组数据在数据流中的位置;将串地图记录添加到串地图流。
28.如权利要求27的计算机可读媒体,其特征在于,图像文件进一步包含查账索引流,进一步包含创建查账索引记录,该查账索引记录标识了包括该组被添加到数据流中数据的文件。
29.对从源存储媒体中的源数据创建许多图像文件方法的具有计算机可执行指令的计算机可读媒体,这包含从源数据创建第一图像文件,并将第一图像文件保存在目标存储媒体卷中,第一图像文件包含第一数据流,其中该第一数据流包括数据源、具有唯一标识符的第一控制流和第一串地图流;修正在源存储媒体卷中的源数据;从已修正的该组数据创建第二图像文件,并将第二图像文件保存在目标存储媒体卷中,第二图像文件包含包括已修正源数据的第二数据流;指向第一图像文件唯一标识符的控制流,以及第二串地图流。
30.系统工具从包含许多流(许多流中的每个都包含一组数据)的图像文件中获取信息所述的方法包括步骤在接口处,接收来自许多流中至少一个的该组数据请求;将来自该接口的请求发送到在操作系统中执行的图像驱动器;从许多流中的至少一个处读该组数据;将来自许多流中至少一个的该组数据提供给系统工具。
全文摘要
提供了用来管理图像文件的系统和方法。该图像文件包括诸如控制流、数据流、位图流和串地图流这样的许多流。也可提供查账索引流、性质流和修补流。图像驱动器转换来自操作系统的请求,以便图像可读取、编辑或者操作。
文档编号G06F12/08GK1477522SQ03145720
公开日2004年2月25日 申请日期2003年6月30日 优先权日2002年6月28日
发明者W·A·威特, W A 威特, S·J·舒马切尔, 舒马切尔, K·N·拉加凡, 拉加凡 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1