JP4406225B2 - 宛先記憶媒体、イメージファイルの作成方法、データ復元方法およびプログラム - Google Patents

宛先記憶媒体、イメージファイルの作成方法、データ復元方法およびプログラム Download PDF

Info

Publication number
JP4406225B2
JP4406225B2 JP2003188933A JP2003188933A JP4406225B2 JP 4406225 B2 JP4406225 B2 JP 4406225B2 JP 2003188933 A JP2003188933 A JP 2003188933A JP 2003188933 A JP2003188933 A JP 2003188933A JP 4406225 B2 JP4406225 B2 JP 4406225B2
Authority
JP
Japan
Prior art keywords
data
cluster
file
storage medium
stream
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.)
Expired - Fee Related
Application number
JP2003188933A
Other languages
English (en)
Other versions
JP2004038979A (ja
Inventor
エー.ウィット ウェスリー
エス.ミラー エドワード
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2004038979A publication Critical patent/JP2004038979A/ja
Application granted granted Critical
Publication of JP4406225B2 publication Critical patent/JP4406225B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/11Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information not detectable on the record carrier
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、コンピュータシステムに関し、一般的にはファイルシステム形式(format)に関する。より詳細には、本発明は、メモリ媒体の内容を記憶するためのイメージファイルに関する。
【0002】
【従来の技術】
コンピュータシステムは、1つまたは複数の記憶媒体とインターフェースをとる。記憶媒体は、オペレーティングシステムファイル、アプリケーションプログラム、およびアプリケーションプログラムで使用されるデータファイルなどの様々なデータを記憶する。周知の記憶媒体のタイプには、ハードディスク、CD−ROM、デジタルバーサタイルディスク(DVD)等が含まれる。記憶媒体は、1つまたは複数のボリューム、つまりパーティションに論理的に細分される。記憶媒体は、複数のセクタにさらに物理的に細分される。各セクタは、複数のデータバイトを記憶することができる。クラスタは、一群のセクタであり、コンピュータで実行されているオペレーティングシステムが記憶媒体上の場所を特定するのに使用する最小単位を表わす。したがって、オペレーティングシステムは、通常、クラスタごとにクラスタ上で記憶媒体上のデータの記憶、または読取りを行う。
【0003】
記憶媒体上のデータは、1組のファイル、およびディスク上のファイルを管理するのに使用される他の制御情報として編成される。例えば、各オペレーティングシステムファイル、アプリケーションプログラム、またはデータファイルは、記憶媒体上の異なるファイルを表わす。制御情報は、各ファイルに関するデータを含む記憶媒体上のクラスタを特定する。また、制御情報は、割り振られた、すなわち、ファイルに関するデータを含む記憶媒体上のクラスタ、および割り振られていないままの、すなわち、新しいデータを記憶するのに利用可能なクラスタも特定する。ファイルおよび制御情報が記憶媒体上で厳密にどのように編成されるかは、ファイルシステムに依存する。ファイルアロケーションテーブル16(File Allocation Table16:FAT16)、ファイルアロケーションテーブル32(FAT32)、およびニューテクノロジーファイルシステム(New Technology File System:NTFS)などの様々な周知のファイルシステムが存在する。
【0004】
【発明が解決しようとする課題】
イメージファイルは、ソース記憶媒体ボリューム上に記憶されたデータのコピーである。通常、イメージファイルは、ソース記憶媒体ボリュームに含まれるデータのセクタごとのコピーである単一のデータストリームである。イメージファイルは、宛先記憶媒体ボリューム上に記憶される。宛先記憶媒体ボリュームは、同一の記憶媒体上の異なるボリューム、つまり異なるパーティションであるか、あるいは別個の記憶媒体である。例えば、ハードディスクボリュームのセクタごとのコピーを表わすイメージファイルが、CD−ROM上に記憶される。
【0005】
イメージファイルは、少なくとも2つの機能のために使用される。第1に、イメージファイルは、ソース記憶媒体ボリュームをイメージファイルが作成された時点の状態に復元するのに使用される。したがって、記憶媒体ボリュームが損傷した場合、または壊れた場合、イメージファイルを使用してその記憶媒体ボリュームを復元することができる。第2に、イメージファイルは、複数のコンピュータシステムに同一の基本構成を提供するのに使用される。
【0006】
イメージファイルは、ソース記憶媒体のセクタごとのコピーとして作成され、単一のデータストリームとして記憶されるため、イメージファイルを操作することは困難である。例えば、ソース記憶媒体ボリュームに関してイメージファイルが作成され、その記憶媒体ボリューム上のオペレーティングシステムファイルが後に、新しいバージョンで置き換えられた場合、その新しいオペレーティングシステムファイルを含むようにイメージファイルを容易に変更することはできない。代わりに、新しいイメージファイルを作成しなければならない。また、ユーザまたはシステム管理者が、異なるバージョンのイメージファイルを維持することを望む場合、それぞれの異なるバージョンに関して別個のイメージファイルを作成しなければならない。したがって、周知のイメージファイル形式は、リソースを多く使用し、その維持に高い費用がかかる。
【0007】
本発明により、イメージファイル、ならびにイメージファイルを作成し、復元するための方法およびシステムが提供される。イメージファイルは、ソース記憶媒体ボリューム上のソースデータから作成される。イメージファイルは、宛先記憶媒体ボリューム上に記憶される。イメージファイルは、複数のイメージストリームを含む。イメージストリームには、制御ストリーム、データストリーム、ビットマップストリーム、およびクラスタマップストリームが含まれる。監査証跡ストリーム、プロパティストリーム、および修正ストリームなどのその他のイメージストリームが、オプションとしてイメージファイルの中に含められる。
【0008】
【課題を解決するための手段】
本発明において、制御ストリームは、イメージファイルを一意的に特定するイメージファイルのヘッダを形成する。また制御ストリームは、ソース記憶媒体ボリュームジオメトリ(geometry)、およびソース記憶媒体上に記憶されたオペレーティングシステムを特定するデータなどの、ソース記憶媒体ボリュームを特定するデータも含む。制御ストリームにより、イメージファイルを読み取る、復元する、編集するのに必要な情報が提供される。
【0009】
また、データストリームは、ソース記憶媒体ボリューム上の複数のファイルのそれぞれに関するデータを含む。また、データストリームは、ソース記憶媒体ボリュームからの制御情報も含む。データストリーム内のデータは、オプションとして、圧縮されるか、または暗号化される。本発明の実施形態では、データストリーム内のデータは、イメージファイルが作成されたときにデフラグ(defragment)される。
【0010】
また、ビットマップストリームは、ファイルに割り振られているソース記憶媒体上のクラスタ、および割り振られていないままのクラスタを特定する。ビットマップストリームは、オペレーティングシステムが新しいデータを記憶するのに利用可能なソース記憶媒体上の場所を特定するのを可能にする迅速なルックアップを提供することにより、イメージファイルを編集することを容易にする。
【0011】
さらに、クラスタマップストリームは、ソース記憶媒体上の一群のデータの場所をデータストリーム内の場所に相関させる。プロパティストリームや監査証跡ストリームなどのオプションのイメージファイルストリームは、イメージファイル内にあるファイルのタイプを特定し、またイメージファイルに行われた編集を特定する。
【0012】
本発明のさらなる特徴および利点は、添付の図を参照して行われる例示的な実施形態の以下の詳細な説明から明白となる。
【0013】
本発明の特徴は特許請求の範囲により詳細に提示されるが、本発明、ならびに本発明の目的および利点は、添付の図面と併せて考慮される以下の詳細な説明からよく理解することができる。
【0014】
【発明の実施の形態】
本出願は、Kartik Raghaven、Sarah Schumacher、and Wesley Wittが出願した「Method and System for Managing Image Files(イメージファイルを管理するための方法およびシステム)」という名称の同時係属出願に関連し、本発明は、イメージファイル、ならびにイメージファイルを作成し、復元するための方法およびシステムを対象とする。イメージファイルは、制御(control)ストリーム、データストリーム、ビットマップストリーム、クラスタマップストリーム、修正(fix-up)ストリーム、ならびに、オプションとして、監査証跡(audit trail)ストリームおよびプロパティストリームを含む複数のストリームを有する。データストリームは、ソース記憶媒体ボリュームからのソースデータを含む。制御ストリーム、ビットマップストリーム、クラスタマップストリーム、監査証跡ストリーム、およびプロパティストリームは、データストリーム内のソースデータに対するアクセスおよび編集を可能にする情報を含む。修正ストリームは、データストリーム内のデータの編成に基づいて複数のストリーム内の情報を更新する。
【0015】
同様の符号が同様の要素を指している図面を参照すると、本発明が適切な計算環境において実施されているものとして示されている。必須ではないが、本発明は、パーソナルコンピュータによって実行される、プログラムモジュールなどの、コンピュータ実行可能命令の一般的な文脈で説明する。一般に、プログラムモジュールには、特定のタスクを行う、または特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、構成要素、データ構造等が含まれる。また、本発明は、タスクが、通信網を介してリンクされた遠隔の処理デバイスによって行われる分散計算環境において実施することも可能である。分散計算環境では、プログラムモジュールは、ローカルのメモリ記憶デバイスと遠隔のメモリ記憶デバイスの両方の中に配置されることが可能である。
【0016】
図1は、本発明を実施することが可能な適切な計算システム環境100の例を示している。計算システム環境100は、適切な計算環境の一例に過ぎず、本発明の使用または機能の範囲について全く限定を示唆するものではない。また、計算環境100が、例示的な動作環境100に示した構成要素のいずれか1つ、またはいずれかの組合せに関連する何らかの依存性または要件を有するものと解釈してはならない。
【0017】
本発明は、多数の他の汎用または特殊目的の計算システム環境または計算システム構成で動作する。本発明で使用するのに適する可能性がある周知の計算システム、計算環境、および/または計算構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブル家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、以上のシステムまたはデバイスの任意のものを含む分散計算環境等が含まれるが、以上には限定されない。
【0018】
本発明は、コンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈で説明することが可能である。一般に、プログラムモジュールには、特定のタスクを行う、または特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、構成要素、データ構造等が含まれる。また、本発明は、タスクが、通信網を介してリンクされた遠隔の処理デバイスによって行われる分散計算環境において実施することも可能である。分散計算環境では、プログラムモジュールは、メモリ記憶デバイスを含むローカルのコンピュータ記憶媒体と遠隔のコンピュータ記憶媒体の両方の中に配置されることが可能である。
【0019】
図1を参照すると、本発明を実施するための例示的なシステムが、コンピュータ110の形態で汎用計算デバイスを含んでいる。コンピュータ110の構成要素には、処理ユニット120、システムメモリ130、ならびにシステムメモリを含む様々なシステム構成要素を処理ユニット120に結合するシステムバス121が含まれる可能性があるが、以上には限定されない。システムバス121は、様々なバスアーキテクチャの任意のものを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造の任意のものであることが可能である。例として、限定としてではなく、そのようなアーキテクチャには、インダストリスタンダードアーキテクチャ(Industry Standard Architecture:ISA)バス、マイクロチャネルアーキテクチャ(Micro Channel Architecture:MCA)バス、エンハンストISA(Enhanced ISA:EISA)バス、ビデオエレクトロニクススタンダーズアソシエート(VideoElectronics Standards Associate:VESA)ローカルバス、およびメザニン(Mezzanine)バスとしても知られるペリフェラルコンポーネントインターコネクト(Peripheral Component Interconnect:PCI)バスが含まれる。
【0020】
コンピュータ110は、通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ110によってアクセス可能な任意の利用可能な媒体であることが可能であり、揮発性の媒体と不揮発性の媒体、取外し可能な媒体と取外し不可能な媒体がともに含まれる。例として、限定としてではなく、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことが可能である。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための任意の方法または任意の技術で実装される揮発性の媒体および不揮発性の媒体、取外し可能な媒体および取外し不可能な媒体がともに含まれる。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタルバーサタイルディスク(DVD)または他の光ディスクストーレッジ、磁気カセット、磁気テープ、磁気ディスクストーレッジまたは他の磁気記憶デバイス、あるいは所望の情報を記憶するのに使用することができ、コンピュータ110がアクセスすることができる任意の他の媒体が含まれるが、以上には限定されない。通信媒体は、通常、搬送波などの変調されたデータ信号、または他のトランスポート機構でコンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを実体化し、あらゆる情報配信媒体が含まれる。「変調されたデータ信号」という用語は、信号に情報を符号化するような仕方で特性の1つまたは複数が設定または変更されている信号を意味する。例として、限定としてではなく、通信媒体には、有線ネットワークまたは直接配線接続などの有線媒体、ならびに音響媒体、RF媒体、赤外線媒体、およびその他の無線媒体などの無線媒体が含まれる。また、前述したもののいずれかの組合せも、コンピュータ可読媒体の範囲に含まれるべきものである。
【0021】
システムメモリ130は、読取り専用メモリ(ROM)131およびランダムアクセスメモリ(RAM)132などの揮発性メモリおよび/または不揮発性メモリの形態でコンピュータ記憶媒体を含む。始動中など、コンピュータ110内部の要素間で情報を転送するのを助ける基本ルーチンを含む基本入力/出力システム133(BIOS)が、通常、ROM131の中に記憶されている。RAM132は、通常、処理ユニット120によって即時にアクセス可能であり、かつ/または現在、処理されているデータおよび/またはプログラムモジュールを含む。例として、限定としてではなく、図1は、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、およびプログラムデータ137を示している。
【0022】
また、コンピュータ110は、他の取外し可能な/取外し不可能な、揮発性/不揮発性のコンピュータ記憶媒体を含むことも可能である。単に例として、図1は、取外し不可能な不揮発性の磁気媒体に対して読取りおよび書込みを行うハードディスクドライブ141、取外し可能な不揮発性の磁気ディスク152に対して読取りおよび書込みを行う磁気ディスクドライブ151、およびCD−ROMまたは他の光媒体などの取外し可能な不揮発性の光ディスク156に対して読取りおよび書込みを行う光ディスクドライブ155を示している。例示的な動作環境において使用することができる他の取外し可能な/取外し不可能な揮発性/不揮発性のコンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、デジタルバーサタイルディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROM等が含まれるが、以上には限定されない。ハードディスクドライブ141は、通常、インターフェース140のような取外し不可能なメモリインターフェースを介してシステムバス121に接続され、また磁気ディスクドライブ151および光ディスクドライブ155は、通常、インターフェース150のような取外し可能なメモリインターフェースでシステムバス121に接続される。
【0023】
前述し、図1に示すドライブおよび関連するコンピュータ記憶媒体により、コンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータのストーレッジがコンピュータ110に提供される。図1では、例えば、ハードディスクドライブ141が、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147を記憶しているものとして示されている。以上の構成要素は、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137と同じであることも、異なることも可能であることに留意されたい。ここでは、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147に、少なくともそれらが異なるコピーであることを示すために異なる符号を付けている。ユーザは、キーボード162、および一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス161などの入力デバイスを介してコンピュータ110にコマンドおよび情報を入力することができる。他の入力デバイス(図示せず)には、マイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ等が含まれる可能性がある。以上の入力デバイスおよび他の入力デバイスは、しばしば、システムバスに結合されたユーザ入力インターフェース160を介して処理ユニット120に接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(Universal Serial Bus:USB)などの他のインターフェースおよびバス構造で接続してもよい。また、モニタ191または他のタイプの表示デバイスも、ビデオインターフェース190などのインターフェースを介してシステムバス121に接続される。モニタに加えて、コンピュータは、出力周辺インターフェース195を介して接続することができるスピーカ197やプリンタ196などの他の周辺出力デバイスも含むことが可能である。
【0024】
コンピュータ110は、遠隔コンピュータ180のような1つまたは複数の遠隔コンピュータに対する論理接続を使用するネットワーク化された環境で動作することも可能である。遠隔コンピュータ180は、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の一般的なネットワークノードであることが可能であり、通常、パーソナルコンピュータ110に関連して前述した要素の多く、またはすべてを含むが、メモリ記憶デバイス181だけを図1に示している。図1に描いた論理接続は、ローカルエリアネットワーク(LAN)171およびワイドエリアネットワーク(WAN)173を含むが、他のネットワークを含むことも可能である。そのようなネットワーキング環境は、オフィス、企業全体のコンピュータ網、イントラネット、およびインターネットで一般的である。
【0025】
LANネットワーキング環境で使用されるとき、パーソナルコンピュータ110は、ネットワークインターフェースまたはネットワークアダプタ170を介してLAN171に接続される。WANネットワーキング環境で使用されるとき、コンピュータ110は、通常、インターネットなどのWAN173を介して通信を確立するためのモデム172、または他の手段を含む。内部にあることも、外部にあることも可能なモデム172は、ユーザ入力インターフェース160または他の適切な機構を介してシステムバス121に接続することが可能である。ネットワーク化された環境では、パーソナルコンピュータ110に関連して描いたプログラムモジュール、またはプログラムモジュールの部分を遠隔のメモリ記憶デバイスの中に記憶することができる。例として、限定としてではなく、図1は、遠隔アプリケーションプログラム185をメモリデバイス181上に常駐するものとして示している。図示したネットワーク接続は、例示的なものであり、コンピュータ間で通信リンクを確立する他の手段を使用してもよいことが認められよう。
【0026】
以下の説明では、特に明示しない限り、本発明を1つまたは複数のコンピュータによって行われる動作の処理および記号表現に関連して説明する。このため、ときとして、コンピュータによって実行されるものとして述べるそのような処理および動作には、コンピュータの処理ユニットによる構造化された形態のデータを表わす電気信号の操作が含まれるものと理解されたい。この操作により、データが変形されるか、またはコンピュータのメモリシステム内の場所に保持され、コンピュータの動作が、当分野の技術者によってよく理解されている形で再構成されるか、または別の仕方で変更される。データが保持されているデータ構造は、データの形式によって定義された特定のプロパティを有するメモリの物理的な場所である。ただし、本発明を以上の文脈で説明しているが、これは、以下に説明する様々な処理および動作をハードウェアで実施することも可能であることが当分野の技術者には認められるように、限定するものではない。
【0027】
図2は、本発明を実施するのに使用される例示的な動作構成およびイメージファイル形式を示している。この動作構成は、ソース記憶媒体204および宛先記憶媒体206とインターフェースをとるコンピュータ200を含む。オペレーティングシステム202が、コンピュータ200内部で実行される。オペレーティングシステム202は、コンピュータ200と記憶媒体204および206の間の通信を円滑にするファイルシステムドライバ208、イメージドライバ210、およびデバイスドライバ212などの構成要素を含む。
【0028】
各記憶媒体は、1つまたは複数のボリュームに論理的に分割される。記憶媒体204は、第1のボリューム214および第2のボリューム216に分割される。記憶媒体206は、単一のボリュームに分割される。記憶媒体204および206は、ジオメトリに従って定義される。記憶媒体のジオメトリには、シリンダ(cylinder)の数、シリンダ当たりのトラック数、およびトラック当たりのセクタ数が含まれる。セクタは、記憶媒体上の物理的単位である。各セクタは、ある量の情報、例えば、512バイトを記憶することができる。記憶媒体のジオメトリは、周知であり、本明細書で詳細に説明する必要はない。
【0029】
クラスタは、1つまたは複数のセクタのグループである。オペレーティングシステム202が、記憶媒体上の1つまたは複数のクラスタを参照することによって記憶媒体から情報を読み取り、記憶媒体にデータを書き込む。ファイルシステムは、クラスタを構成するセクタの数を決める。ファイルアロケーションテーブル16(File Allocation Table16:FAT16)、ファイルアロケーションテーブル32(FAT32)、コンパクトディスクファイルシステム(CDFS)、およびニューテクノロジーファイルシステム(NewTechnology File System:NTFS)などの様々な周知のファイルシステムが存在する。
【0030】
図示するとおり、ソース記憶媒体204の第1のボリューム214は、ソースデータ218を含む。ソースデータ218は、オペレーティングシステムファイル236、アプリケーションプログラムなどの実行可能プログラム238、およびアプリケーションプログラムで使用されるデータファイル240などの複数のファイルを含む。また、ソースデータ218は、制御情報242も含む。制御情報は、各ファイルに関するデータを含む記憶媒体ボリューム214上のクラスタを特定するファイル割振りデータ249を含む。また、制御情報242は、ビットマスク248も含む。ビットマスク248は、複数のビットを含み、各ビットが、記憶媒体ボリューム上の1つのクラスタに対応する。ビットマスク内の各ビットの値は、対応するクラスタが少なくとも1つのファイルに関する記憶されたデータを含むか、またはそのクラスタが割り振られていないままであるかを明らかにする。
【0031】
制御情報242、およびファイル236、238、240を編成し、記憶するのに使用されるやり方は、使用されるファイルシステムに依存する。例として、NTFSファイルシステムは、マスタファイルテーブル(MFT)を記憶媒体上に記憶する。MFTは、記憶媒体上に記憶された各ファイルに関する範囲(extent list)リストを含む。範囲リストは、開始ブロックおよび長さを明らかにする一連のエントリを含む。開始ブロックおよび長さは、ファイルに関するデータを含む一続きの連続するクラスタを定義する。
【0032】
ソースデータ218の一部として含まれるその他の情報には、ページメモリ(paged memory)244およびBIOSパラメータブロック(BPB)が含まれる。ページメモリ244は、記憶媒体214に書き込まれるコンピュータのメモリの一部分である。BPB246は、媒体のサイズや記憶媒体上のあるファイルの場所などの記憶媒体ボリュームに関するデータを含む。
【0033】
宛先記憶媒体206は、イメージファイル220を含む。このイメージファイルは、ソースデータ218などの情報の論理的キャプチャである。本発明では、イメージファイル220は、ソース記憶媒体ボリューム214にソースデータ218を復元するのに使用される。別法では、イメージファイル220は、1つまたは複数の記憶媒体ボリュームにソース記憶媒体ボリューム214と同一の構成を与えるのに使用される。
【0034】
イメージファイル220は、複数のイメージストリームを含む。図示するとおり、イメージファイル220は、制御ストリーム222、データストリーム224、ビットマップストリーム226、クラスタマップストリーム228、監査証跡ストリーム230、およびプロパティストリーム232を含む。イメージストリームは、宛先記憶媒体206上にイメージファイル220の一部として記憶される。また、イメージファイル220は、修正ストリーム234も含む。修正ストリーム234は、その他のイメージストリームがイメージファイル220に書き込まれる前に、その他のイメージストリームのデータを変更するのに使用される。本発明の実施形態では、監査証跡ストリーム230およびプロパティストリーム232は、オプションである。
【0035】
図示した実施形態では、宛先記憶媒体206およびソース記憶媒体214は、共通のデバイスドライバ212およびファイルシステムドライバ208を介してコンピュータ200とインターフェースをとっており、これにより、両方の記憶媒体は、共通のファイルシステムおよび共通の記憶媒体タイプを使用するものと想定される。当分野の技術者には認識されるとおり、異なる記憶媒体が、異なるファイルシステムおよび異なる記憶媒体タイプを利用することが可能である。例えば、記憶媒体206が、CDFSファイルシステムを使用するCD−ROMであり、他方、記憶媒体204は、FAT16またはFAT32を使用するハードディスクであることが可能である。その場合、複数のファイルシステムドライバ208および複数のデバイスドライバ212が必要とされる可能性がある。
【0036】
通常、ユーザは、イメージファイル220がシステムツール232を介して作成されることを要求する。システムツールは、ユーザインターフェースとして、またはコマンドラインライン要求としてなどの任意の適切な仕方で実装される。別法では、システムツール232は、アプリケーションプログラムなどの別のプログラムモジュールの一部として実装される。要求は、イメージドライバ210に送られ、イメージドライバ210は、ソース記憶媒体204および宛先記憶媒体206にファイルシステムドライバ208を介してアクセスを得る。イメージドライバ210が、ソース記憶媒体および宛先記憶媒体へのアクセスを得ると、オペレーティングシステム202が、イメージドライバ210およびデバイスドライバ212を介してそれらの記憶媒体とインターフェースをとる。イメージファイルを作成するのに、オペレーティングシステムは、ソースデータ218を読み取り、複数のイメージストリーム222〜234を生成し、そのイメージストリームを宛先記憶媒体206に書き込む。イメージファイル220からソースデータ218を復元するのに、ソースデータ218を復元するユーザ要求が、システムツール232によって開始される。イメージドライバ210が、ファイルシステムドライバ208を介してソース記憶媒体ボリューム214およびイメージファイル220へのアクセスを得る。オペレーティングシステムが、イメージドライバ210およびデバイスドライバ212を介してそのイメージファイル220を読み取る。次に、オペレーティングシステム202は、イメージファイル220内のデータに基づいてソース記憶媒体214にソースデータ218を復元する。
【0037】
図3は、本発明を実施するのに使用されるイメージファイル220の実施形態を示している。イメージファイル220は、制御ストリーム222、データストリーム224、ビットマップストリーム226、クラスタマップストリーム228、監査証跡ストリーム230、およびプロパティストリーム232を含む。前述したとおり、監査証跡ストリーム230およびプロパティストリーム232は、オプションであり、イメージファイル220に追加の機能を提供するのに使用される。修正ストリーム234は、その他のイメージストリームがイメージファイル220に書き込まれる前に、その他のイメージストリーム内のデータを変更するのに使用される一時的なストリームである。
【0038】
制御ストリーム222は、イメージファイル220内に含まれる他のデータを開き、解釈するのに必要とされるイメージファイル220の属性を記述するヘッダとして機能するデータ構造である。制御ストリーム内のデータには、イメージ識別250、ボリューム情報252、記憶媒体ジオメトリ254、ファイルシステム情報256、オペレーティングシステム情報258、および圧縮情報260が含まれる。
【0039】
イメージ識別250は、イメージを一意的に特定するデータであり、また制御ストリーム222のサイズをバイト数で特定するデータでもある。ボリューム情報252は、ソース記憶媒体ボリューム214を定義するデータを含む。ボリューム情報252内のデータには、記憶媒体204の先頭からのボリュームオフセット、ボリュームの長さ、ボリューム上の隠れたセクタの数、ボリューム番号、およびボリュームによって使用されるファイルシステムのタイプが含まれる。
【0040】
記憶媒体ジオメトリ254は、シリンダの数、シリンダ当たりのトラック数、およびトラック当たりのセクタ数を含むソース記憶媒体214の物理的属性を記述するデータを含む。ファイルシステム情報256は、クラスタの総数、クラスタ当たりのバイト数、およびレコード当たりのクラスタ数を特定するデータを含む。
【0041】
オペレーティングシステム情報258は、ソース記憶媒体ボリューム214上に記憶されたオペレーティングシステムバージョンを特定するデータを含む。また、オペレーティングシステム情報258は、サービスパック識別などのオペレーティングシステムに行われたあらゆる更新を特定するデータも含む。サービスパックは、ソフトウェアプログラムが抱える既知の問題を修正する、またはソフトウェアプログラムに拡張を提供するソフトウェアプログラムに対する更新である。サービスパック識別は、オペレーティングシステムファイル236に関してソース記憶媒体ボリューム214上に記憶されたあらゆるサービスパックを特定する。圧縮/暗号化情報260は、イメージファイル220が圧縮されているかどうか、またイメージファイル220が暗号化されているかどうかを明らかにするデータを含む。
【0042】
データストリーム224は、目標記憶媒体ボリューム214上にあるファイルのそれぞれに関するデータを含む。各ファイルに関するデータは、オプションとして、周知の方法を使用して圧縮されるか、または暗号化される。以下により詳細に説明するとおり、データを圧縮する決定は、ファイルごとに行われる。したがって、データストリーム224内の一部のデータが圧縮され、その他のデータが圧縮されないことが可能である。同様に、データストリーム224内の一部のデータが暗号化され、その他のデータが暗号化されないことが可能である。ソースデータ218の一部を成す制御情報242も1つまたは複数のファイルを含み、データストリーム224の一部として記憶される。
【0043】
本発明の実施形態では、データストリーム224は、同一のデータの複数のコピーは含まない。例えば、同一のデータファイル240の複数のコピーがソース記憶媒体ボリューム214の中に記憶されている場合、データファイル240の1つのコピーだけが、データストリーム224の中に記憶される。また、ページメモリ244も、データストリーム224の中に含める必要がない。イメージファイル220が記憶媒体ボリューム上に復元される際、オペレーティングシステム202が、必要に応じて記憶媒体ボリューム上にページメモリ244を生成する。データファイルおよびページメモリファイルの複数のコピーをなくすことにより、イメージファイル220のサイズが小さくなる。
【0044】
クラスタマップストリーム228は、イメージファイル220内のデータの場所をソース記憶媒体ボリューム214上のデータの場所に相関させる。クラスタマップストリーム228は、一続きのレコードを含む。図3は、クラスタマップストリーム228内の単一のレコードを示している。各レコードは、開始クラスタ262および終了クラスタ264を含む。開始クラスタ262および終了クラスタ264により、ソース記憶媒体214上でデータが位置する開始クラスタおよび終了クラスタが特定される。
【0045】
オフセット268は、データストリームの先頭から計測されたデータストリーム224内のデータの開始位置を特定する。圧縮されたファイルの場合、イメージファイル220内のデータ長は、圧縮サイズ270に等しい。圧縮されていないデータの場合、イメージファイル220内のデータ長は、制御ストリーム222内で特定される長さ266とクラスタ当たりのバイト数の積である。フラグフィールド272は、イメージファイル220内のデータが圧縮されているか、圧縮されていないかを明らかにする。
【0046】
クラスタマップストリーム228は、オペレーティングシステムが、データストリーム224内のデータを探し出すことを可能にする機構を提供する。これにより、イメージファイルを閲覧し、編集することが可能になる。
【0047】
図4を参照すると、データストリーム224内のデータの場所とソース記憶媒体ボリューム214上のデータの場所の間の関係の例が示されている。図4では、制御ストリーム222内で特定されるクラスタ当たりのバイト数が、512であるものと想定されている。ソース記憶媒体ボリューム214は、順次に番号が付けられたブロックを含む。各ブロックは、ソース記憶媒体ボリューム上の1つのクラスタを表わす。また、データストリーム224も、順次に番号が付けられたブロックを含む。データストリーム224内の各ブロックは、データストリーム224内のバイトを表わし、また番号は、データストリーム224の先頭からのバイト数でのオフセットを表わす。
【0048】
クラスタマップレコード228の開始クラスタフィールド262は、開始クラスタ100を含み、終了クラスタフィールド264は、終了クラスタ149を含む。したがって、データは、一般的に示すとおり、ソース記憶媒体ボリューム214のクラスタ100ないし149上に記憶される。オフセットフィールドは、1000という値を有している。したがって、データは、データストリーム224の先頭から1000バイトのオフセットで開始する。フィールド272が、データは圧縮されていないことを示している。したがって、データストリーム224内のこのデータの長さは、長さフィールド266の中で50と特定される長さと、クラスタ当たりのバイト数512の積(50クラスタクラスタ当たり512バイト=25600バイト)である。図示するとおり、イメージファイル内の対応するデータは、データストリーム224の先頭を起点としてバイト1000ないし26599に位置する。
【0049】
同じデータの複数のコピーがソース記憶媒体ボリューム214上に記憶される場合、そのデータは、データストリーム224の中に一度限り、入れられる。これが行われる場合、クラスタストリーム228内で複数のレコードが生成され、ソース記憶媒体ボリューム214上でデータが出現する各回に関して1つのレコードが生成される。各レコードは、同じ長さフィールド266、同じオフセットフィールド262、同じ圧縮サイズフィールド270、および同じ圧縮フィールド272を含み、これにより、データストリーム224内の同一のデータをポイントする。開始クラスタフィールド262および終了クラスタフィールド264は異なり、これにより、データが属するソース記憶媒体214上の複数の場所が特定される。
【0050】
図3に戻ると、ビットマップストリーム226を使用して、ソース記憶媒体ボリューム214の割振り済みクラスタおよび未割振りクラスタが特定される。割振り済みクラスタは、ソース記憶媒体ボリューム214上のファイルに関するデータを含むクラスタである。未割振りクラスタは、新しいデータを記憶するのに利用可能なクラスタである。図示した例では、ビットマップストリームは、ビットマップとして実装される。ビットマップ内の各ビットが、ソース記憶媒体214上のクラスタに対応する。「1」という値を有するビットは、割振りクラスタを表わし、他方、「0」という値を有するビットは、未割振りクラスタを表わす。ビットマップストリームは、ビットマスク240と同じ機能を果たす。ただし、ビットマップストリーム226は、データストリーム224の外にあるため、イメージファイル220内で容易にアクセス可能である。
【0051】
監査証跡ストリーム230は、イメージファイルに加えられたあらゆる変更、その変更を開始したユーザ、変更されているファイルがある場合、そのファイル、ならびにその変更が実施された日付および時刻を明らかにするデータを含む。プロパティストリーム232は、オペレーティングシステムバージョンなどのイメージファイル220の属性を明らかにするデータを含む。プロパティストリーム232には、所望の属性を有するイメージファイル220を特定するためにクエリが行われる。例えば、プロパティストリーム232にクエリが行われて、特定のバージョンのオペレーティングシステムを含むイメージファイルが探し出される。監査証跡ストリーム230およびプロパティストリーム232は、任意の適切な仕方で実装される。
【0052】
修正ストリームは、ソースデータ218がオペレーティングシステム202によって読み取られた後、イメージストリームを変更するのに使用される。例えば、ソースデータ218は、データストリーム224の中に入れられたとき、ソース記憶媒体214上の元の場所から移動されている可能性がある。修正ストリームが、ソースデータ218の適切な場所を反映するようにデータストリーム内のBPB246および制御情報242を更新する。
【0053】
図5aおよび5bは、ソース記憶媒体214上のデータが、データストリーム224の中に入れられたとき、オプションとして、どのようにデフラグ(defragment)されるかを示している。図示のとおり、ソースデータ218はソース記憶媒体214に記憶される。ファイルAに関するデータが、280のラベルが付けられたクラスタ上に記憶され、ファイルBに関するデータが、282のラベルが付けられたクラスタ上に記憶され、またファイルCに関するデータが、284のラベルが付けられたクラスタ上に記憶される。図示するとおり、ファイルAに関するデータ、およびファイルBに関するデータは、不連続のクラスタ上に記憶される。あるファイルに関するデータが不連続のクラスタ上に記憶されるとき、そのファイルが断片化される(fragmented)という言い方をする。
【0054】
オペレーティングシステム202は、ファイルAに関してソース記憶媒体214上の制御情報242を読み取ったとき、280のラベルが付けられた、そのファイルに関するデータを含むクラスタを特定し、そのデータを読み取る。次に、オペレーティングシステムは、データストリーム224内で、287のラベルが付けられた連続する場所の中にファイルAに関するデータを入れる。オペレーティングシステム202は、ファイルBおよびファイルCに関して同一のプロセスを行う。図5bに示すとおり、ファイルBに関するデータ、およびファイルCに関するデータは、それぞれ288および289のラベルが付けられた連続する場所に入れられる。データが連続する場所に入れられるため、オペレーティングシステム202は、各ファイルに関するファイル割振り249を更新することによってそのファイルをデフラグすることができる。ソース記憶媒体214上のファイルをデフラグするのに使用される方法を以下に、より十分に説明する。
【0055】
前述したとおり、各ファイルに関するボリュームビットマスク248およびファイル割振り249を含む制御情報242が、1つまたは複数のファイルとしてデータストリーム224の中に記憶される。制御情報242に関するデータ286は、通常、図5bに示すとおり、データストリーム224の終端にある。
【0056】
ファイルがデフラグされたとき、クラスタマップ228レコードが、その新しいデータ場所を反映するように変更される。データが元の場所から移動されているため、開始クラスタおよび終了クラスタは、ソース記憶媒体ボリューム上のソースデータの元の場所に対応しない可能性がある。代わりに、開始クラスタおよび終了クラスタは、イメージファイルが記憶媒体ボリュームに復元される際にデータが記憶される場所を特定する。
【0057】
図6および7は、ソース記憶媒体ボリューム214からイメージファイル220を作成するのに使用されるプロセスを示している。例として、プロセス290は、イメージドライバ210内で動作するプログラムモジュールによるなど、オペレーティングシステム構成要素によって実行される。別法では、プロセス290は、システムツール232によって完全に、または部分的に実行される。
【0058】
通常、イメージファイル220は、システムツール232からのユーザ要求を介して作成される。この要求がシステムツール232から受け取られた後、オペレーティングシステム202が、ステップ292に示されるとおり、ソース記憶媒体ボリューム214を開く。ソース記憶媒体ボリューム214を開くのに、イメージドライバ210は、ファイルシステムドライバ208を介してソース記憶媒体ボリューム214に対するリファレンスを獲得する。ソース記憶媒体ボリューム214に対するリファレンスが獲得されると、オペレーティングシステム202は、イメージドライバ210およびデバイスドライバ212を介して記憶媒体214と通信する。
【0059】
ステップ294で、プロセス290は、制御ストリーム222、データストリーム224、ビットマップストリーム226、クラスタマップストリーム228、監査証跡ストリーム230、プロパティストリーム232、および修正ストリーム234を含むイメージファイル220の複数のイメージストリームを生成する。この時点で、イメージファイル220を構成する複数のストリームをメモリ構造内におけるのと同様に実装し、あるいは、宛先記憶媒体ボリューム206上に直接に実装する。
【0060】
ステップ296で、プロセス290が、ソース記憶媒体ボリューム214上の制御情報242を読み取る。制御情報242は、ソース記憶媒体ボリューム214上の複数のファイル、およびそのファイルのそれぞれに割り振られたクラスタを識別する。例えば、ソース記憶媒体ボリュームがNTFSファイルシステムを使用する場合、プロセス290は、記憶媒体ボリューム214上のMFTを読み取る。
【0061】
ステップ298で、プロセス290は、制御情報242によって特定された第1のファイルに関するデータを読み取る。ステップ300で、プロセスは、そのファイルに関するデータをデータストリーム224の中に入れる。前述したとおり、そのファイルデータの複数のコピーが存在する場合、データは、データストリームの中に一度限り入れられる。さらに、ファイルデータがページメモリ244の一部である場合、そのデータは、データストリーム224の中に入れる必要がない。ファイルに関するデータは、オプションとして、データストリーム224の中に入れられる際にデフラグされる。
【0062】
ステップ302で、ソース記憶媒体ボリューム214上のデータの場所をデータストリーム224内のデータの場所に相関させるレコードを追加することにより、クラスタストリーム228が更新される。クラスタマップストリーム228により、オペレーティングシステム202が、データストリーム224内のデータにアクセスし、編集することができるようになる。ステップ304で、プロセス290は、ソース記憶媒体ボリューム214がさらなるファイルデータを含むかどうかを判定する。さらなるファイルデータが存在する場合、プロセス290は、ステップ298に戻り、次のファイルに関するデータを読み取る。
【0063】
もはやファイルデータが存在しない場合、プロセス290は、ステップ306に進み、修正をイメージファイルストリームに適用する。この修正は、データの移動を考慮に入れるように適用される。例えば、前述したとおり、プロセス290は、ソース記憶媒体214上の複数のファイルに関するデータをデフラグする可能性がある。したがって、プロセス290は、データストリーム224内にある制御情報242を変更して、制御情報242が、各ファイルに現在、割り振られているクラスタを特定するようにする。NTFSボリュームの場合、プロセスは、MFT内の各ファイルに関する範囲リストを訂正する。各ファイルに関するデータは、デフラグされているため、各ファイルに関する範囲リストは、単一の範囲を含む。また、ビットマスク248も、データ位置の変更に鑑みて、目標記憶媒体上の割振り済みのクラスタおよび未割振りのクラスタを適切に反映するように変更される。また、修正は、BPB246にも適用される。BPB内で参照されるファイルの場所は変更されているため、BPBは、ファイルの適切な場所が参照されるように変更される。
【0064】
以上のプロセスが完了すると、制御ストリーム222、データストリーム224、ビットマップストリーム226、クラスタマップストリーム228、監査証跡ストリーム230、およびプロパティストリーム232は、宛先記憶媒体206に書き込まれ、これにより、ステップ308に示したイメージファイル220が形成される。
【0065】
図7は、ソース記憶媒体ボリューム214からのデータを暗号化し、圧縮するのに使用されるプロセスを示している。ステップ320で、プロセス290は、制御情報242によって特定されたクラスタ上に記憶されたデータを読み取る。ステップ322で、プロセス290は、データを圧縮するかどうかを決める。本発明では、ファイル圧縮は、オプションであり、システムツール232、または任意の適切なオペレータインターフェースを介してユーザによる選択が可能であることが可能である。ファイル圧縮が選択された場合、プロセス290は、ステップ324に示されるとおり、データを圧縮する。好ましくは、データは、既に圧縮形式で記憶されていない場合にだけ、圧縮される。データは、ステップ324に示されるとおり、任意の圧縮/圧縮解除(CODEC)アルゴリズムを使用して圧縮される。
【0066】
ステップ326で、プロセス290は、データを暗号化するかどうかを決める。本発明では、ファイル暗号化は、オプションであり、システムツール232を介してユーザによる選択が可能である。選択された場合、データは、ステップ328に示されるとおり、任意の適切な周知の方法を使用して暗号化される。データは、該当する場合に暗号化され、かつ/または圧縮されると、ステップ330に示されるとおり、データストリーム224に書き込まれる。
【0067】
図8は、ソース記憶媒体ボリューム214にイメージファイル220を復元するのに使用される、340のラベルが付けられたプロセスを示している。プロセス340は、オペレーティングシステム202によって実行されることが可能である。別法では、プロセス340は、システムツール232によって完全に、または部分的に実行されることが可能である。ステップ342で、プロセス340は、イメージファイル220を開く。オペレーティングシステム202が、ファイルシステムドライバ208を介して宛先記憶媒体ボリューム206に対するリファレンスを獲得する。
【0068】
ステップ344で、プロセス340は、クラスタマップストリーム228内に含まれる複数のクラスタマップレコードの1つを読み取る。クラスタマップレコードは、データに関するデータストリーム224内の場所を特定し、また、ソース記憶媒体ボリューム214上のそのデータの意図される場所も特定する。クラスタマップレコードを読み取った後、ステップ346で示すとおり、データが、データストリーム224から読み取られる。次に、データは、ソース記憶媒体214に、クラスタマップレコード228内の開始クラスタおよび終了クラスタによって特定されたクラスタ上で書き込まれる。
【0069】
ステップ350で、プロセス340は、クラスタマップストリーム228内でさらなるレコードが存在するかどうかを判定する。さらなるレコードが存在する場合、プロセスは、ステップ314に戻り、次のクラスタマップレコードが検査される。もはやレコードが存在しない場合、プロセス340は、ステップ352に進み、修正が適用される。この修正は、イメージファイルを作成するのに使用されたソース記憶媒体ボリューム214と、ソースデータ218が復元される記憶媒体ボリュームの間でジオメトリが異なる場合、必要とされる。例えば、BPB内で特定されたファイルの場所が変更されている場合、BPBが、ファイルのその新しい場所を反映するように更新される。また、BPBは、記憶媒体のジオメトリ情報も含む。BPB内のジオメトリ情報は、復元されたソースデータ218を含む記憶媒体の実際のジオメトリを反映するように更新される必要がある。
【0070】
図9は、イメージファイル220からのデータを暗号化解除し、圧縮解除するのに使用されるプロセスを示している。ステップ360で、プロセス340は、データを圧縮解除するかどうかを決める。データは、圧縮解除を必要とする場合、ステップ362に示されるとおり、周知の圧縮解除アルゴリズムを使用して圧縮解除される。ステップ364で、プロセス340は、データを暗号化解除するかどうかを決める。データが暗号化解除を必要とする場合、ステップ366に示されるとおり、周知の暗号化解除アルゴリズムを使用してデータが暗号化解除される。データは、必要に応じて圧縮解除され、暗号化解除されると、ソース記憶ボリューム214に書き込まれる。データは、該当のデータに関するクラスタレコード内で特定されたクラスタに書き込まれる。
【0071】
本発明の原理を適用することが可能な多数の可能な実施形態に鑑みて、図面を参照して本明細書で説明した実施形態は、単に例示的なものに過ぎず、本発明の範囲を制限するものと受け取られるべきでないことを認識されたい。例えば、本発明の趣旨逸脱することなく、ソフトウェアで示される例示した実施形態の要素をハードウェアで実装することが可能であり、またその逆も可能であること、あるいは、例示した実施形態の構成および詳細を変更できることが、当分野の技術者には認められよう。したがって、本明細書で説明した本発明は、特許請求の範囲の範囲に入る可能性があるすべてのそのような実施形態、およびそれと等価な形態を企図している。
【図面の簡単な説明】
【図1】本発明が存在する例示的なコンピュータシステムを一般的に示すブロック図である。
【図2】イメージファイルの作成、復元、および編集を行うのに使用される動作環境を示すブロック図である。
【図3】イメージファイル形式の例を示すブロック図である。
【図4】クラスタマップストリームを示すブロック図である。
【図5a】ソースデータおよびデータストリームを示すブロック図である。
【図5b】ソースデータおよびデータストリームを示すブロック図である。
【図6】本発明の実施形態で行われることが可能な手続きの例を示す流れ図である。
【図7】本発明の実施形態で行われることが可能な手続きの例を示す流れ図である。
【図8】本発明の実施形態で行われることが可能な手続きの例を示す流れ図である。
【図9】本発明の実施形態で行われることが可能な手続きの例を示す流れ図である。
【符号の説明】
220 イメージファイル
222、224、226、228、230、232、234 ストリーム
250、252、254、256、258、260 データ
262、264、266、268、270、272 フィールド

Claims (3)

  1. 第1の記憶媒体ボリュームおよび第2の記憶媒体ボリュームにアクセス可能なコンピュータが、前記第1の記憶媒体ボリューム上に記憶されたソースデータから、前記第2の記憶媒体ボリューム上に記憶されたイメージファイルを作成するための方法であって、
    前記コンピュータが、データストリーム及びクラスタマップストリームを含む複数のイメージストリームを生成するステップと、
    前記コンピュータが、前記ソースデータに含まれる制御情報であって、前記ソースデータに含まれる複数のファイルが記憶された前記第1の記憶媒体ボリューム上のクラスタを特定する制御情報を前記第1の記憶媒体ボリュームから読み取るステップと、
    前記コンピュータが、前記制御情報により特定されたクラスタから前記複数のファイルを読み取るステップと、
    前記コンピュータが、読み取られた前記複数のファイルを前記データストリームに書き込むステップと、
    前記コンピュータが、前記複数のファイルが記憶されていた前記第1の記憶媒体ボリューム上のクラスタと、前記複数のファイルの前記データストリーム内の位置との関係を特定するクラスタマップレコードを生成するステップと、
    前記コンピュータが、前記クラスタマップレコードを前記クラスタマップストリームに追加するステップと、
    前記コンピュータが、前記データストリーム及び前記クラスタマップストリームを前記第2の記憶媒体ボリュームに書き込むステップと
    を含み、
    前記複数のファイルは、同一のデータを表す第1のファイルおよび第2のファイルを有し、
    前記データストリームに書き込むステップは、前記コンピュータが、前記第1のファイルを前記データストリームに書き込むステップを含み
    前記クラスタマップレコードを生成するステップは、前記コンピュータが、前記第1のファイルが記憶されていた前記第1の記憶媒体ボリューム上の第1のクラスタと、前記第1のファイルの前記データストリーム内の位置との関係を特定する第1のクラスタマップレコードと、前記第2のファイルが記憶されていた前記第1の記憶媒体ボリューム上の第2のクラスタと、前記第1のファイルの前記データストリーム内の位置との関係を特定する第2のクラスタマップレコードとを作成するステップを含み、
    前記第1のクラスタマップレコードと前記第2のクラスタマップレコードとは、前記第1の記憶媒体ボリューム上のクラスタを特定する開始クラスタ及び終了クラスタを除いて同一であることを特徴とするイメージファイルの作成方法。
  2. 第1の記憶媒体ボリュームおよび第2の記憶媒体ボリュームにアクセス可能なコンピュータに、前記第1の記憶媒体ボリューム上に記憶されたソースデータから、前記第2の記憶媒体ボリューム上に記憶されたイメージファイルを作成させるためのプログラムであって、
    データストリーム及びクラスタマップストリームを含む複数のイメージストリームを生成するステップと、
    前記ソースデータに含まれる制御情報であって、前記ソースデータに含まれる複数のファイルが記憶された前記第1の記憶媒体ボリューム上のクラスタを特定する制御情報を前記第1の記憶媒体ボリュームから読み取るステップと、
    前記制御情報により特定されたクラスタから前記複数のファイルを読み取るステップと、
    読み取られた前記複数のファイルを前記データストリームに書き込むステップと、
    前記複数のファイルが記憶されていた前記第1の記憶媒体ボリューム上のクラスタと、前記複数のファイルの前記データストリーム内の位置との関係を特定するクラスタマップレコードを生成するステップと、
    前記クラスタマップレコードを前記クラスタマップストリームに追加するステップと、
    前記データストリーム及び前記クラスタマップストリームを前記第2の記憶媒体ボリュームに書き込むステップと
    を前記コンピュータに実行させ、
    前記複数のファイルは、同一のデータを表す第1のファイルおよび第2のファイルを有し、
    前記データストリームに書き込むステップは、前記第1のファイルを前記データストリームに書き込むステップを含み、
    前記クラスタマップレコードを生成するステップは、前記第1のファイルが記憶されていた前記第1の記憶媒体ボリューム上の第1のクラスタと、前記第1のファイルの前記データストリーム内の位置との関係を特定する第1のクラスタマップレコードと、前記第2のファイルが記憶されていた前記第1の記憶媒体ボリューム上の第2のクラスタと、前記第1のファイルの前記データストリーム内の位置との関係を特定する第2のクラスタマップレコードとを作成するステップを含み、
    前記第1のクラスタマップレコードと前記第2のクラスタマップレコードとは、前記第1の記憶媒体ボリューム上のクラスタを特定する開始クラスタ及び終了クラスタを除いて同一であることを特徴とするプログラム。
  3. 請求項2に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2003188933A 2002-06-28 2003-06-30 宛先記憶媒体、イメージファイルの作成方法、データ復元方法およびプログラム Expired - Fee Related JP4406225B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/185,755 US7293150B2 (en) 2002-06-28 2002-06-28 Method and system for creating and restoring an image file

Publications (2)

Publication Number Publication Date
JP2004038979A JP2004038979A (ja) 2004-02-05
JP4406225B2 true JP4406225B2 (ja) 2010-01-27

Family

ID=29718009

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003188933A Expired - Fee Related JP4406225B2 (ja) 2002-06-28 2003-06-30 宛先記憶媒体、イメージファイルの作成方法、データ復元方法およびプログラム

Country Status (5)

Country Link
US (2) US7293150B2 (ja)
EP (1) EP1376403A3 (ja)
JP (1) JP4406225B2 (ja)
CN (1) CN1329841C (ja)
TW (1) TWI311702B (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7293150B2 (en) * 2002-06-28 2007-11-06 Microsoft Corporation Method and system for creating and restoring an image file
US7334099B2 (en) * 2002-06-28 2008-02-19 Microsoft Corporation Method and system for managing image files
JP2004240549A (ja) * 2003-02-04 2004-08-26 Ricoh Co Ltd イメージファイル作成方法、記録方法、プログラム及び記録媒体、並びに情報記録システム
JP4502375B2 (ja) * 2004-05-27 2010-07-14 キヤノン株式会社 ファイルシステムおよびその制御方法
US7305539B2 (en) * 2004-10-14 2007-12-04 Sandisk Il Ltd. Adaptive booting from mass storage device
US7353355B1 (en) * 2004-12-28 2008-04-01 Acronis Inc. System and method for rapid restoration of server from backup
US7475282B2 (en) * 2004-12-28 2009-01-06 Acronis Inc. System and method for rapid restoration of server from back up
US7509530B2 (en) * 2005-01-19 2009-03-24 Sonic Solutions Method and system for use in restoring an active partition
US7549037B1 (en) * 2005-09-01 2009-06-16 Symantec Operating Corporation Efficient off-host backup of a file set clone
US7617226B1 (en) * 2006-02-10 2009-11-10 Google Inc. Document treadmilling system and method for updating documents in a document repository and recovering storage space from invalidated documents
US7634521B1 (en) * 2006-04-27 2009-12-15 Symantec Corporation Technique for scanning stealthed, locked, and encrypted files
JP2008077249A (ja) * 2006-09-19 2008-04-03 Fujitsu Ltd システム環境復元方法
US7508609B2 (en) * 2006-10-25 2009-03-24 Spectra Logic Corporation Formatted storage media providing space for encrypted text and dedicated space for clear text
US20090185762A1 (en) * 2008-01-18 2009-07-23 Inventec Corporation Data structure for image file
US20090185761A1 (en) * 2008-01-18 2009-07-23 Inventec Corporation Method of generating image file
US8170991B1 (en) * 2008-09-15 2012-05-01 Symantec Corporation Method and apparatus for managing image data on a sequential storage device
US8930423B1 (en) * 2008-12-30 2015-01-06 Symantec Corporation Method and system for restoring encrypted files from a virtual machine image
US8712968B1 (en) * 2009-07-15 2014-04-29 Symantec Corporation Systems and methods for restoring images
DE102010006931A1 (de) * 2010-02-04 2011-08-04 Bienert, Jörg, 50354 Verfahren zur Verarbeitung von Datensammlungen, insbesondere in Datenbanksystemen
US8564798B2 (en) * 2010-03-03 2013-10-22 Xerox Corporation Validation of print jobs using bitmapped image
JP5494073B2 (ja) * 2010-03-18 2014-05-14 日本電気株式会社 ファイル持出制御システム、ファイル持出制御方法、ファイル持出制御プログラム
US8898206B1 (en) * 2010-04-28 2014-11-25 Netapp, Inc. Mechanism for distributed inode to path traversal in a striped volume system
US20120047110A1 (en) * 2010-08-18 2012-02-23 Jeffrey Brunet System and Method for Automatic Data Defragmentation When Restoring a Disk
US9933978B2 (en) 2010-12-16 2018-04-03 International Business Machines Corporation Method and system for processing data
CN103902587B (zh) * 2012-12-27 2017-06-27 联想(北京)有限公司 一种识别信息同步的方法及电子设备
US9436617B2 (en) * 2013-12-13 2016-09-06 Texas Instruments Incorporated Dynamic processor-memory revectoring architecture
US10268552B2 (en) * 2014-11-25 2019-04-23 Sap Se Database recovery using foreign backups
US10157102B2 (en) * 2016-12-29 2018-12-18 Whatsapp Inc. Techniques to scan and reorganize media files to remove gaps
US10757425B2 (en) * 2017-07-24 2020-08-25 United States Postal Service Image encryption through dynamic compression code words
CN109145858A (zh) * 2018-09-03 2019-01-04 哦加哦网络科技(上海)有限公司 无人货架视频审核系统及方法
US10838641B2 (en) * 2019-03-04 2020-11-17 International Business Machines Corporation Defragmenting backup objects

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276860A (en) * 1989-12-19 1994-01-04 Epoch Systems, Inc. Digital data processor with improved backup storage
US5584023A (en) * 1993-12-27 1996-12-10 Hsu; Mike S. C. Computer system including a transparent and secure file transform mechanism
US5818723A (en) * 1994-12-22 1998-10-06 International Business Machines Corporation Quick access data storage library with backup capability
KR100326130B1 (ko) * 1995-08-21 2002-09-05 마츠시타 덴끼 산교 가부시키가이샤 동적인재생출력의전환을실현하는멀티미디어광디스크와그재생장치및그재생방법
US5907672A (en) 1995-10-04 1999-05-25 Stac, Inc. System for backing up computer disk volumes with error remapping of flawed memory addresses
US5991542A (en) * 1996-09-13 1999-11-23 Apple Computer, Inc. Storage volume handling system which utilizes disk images
US5966730A (en) * 1996-10-30 1999-10-12 Dantz Development Corporation Backup system for computer network incorporating opportunistic backup by prioritizing least recently backed up computer or computer storage medium
US6058390A (en) * 1996-11-26 2000-05-02 Visteon Technologies, Llc Vehicle navigation assistance device having fast file access capability
US5960460A (en) * 1997-01-02 1999-09-28 Exabyte Corporation Non-intrusive replication of hard disk
US5930828A (en) * 1997-03-26 1999-07-27 Executive Software International Real-time apparatus and method for minimizing disk fragmentation in a computer system
EP0927934A1 (en) * 1997-06-30 1999-07-07 Matsushita Electric Industrial Co., Ltd. File managing device, file managing method, and recording medium stored with file managing program
US6092128A (en) 1997-08-28 2000-07-18 Cypress Semiconductor Corp. Ethernet repeater that couples an input data stream to multiple output data streams of differing rates and provides access to a shared bus by a number of inputs and outputs
US6108697A (en) * 1997-10-06 2000-08-22 Powerquest Corporation One-to-many disk imaging transfer over a network
US6374336B1 (en) * 1997-12-24 2002-04-16 Avid Technology, Inc. Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner
US6205527B1 (en) * 1998-02-24 2001-03-20 Adaptec, Inc. Intelligent backup and restoring system and method for implementing the same
CA2234493C (en) 1998-04-09 2002-12-31 Pmc-Sierra Ltd. State machine architecture with multiplexed random access memory
WO1999057641A1 (en) * 1998-05-01 1999-11-11 Powerquest Corporation Manipulation of virtual and live computer storage device partitions
US6278838B1 (en) 1998-06-26 2001-08-21 Lsi Logic Corporation Peak-ahead FIFO for DVD system stream parsing
US7233978B2 (en) * 1998-07-08 2007-06-19 Econnectix, Llc Method and apparatus for managing location information in a network separate from the data to which the location information pertains
JP2000200207A (ja) * 1998-10-30 2000-07-18 Sony Corp 階層管理ファイル装置及びこれを具備した電子機器
US6747986B1 (en) * 1998-11-25 2004-06-08 Telefonaktiebolaget Lm Ericsson (Publ) Packet pipe architecture for access networks
US6519762B1 (en) 1998-12-15 2003-02-11 Dell Usa, L.P. Method and apparatus for restoration of a computer system hard drive
US6256673B1 (en) 1998-12-17 2001-07-03 Intel Corp. Cyclic multicasting or asynchronous broadcasting of computer files
US6424999B1 (en) * 1999-03-11 2002-07-23 Emc Corporation System and method for restoring previously backed-up data in a mass storage subsystem
US6546500B1 (en) * 1999-03-19 2003-04-08 Fujitsu Limited Computer, computer network system, and recording medium
US6505216B1 (en) * 1999-10-01 2003-01-07 Emc Corporation Methods and apparatus for backing-up and restoring files using multiple trails
JP2001126405A (ja) * 1999-10-26 2001-05-11 Victor Co Of Japan Ltd ビットストリーム記録/又は再生装置
US6477624B1 (en) * 1999-11-08 2002-11-05 Ondotek, Inc. Data image management via emulation of non-volatile storage device
SE9904094D0 (sv) * 1999-11-12 1999-11-12 Protegrity Research & Dev Method for reencryption of a database
US6658436B2 (en) * 2000-01-31 2003-12-02 Commvault Systems, Inc. Logical view and access to data managed by a modular data and storage management system
ATE533102T1 (de) * 2000-02-01 2011-11-15 Commvault Systems Inc Hochgeschwindigkeitsdatentransfermechanismus
US6718446B1 (en) * 2000-02-11 2004-04-06 Iomega Corporation Storage media with benchmark representative of data originally stored thereon
US7096327B2 (en) * 2000-03-24 2006-08-22 Koninklijke Philips Electronics N.V. System for and method of accessing blocks on a storage medium
US7450114B2 (en) * 2000-04-14 2008-11-11 Picsel (Research) Limited User interface systems and methods for manipulating and viewing digital documents
US7358986B1 (en) * 2000-09-13 2008-04-15 Nextengine, Inc. Digital imaging system having distribution controlled over a distributed network
WO2002035359A2 (en) 2000-10-26 2002-05-02 Prismedia Networks, Inc. Method and system for managing distributed content and related metadata
US7197513B2 (en) * 2000-12-08 2007-03-27 Aol Llc Distributed image storage architecture
US6948039B2 (en) * 2001-12-14 2005-09-20 Voom Technologies, Inc. Data backup and restoration using dynamic virtual storage
US20030163809A1 (en) * 2002-02-27 2003-08-28 International Business Machines Corporation Automatic provisioning for subscription computing
US7185169B2 (en) * 2002-04-26 2007-02-27 Voom Technologies, Inc. Virtual physical drives
US7293150B2 (en) 2002-06-28 2007-11-06 Microsoft Corporation Method and system for creating and restoring an image file

Also Published As

Publication number Publication date
JP2004038979A (ja) 2004-02-05
US7818532B2 (en) 2010-10-19
TW200407690A (en) 2004-05-16
US20080016304A1 (en) 2008-01-17
TWI311702B (en) 2009-07-01
EP1376403A2 (en) 2004-01-02
CN1329841C (zh) 2007-08-01
US20040003314A1 (en) 2004-01-01
CN1495669A (zh) 2004-05-12
EP1376403A3 (en) 2008-01-23
US7293150B2 (en) 2007-11-06

Similar Documents

Publication Publication Date Title
JP4406225B2 (ja) 宛先記憶媒体、イメージファイルの作成方法、データ復元方法およびプログラム
JP4406224B2 (ja) イメージファイル管理方法及びその記録媒体
US7380091B2 (en) Heap memory management using a tri-linked list
US8386733B1 (en) Method and apparatus for performing file-level restoration from a block-based backup file stored on a sequential storage device
JP4755642B2 (ja) 記憶のためのファイル圧縮および圧縮ファイルの操作の方法およびシステム
US8069320B1 (en) System and method for consolidation of backups
US8549051B2 (en) Unlimited file system snapshots and clones
US7856451B2 (en) Selective file erasure using metadata modifications
US7979478B2 (en) Data management method
US6789094B2 (en) Method and apparatus for providing extended file attributes in an extended attribute namespace
US20060015535A1 (en) Preload library for transparent file transformation
EP2718825A2 (en) Storage architecture for backup application
US8412753B2 (en) File creation API
US20110125950A1 (en) Systems and methods for performing deduplicated data processing on tape
WO2016118580A1 (en) File encryption support for fat file systems
US20080320252A1 (en) Optimized and robust in-place data transformation
JP2008269520A (ja) 記録装置及び記録方法
US20110320753A1 (en) Data processing apparatus, computer program therefor, and data processing method
JPH0869400A (ja) 圧縮データ記録方法
JP2001056775A (ja) 計算機システム及びプログラム記録媒体
JP2004005524A (ja) データ記録装置、データ記録方法、当該方法を実行するためのプログラム及びプログラム記録媒体
JP2005135525A (ja) 記録再生装置、記録再生方法、及び記録再生プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090522

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091009

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091106

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121113

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121113

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131113

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees