図面 (/)

技術 イメージ形成中のコンピュータ・パーティション操作

出願人 パワークエスト・コーポレーション
発明者 ローレンス,アンディ・ブイレイモンド,ロバート・エスラフ,エリック・ジェイ
出願日 1998年8月15日 (22年11ヶ月経過) 出願番号 2000-510104
公開日 2001年9月25日 (19年9ヶ月経過) 公開番号 2001-516090
状態 特許登録済
技術分野 検索装置 計算機におけるファイル管理 デジタル記録再生の信号処理
主要キーワード ターゲット媒体 割り付けテーブル 実装ソフトウェア 関連ステップ システム保全性 請求項目 使用空間 スループット速度
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2001年9月25日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (14)

課題・解決手段

パーティションを同じまたは別のコンピュータ上の別のディスクイメージ形成中にパーティションを操作するための方法、システム、および製品が提供される。本発明は、パーティション操作をイメージ形成と統合することにより、データ移動を減少させる。ソース・パーティションを所定の位置でサイズ変更して、次いでサイズ変更されたソース・パーティションをイメージ形成するのではなく、たとえば、本発明の1つの実施形態は、ソース・パーティションをそのまま残し、ソース・パーティションのファイルシステム構造体のメモリ常駐コピーを操作し、次いで変更された構造体およびソース・ユーザ・データの対応する部分をターゲット位置コピーすることにより、オンザフライにサイズ変更を実行する。パーティション・サイズ変更に加えて、本発明により可能になるオンザフライ操作には、クラスタ・サイズ変更、デフラグファイル再配置、およびその他が含まれる。オンザフライ操作に適した新規イメージ・ファイル・フォーマット記述される。

概要

背景

概要

パーティションを同じまたは別のコンピュータ上の別のディスクイメージ形成中にパーティションを操作するための方法、システム、および製品が提供される。本発明は、パーティション操作をイメージ形成と統合することにより、データ移動を減少させる。ソース・パーティションを所定の位置でサイズ変更して、次いでサイズ変更されたソース・パーティションをイメージ形成するのではなく、たとえば、本発明の1つの実施形態は、ソース・パーティションをそのまま残し、ソース・パーティションのファイルシステム構造体のメモリ常駐コピーを操作し、次いで変更された構造体およびソース・ユーザ・データの対応する部分をターゲット位置コピーすることにより、オンザフライにサイズ変更を実行する。パーティション・サイズ変更に加えて、本発明により可能になるオンザフライ操作には、クラスタ・サイズ変更、デフラグファイル再配置、およびその他が含まれる。オンザフライ操作に適した新規イメージ・ファイル・フォーマット記述される。

目的

効果

実績

技術文献被引用数
2件
牽制数
1件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

セクタ単位ディスクイメージ形成およびオンザフライによるサイズ変更の方法であって、ソース内のユーザ・データを選択するステップと、前記ソースからファイルシステム構造体を読み取るステップと、ターゲットを選択するステップと、前記ソースと前記ターゲットとの間のサイズ変更関係を判断するステップと、サイズ変更中に前記ソースから前記ターゲットにデータをイメージ形成するステップとを含み、前記サイズ変更が前記イメージ形成と統合されてデータ移動を減少させる方法。

請求項2

前記ソースがディスク上に格納されたパーティションを含む請求項1に記載の方法。

請求項3

前記ソースがイメージ・ファイルを含む請求項1に記載の方法。

請求項4

前記ターゲットがイメージ・ファイルを含む請求項1に記載の方法。

請求項5

前記ターゲットがディスク上の空き空間を含む請求項1に記載の方法。

請求項6

前記判断するステップが、前記ソースのコピーのオンザフライに実行されるパーティション・サイズ変更操作が前記ターゲット内の前記選択されたソース・ユーザ・データのコピーに適合するためにソース・ユーザ・データ格納要件を十分に減少させると判断し、また前記サイズ変更するステップがセクタカウントを減少させるためのオンザフライに実行されるパーティション・サイズ変更操作を含む請求項1に記載の方法。

請求項7

前記サイズ変更するステップがオンザフライにクラスタパッキングするステップを含む請求項6に記載の方法。

請求項8

前記サイズ変更するステップがオンザフライに少なくとも1つのシステム・セクタを再配置するステップを含む請求項6に記載の方法。

請求項9

前記サイズ変更するステップが不良セクタを回避するステップを含む請求項6に記載の方法。

請求項10

前記判断するステップが、前記ソースのコピーのオンザフライに実行されるクラスタ・サイズ変更操作が前記ターゲット内の前記選択されたソース・ユーザ・データのコピーに適合するためにソース・ユーザ・データ格納要件を十分に減少させると判断する請求項1に記載の方法。

請求項11

前記イメージを形成するステップが、単一パス内で前記ターゲット上に完全にサイズ変更されたパーティション・イメージを配置するステップを含む請求項1に記載の方法。

請求項12

前記ファイル・システム構造体のオンザフライ操作後の、前記構造体保全性および内部一貫性を検証するステップをさらに含む請求項1に記載の方法。

請求項13

パーティションの少なくとも一部のイメージ形成のオンザフライに前記パーティションを操作する方法であって、前記パーティションのファイル・システム・データを含む、ブート・セクタ以外のセクタをイメージ・ファイルからコンピュータメモリ内にコピーするステップと、前記システム・データについて少なくとも1つのパーティション操作を実行するステップと、操作されたシステム・データをターゲットにコピーするステップと、選択されたユーザ・データを前記イメージ・ファイルから前記ターゲットにコピーするステップとを含む方法。

請求項14

前記実行するステップが、パーティション・サイズを増加させるサイズ変更するステップを含む請求項13に記載の方法。

請求項15

前記実行するステップが、パーティション・サイズを減少させるサイズ変更するステップを含む請求項13に記載の方法。

請求項16

前記実行するステップが、クラスタ・サイズを増加させるサイズ変更するステップを含む請求項13に記載の方法。

請求項17

前記実行するステップが、クラスタ・サイズを減少させるサイズ変更するステップを含む請求項13に記載の方法。

請求項18

前記実行するステップが、クラスタをパッキングするサイズ変更するステップを含む請求項13に記載の方法。

請求項19

前記実行するステップが、少なくとも1つのファイルをデフラグするデフラグするステップを含む請求項13に記載の方法。

請求項20

前記実行するステップが、少なくとも1つのシステム・クラスタを再配置する再配置するステップを含む請求項13に記載の方法。

請求項21

前記実行するステップ後の前記システム・データの保全性および内部一貫性を検証するステップをさらに含む請求項13に記載の方法。

請求項22

前記選択されたユーザ・データを前記イメージ・ファイルから前記ターゲットにコピーするステップが、前記イメージ・ファイルを通る多くとも1つのパスを要求する請求項13に記載の方法。

請求項23

イメージ・ファイルにより編成されたコンピュータ記憶媒体であって、前記イメージ・ファイルがヘッダ部分、システム割り付けマップ部分、ユーザ割り付けマップ部分、システム・データ・セクタの部分、およびユーザ・データ・セクタの部分を含む個別の部分を含むコンピュータ記憶媒体。

請求項24

前記部分が前記イメージ・ファイルの最前面ヘッダを備え、記述された順序で格納される請求項23に記載の編成された記憶媒体

請求項25

前記割り付けマップ部分がそれぞれビットマップを含む請求項23に記載の編成された記憶媒体。

請求項26

前記ユーザ・データ・セクタがクラスタ番号に従った順序でパッキングされて格納される請求項23に記載の編成された記憶媒体。

請求項27

オンザフライにパーティションを操作するコンピュータ・システムであって、少なくとも1つの所望のパーティション操作に対応するコマンドをユーザから取得するインターフェイスと、少なくとも1つのプロセッサと、前記パーティションをソースからターゲットにイメージ形成する間に前記パーティション操作を実行するオンザフライ手段により編成されたメモリとを含むシステム。

請求項28

前記インターフェイスがリモート・コンピュータと通信するための通信リンクを含む請求項27に記載のシステム。

請求項29

前記オンザフライ手段がイメージ・ファイル割り付けマップを読み取るため、および前記割り付けマップを使用してクラスタ・パッキングおよびファイル再配置欠く場合にパーティション縮小限度を判断する手段を含む請求項27に記載の方法。

請求項30

前記オンザフライ手段が、前記パーティションの1つの終端に大きな連続する空き空間を生成するためにユーザ・データ・クラスタを再配置し、次いで前記ファイル・システム構造体の保全性および内部一貫性を保つためにそれらを更新することにより、ファイル・システム内のクラスタをパッキングするパッキング手段をさらに含む請求項29に記載のシステム。

請求項31

前記パッキング手段がFATファイル・システム内のクラスタをパッキングする手段を含む請求項30に記載のシステム。

請求項32

前記パッキング手段がNTFSファイル・システム内のクラスタをパッキングする手段を含む請求項30に記載のシステム。

請求項33

前記オンザフライ手段がファイル・システム内のクラスタをサイズ変更するサイズ変更手段を含む請求項27に記載のシステム。

請求項34

前記サイズ変更手段がFATファイル・システム内のクラスタをサイズ変更する手段を含む請求項33に記載のシステム。

請求項35

前記オンザフライ手段がファイル・システム内のシステム・ファイルを再配置する再配置手段を含む請求項27に記載の方法。

請求項36

前記再配置手段がNTFSファイル・システム内のシステム・ファイルを再配置する手段を含む請求項35に記載のシステム。

請求項37

前記オンザフライ手段が、前記ソース内に存在する少なくとも1つのファイルを前記ターゲットが省略するように、選択されたファイルをイメージ形成する手段を含む請求項27に記載のシステム。

請求項38

前記選択されたファイルをイメージ形成する手段が、2つの個別位置から取得されたファイル・システム構造体をマージする手段を含む請求項37に記載のシステム。

請求項39

前記選択されたファイルをイメージ形成する手段が、復元するファイルの選択を可能にするためにファイルの一覧を作成する手段と、復元するために選択された各ファイルに存在するクラスタを識別する手段と、前記選択されたファイルに存在する前記クラスタを順序付けるための手段と、前記クラスタをイメージ・ファイルから前記ターゲットにコピーするために前記イメージ・ファイルの部分を通る単一のパスを作成する手段とを含む請求項37に記載のシステム。

請求項40

前記オンザフライ手段が、前記ターゲット内の少なくとも1つのパーティションが前記ソース内の対応するパーティションとは異なるファイル・システムに従って編成されるように、ファイル・システム・フォーマットを変換する手段を含む請求項27に記載のシステム。

請求項41

前記オンザフライ手段が前記ソースからデータ・セクタを読み取るための第1のバッファおよび第2のバッファを含み、前記第1のバッファが連続するディスク読み取り中使用セクタと介在する非使用セクタを共に受け取ってディスク回転による遅延を低減し、また前記第2のバッファが前記第1のバッファからコピーされた使用セクタを受け取る請求項27に記載のシステム。

請求項42

前記オンザフライ手段がファイル・システム構造体とユーザ・データを共に前記ターゲット上に配置する1つのパスを作成する手段を含む請求項27に記載のシステム。

請求項43

前記オンザフライ手段が、前記ターゲット上に情報を配置するために少なくとも前記ターゲットの部分を通る2つのパスを作成する手段を含み、ファイル・システム構造体を配置する1つのパスと、ユーザ・データ・セクタを配置する1つのパスとを含む請求項27に記載のシステム。

請求項44

前記オンザフライ手段が、前記ターゲット上に情報を配置するために少なくとも前記ターゲットの部分を通る3つのパスを作成する手段を含み、そのまま直接コピーできるユーザ・データ・セクタを配置する1つのパスと、以前の空き空間に入った再配置されたユーザ・データ・セクタを配置する1つのパスと、ファイル・システム構造体を配置する1つのパスとを含む請求項27に記載のシステム。

請求項45

オンザフライにパーティションを操作するコンピュータ・システムであって、少なくとも1つのプロセッサと、記憶媒体上に格納されたイメージ・ファイルからターゲットに、少なくとも1つのユーザ・ファイルを復元することに対応するコマンドをユーザから取得するインターフェイスであって、前記イメージ・ファイルがデフラグされた形態で格納されたユーザ・ファイルの内容を含むインターフェイスと、前記イメージ・ファイルを通る多くとも1つのパスおよび前記ターゲットを通る多くとも2つのパスを作成することにより、少なくとも1つの選択されたファイルを復元するオンザフライ手段により編成されるメモリとを含むコンピュータ・システム。

0001

(発明の分野)
本発明は、コンピュータ記憶デバイスパーティションオンザフライ操作に関するものであり、詳細には、本来ならパーティションを複製する間のパーティションのセクタカウントおよび/またはクラスタ・サイズの変更に関するものである。
(発明の技術的背景
用語について

0002

コンピュータハードディスクおよび他のコンピュータ記憶デバイスは、ビジネス個人政府機関、およびその他が使用する数値名前、日付、テキスト、画像、音声、および他の情報を表すデジタル・データを保持する。データの編成援助するため、および技術的理由により、多数のコンピュータが、データをドライブ、パーティション、ディレクトリ、およびファイルに分割する。用語「ファイル」および「ディレクトリ」は、ほとんどのコンピュータ・ユーザが使い慣れているものであり、文書上の定義の詳細は色々あるが、ほとんどの人がその意味について合意している。

0003

ただし、用語「パーティション」および「ドライブ」は、コンテキストがコンピュータに限定されているときでさえ、異なる意味を持つ。いくつかの定義に従うと、パーティションは必ず1つの記憶デバイスに限定されるが、「ファイル・システム」は、1つまたは複数のディスク上の1つまたは複数のパーティションを含むことができる。単一ディスク上に多数のパーティションが常駐するが、あるものは、ボリューム・セット、ストライプ・セット、ミラー・セット、または他の手法を使用して、単一パーティションのデータを1つ以上のディスク上に格納する。

0004

この明細書で使用されるように、「パーティション」とは、1つまたは複数のファイルまたはディレクトリを入れるためにフォーマットされる(またはできる)、1つまたは複数の記憶デバイス上の領域である。パーティションは、空である場合がある。またパーティションは、ディレクトリ、ファイル割り付けテーブルビットマップ、または同様のファイル・システム構造体なしでも、生データのストリームまたはブロックを保持する場合は、使用することができる。フォーマットされた各パーティションは、Macintoshファイル・システム、SunOSファイル・システム、WindowsNTファイル・システム(「NTFS」)、NetWareファイル・システム、またはMS−DOS/FATファイル・システムの1つ(MACINTOSHは、Apple Computer,Inc.の商標である。SUNOSは、Sun Microsystems,Inc.の商標である。WINDOWS NTおよびMS−DOSは、Microsoft Corporationの商標である。NETWAREは、Novell,Inc.の商標である)などの特定のタイプのファイル・システムに適合される。パーティション操作は、パーティション内のファイル・システム・データの操作を含む。ファイル・システムは、パーティション内のすべてのセクタがファイル・システムにより使用されるという意味でも、またはパーティション内のすべてのセクタがファイル・システムにより存在すると認識されるという意味でも、それを保持するパーティションを一杯にする必要はない。

0005

「ドライブ」は、場合によっては、特に論理ドライブC:またはいわゆるWintelマシン上のオペレーティング・システムを保持する他の論理ドライブを参照するときに、「パーティション」と交換可能であるように使用される。しかし「ドライブ」は、磁気ハード・ディスクまたはCD−ROMドライブなどの単一の物理的記憶デバイスを指す場合もある。混乱を避けるために、「ドライブ」は、この明細書では通常記憶デバイスだけを指し、パーティションは意味しない。以上より、パーティションはしばしば単一ドライブ上に常駐するが、複数のドライブに広がることもあり、また、1つのドライブは1つまたは複数のパーティションを保持することができることに注意されたい。
一般的なパーティション操作

0006

パーティションの作成、削除、移動、コピー、サイズの変更、パーティションのファイル・システムで使用されるクラスタ・サイズの変更、およびその他の操作の実行により、パーティションを操作することが有効である。パーティションを操作する多数のツールが市販されており、FDSKプログラムおよびPartitionMagic(登録商標)プログラム(PARTITIONMAGICは、PowerQuest Corporationの登録商標)を含む。パーティション操作の詳細は、米国特許第5,675,769号および米国特許第5,706,472号に記載され、参照により本発明書に組み込む。
一般的なディスク・イメージ形成;第1のイメージ形成方法

0007

パーティションをグループにしてコピーすることも、アーカイブ・コピーの作成のため、または追加の記憶デバイスの編成のために有効である。たとえば、パーティション内のあらゆるファイル、パーティション・グループ内のあらゆるファイル、またはディスク上のあらゆるセクタ(使用、または非使用)を、同じコンピュータ、またはファイル・サーバなどの接続されているコンピュータ上の、二次ディスクまたはテープ・ドライブなどの別の記憶デバイスにコピーするために、バックアップ・プログラムが長い間使用されてきた。

0008

ソース・ディスク・ドライブに格納されたパーティションのグループをコピーすなわち「イメージ形成」するために、各種のプログラムが使用可能である。一般にイメージ形成プログラムは、複数のパーティションをコピーする操作が可能である。使用される、第1の、そして最も単純なイメージ形成方法(「方法A」)は、「ファイル単位」手法であり、1つまたは複数のソース・パーティションで検出されたすべての単一ファイルのコピーを作成する。コピーは、一時記憶に「イメージ・ファイル」として格納されるか、または中間格納ステップが容易に省かれ、イメージ形成が直接実行されて別のディスク・イメージを(1つまたは複数のハード・ドライブ上に、同時に、または順次いで)作成する。

0009

コピーがイメージ・ファイルに格納される場合、格納の前に任意で圧縮し、新しいディスク・イメージを作成する間の適切な段階で解凍できる。圧縮では格納されるデータを処理して、たとえばランレングス符号化により冗長性を減少させる。イメージ・ファイルは、クラスタ、圧縮データ、またはこの両方をパッキングする。イメージ・ファイルはパーティションとは異なり、従来のファイル・システム・ソフトウェアでは認識できない形式でデータを格納する。たとえば、ユーザ・データ・クラスタがパッキングされるため、イメージ・ファイルのファイル・システム構造体内クラスタ番号または他のポインタは、必ずしも該当のデータ・クラスタの現在の(パッキングされている)位置を指すわけではない。イメージ・ファイルからのデータがターゲット・ディスクにコピーされ、そこにパーティションを作成したとき、クラスタはパッキング解除され、それらの予想された相対的位置に復元される。「ターゲット」および「宛先」の使い方は、この明細書では交換可能である。

0010

新しいイメージが作成されるとき、宛先パーティションのパーティション・サイズが決定され、宛先パーティションは適切なファイル・システム用に、選択されたサイズで迅速にフォーマットされる。次いで、各ファイルが一度に1つずつ新しいイメージにコピーされる。各ファイルがコピーされるときに、すべてのディレクトリおよび他のシステムの更新が実行される。この方法の実装におけるオプションで、ディスク更新をグループ化してディスク・ヘッド移動を減少させるために、任意のタイプのディスク・キャッシングスキームが使用でき(また、使用するべきであり)、これによって操作の完了に要する時間が短縮される。

0011

ただし、キャッシングを用いても、少なくとも次いで示す2つの理由により、ファイル単位コピーはディスク・ヘッドの大きな移動を必要とすることが多い。第1に、多くの場合ディスク・ヘッドは所定のファイルを読み取りながら、セクタの1つの連続するグループから次の連続するグループに移動しなければならない。このヘッドの移動は、所定のファイルの複数の読み取りを、ファイルのデフラグにより最小化できるが、一般にデフラグ自体でも、ヘッドの移動とデータの移動が必要である。第2に、多くの場合、1つのファイルの終わりが次のファイルの先頭に連続していないことが多いため、新しいファイルが読み取りのために開かれるたびにディスク・ヘッドは移動する。さらに、ファイル単位コピー・プログラムでは、ファイル名などの情報を含むディレクトリとファイル内容を保持するユーザ・データ領域との間をディスク・ヘッドがジャンプして行き来する。

0012

したがって、ディスク・イメージ形成プログラムによっては、ユーザ・データをファイル単位でコピーせず、データをクラスタ単位、またはセクタ単位でコピーするものがある。場合によっては、すべてのクラスタまたはセクタがコピーされ、また使用クラスタまたはセクタのみがコピーされる場合もある。後述するように、クラスタ単位およびセクタ単位の手法は、ファイル単位の手法より必要なヘッド移動が少ないが、従来のシステムではイメージ形成およびパーティション操作(パーティション・サイズ変更またはクラスタ・サイズ変更など)は分離され、順次的であり、時間を要するステップであることが多い。
第2のディスク・イメージ形成方法によるパーティション操作

0013

ディスク・イメージ形成の第2の方法(「方法B」)は、方法Aより実装は難しい点があるが、セクタ単位の手法を用いる。方法Bの1つのバージョンでは、ソース・ハード・ディスク・パーティションのすべての使用セクタをコピーする。コピーは、1つまたは複数のディスクに格納されるイメージ・ファイルの形態で一時記憶に格納するか、または中間格納ステップが省かれ、イメージ形成が直接実行されて別のディスク・イメージを1つまたは複数のハード・ドライブ上に、同時に、または順次に作成する。

0014

転送されるデータの量を減らすために、より少ないセクタをコピーする、方法Bのバージョンを使用できる。これは、可能な場合には使用セクタのみをコピーすることにより実装できる。場合によっては、非使用のある種のセクタのコピーを防ぐことが容易ではないことがある。このような重要ではないセクタのデータは保存する必要はないが、それらはデータを含むセクタに接近しているので、それらのコピーを防ぐより、コピーする方が容易であり、速い場合がある。

0015

いずれにせよ、新しいイメージを作成するときに、各コピーされるセクタがパーティションの先頭と相対してどの位置に所属するかを決定するために、ビットマップ、使用セクタ・リスト、ファイル割り付けテーブル、または同等の構造体も格納しなければならない。セクタはソース・パーティション内の位置と同じ相対的位置に置かれる代わりに、イメージ・ファイルにパッキングされる。場合によっては(NTFSビットマップなどでは)、適切な情報がファイルシステム構造体自体にすでに継承され、追加テーブルまたはリストまたはマップを、作成または格納する必要がない。

0016

新しいイメージが作成されるとき、宛先パーティションのパーティション・サイズが決定される。方法Aのように新しいイメージを宛先にフォーマットするのではなく、ソース・セクタが宛先パーティション上のそれらの相対的位置にコピーされる。必要に応じて、パーティションの先頭と相対してセクタをどこに配置すべきかを示す格納されたテーブル、リスト、またはマップを参考にできる。

0017

宛先パーティションがソースと全く同じサイズであり、また宛先ドライブのハードディスクジオメトリもソースのそれと同一の場合は、新しいイメージを作成し、すべての必要なシステムおよびデータ・セクタがコピーされると、操作は完了する。その他の場合は、パーティションを要求されたサイズにサイズ変更(収縮または拡張)し、またシリンダ境界に揃えるなど、技術的に周知の標準パーティションサイジング取り決めに適切に準拠することを保証するため、個別の(時には複雑な)パーティション・サイズ変更・ステップが必要である。
方法Aと方法Bの比較

0018

方法Aに勝る方法Bの主な利点は、宛先ディスク上のイメージ形成処理におけるディスクヘッドの移動が減少することである。ほとんどの場合、データがディスクに書き込まれるときの、1回のスムースな連続的「上昇」シークのみに減少する。宛先パーティションでサイズ変更が不要の場合は、この方法はほとんど常に方法Aより速くなる。方法Aでは、コピーされるファイルの2倍または3倍のヘッド・シークが必要である。たとえば、ファイル単位の方法Aにより各ファイルが書き込まれるためには、データを書き込む位置へのシーク、更新するディレクトリへの別のシーク、および更新するファイル割り付けテーブルまたはビットマップへの別のシークがある。適切なディスク・キャッシングは実質的にこの時間を短縮できるが、ヘッド・シーク・オーバヘッドを完全に除去することはできない点に注意されたい。

0019

5,000ファイルに渡り500MBのデータが含まれるパーティションのイメージ形成処理、およびシーク・タイムが10msであり、またデータ・スループット速度が1秒当り4MBであるハード・ディスク(およびソース・イメージのコピーを作成する時間、およびそのソースを記憶から取り出すために要する時間はすべて無視する)を想定すると、方法Aではデータを新しいイメージに書き込むために125秒、さらにディスク・シーク・タイムに最大150秒(5,000ファイル×ファイルあたり3シーク×0.01秒)、すなわち最大275秒かかる。方法Bでは、合計で125秒にトラック単位のシーク・タイムにかかる数秒を加えた時間だけ必要である。

0020

ただし、方法Bには少なくとも2つの主な欠陥がある。第1は、この方法ではすべてのシステム・セクタおよびデータ・セクタをコピーする必要がある。部分的セクタのコピーはこの方法を複雑にするので、実行されない(部分的セクタのコピーは実装できるが、複雑であるために努力に見合うほどの節約にならない)。単にセクタ全体がコピーされるため(また、簡素化されたモデルでは、完全に使用されるか否かに関わらず、時にはクラスタ全体、またはセクタのグループがコピーされるので)、余分なデータもコピーされ、その結果方法Aより多くのデータの転送が必要となるのはほとんど明らかである。これはイメージ書き込み時間を増加させ、毎回イメージ・ファイルを使用するときの格納サイズが大きくなることはほとんど確実である。

0021

方法Bのもう1つの主要な欠点は、多くの場合ある種のパーティションのサイズ変更が必要になる点である。サイズ変更は迅速に実行できる。しかし、場合によってはサイズ変更に重要なシステム構造体の主要な再構築と調整が含まれ、多数のディスクヘッド・シークおよび非連続的な読み取りと書き込みを実行する時間が実質的に必要となる。最悪の場合は、サイズ変更処理が必要な方法Bでは、方法Aの数倍の時間を要する。本発明は、宛先パーティションを最初に作成し、次いでサイズ変更する必要性を除去することにより、この欠点に対処するものである。
一般的ディスク・イメージ形成およびパーティション処理

0022

方法Bを使用する周知のイメージ形成プログラムは、パーティション・サイズを変更する柔軟性と効率を大きく制限する。方法Aまたは方法Bのいずれかを使用する多数のイメージ形成プログラムは、ソース・パーティションと同じサイズ(セクタまたは他の割り付け単位が同数)であるターゲット・パーティションを作成するだけである。イメージ形成プログラムによっては、パーティション・サイズを変更するものもあるが、非常に限られた方法でのみである。たとえば、ある種のプログラムは追加セクタを追加することにより、ターゲット・パーティションをソース・パーティションより大きくし、それによって、追加セクタがないときはそうならない場合に、ターゲット・パーティションの縁部がディスク・シリンダ境界上にくるようにする。これらの手法は、ターゲット格納媒体がソース格納媒体よりきわめて大きいときに、価値を限定してきた。なぜなら、ターゲット上にパーティション内のファイル・システムが使用できる、新しく使用可能な空間を作成しないためである。

0023

より大きなパーティションを作成する1つの手法には、比較的高速のディスク・イメージ形成プログラムを使用して、実質的にソース・パーティションと同じサイズのターゲット・パーティションを作成し、次いでPartitionMagicプログラムまたは同様のツールを使用してターゲット・パーティションを実質的により大きくすることが含まれる。代替方法として、ソース・パーティションをイメージ形成前にサイズ変更し(空間が使用でき、ソースが読み取り専用ではない場合)、次いで実質的により大きなソース・パーティションをイメージ形成ツールによりそのまま直接コピーする。

0024

別の種類のイメージ形成プログラムでは、ソース・パーティションより実質的に大きな空のターゲット・パーティションを作成できる。「実質的により大きい」とは、単に次のシリンダ境界まで増やすのではなく、ターゲット・パーティションの縁部をシリンダ境界を超えた位置に置くことによりさらに増やすことを意味する。「実質的により小さい」とは、ファイル・システムまたはオペレーティング・システム要件により課せられた、シリンダ境界上または他の隣接する境界上に取り付けることと同じ意味である。ユーザ・データは次いでファイル単位でソース・パーティションから実質的により大きなターゲット・パーティションにコピーされる。これにより、イメージ形成後の別個のサイズ変更は不要となるが、不利な点もある。

0025

第1に、パーティション・サイズにより異なるクラスタ・サイズ、FATテーブル・サイズとフォーマット、および他のファイル・システム固有の特性を、増加したパーティション・サイズに合わせることが常に考慮されるわけではない。このためプログラムによっては非標準パーティションを作成し、パーティション・テーブルが大きなパーティションを示し、パーティション内部のファイル・システム構造体が、いくつかの点またはすべての点でより小さなパーティションを想定する。このような不一致は、どうみても不便である。最悪の場合は、ファイル・システム状態に関する指示の不一致は、データの予想位置と実際の位置が異なるため、ユーザ・データを破壊または消失の危険に晒すことになる。

0026

第2に、ファイル単位でユーザ・データをコピーする手法は、一般に大きなディスク・ヘッドの移動が必要である。各ファイルを順に配置するために、ディレクトリまたはFATテーブルまたは他のファイル・システム構造体に戻るための繰り返しの移動が必要である。ファイルは一般に断片化されているため、ファイル内容を読み取るためにも繰り返しの移動が必要であることが多い。すなわち、各ファイルは一般に複数の位置に格納され、それらはファイルの内容を保持しない記憶媒体の領域により分離される。ファイルのコピーの前に、ファイルでデフラグ・プログラムを実行することにより、断片化を緩和する、または除去することさえ可能である。

0027

ただし、すべてのファイルがデフラグされる場合でも(記憶媒体の1つの連続する領域に格納される)、各ファイルのディレクトリに戻る必要性は残る。各ファイルが連続している場合でも、ファイルはパーティションを一方の端から他方に向かってスキャンするときに現れる順と同じ順序で必ずしもアクセスされるわけではない。ある意味では、ファイルがパーティション内の他のファイルに対して相対的に分散されるので、パーティション自体も断片化される。中間イメージ・ファイルを使用してデータを1つのパーティションから別のパーティションにコピーするときは、これらの多数の考慮事項が依然適用される。

0028

まとめると、次のツールが現在使用可能である。
・ファイル・デフラグ・ツール
・パーティション・サイズの実質的な変更ができない、比較的高速のセクタ単位ディスク・イメージ形成ツール
・ターゲット・パーティション・サイズをソース・パーティション・サイズと実質的に異なる大きさにできる、かなり低速のファイル単位ディスク・イメージ形成ツール
・ イメージ形成の前または後に、パーティションまたはクラスタを所定の位置でサイズ変更するツール

0029

上記のように、イメージ形成中にパーティションを操作する、新しいシステム、デバイス、および方法を提供することが、さらに使い易く、また所望の操作がより速く、より柔軟性を持つための改良となる。このような改良が、下記に開示され、特許請求される。
(発明の概要

0030

本発明は、ハードディスク・パーティションのイメージ形成のための新しい方法、システム、およびデバイスを提供する。例として、2つのパーティションS1およびS2を有するソース・ディスクを想定し、これらは変更されてターゲット・ディスクTにイメージ形成される。ユーザは、S1から特定のファイルを削除して、ターゲット上にS2の増加した空間のために空き部分を作成し、またS1をデフラグすることによりファイル・アクセスをより効率的にする。たとえば、ユーザはいくつかの新しいアプリケーション・プログラム用の空間を作るために、古いアーカイブ・コピー、一時ファイル、および先送りされたプロジェクトに関連するファイルを除去する。従来のシステムでは、これは次いでまとめた一連の操作により実行される。
(S1->削除->S1’->デフラグ->S1”->縮小->S1”’;S2->拡張->S2’)->イメージ形成->T

0031

すなわち、ユーザは選択されたファイルをS1から削除し、ソース・ディスク上にS1’を作成し、S1’をデフラグしてS1”を作成し、PartitionMagic(登録商標)などのパーティション・リサイザ・プログラムを使用してS1”を縮小してS1”’を形成し、パーティション・リサイザを使用してS2を拡張してS2’を形成し、最後にS1”’およびS2’をターゲット・ディスクにコピーする。この手法は重要な欠点を有し、ユーザから見て複雑であり、ソース・パーティションを変更するという要件を含む。他の欠点は、Tに対して追加操作が必要になる可能性があることである。たとえば、TはSより大きい場合があり、そのためにT上のS2’のイメージを、Sで可能なものよりさらに拡張しなければならない。

0032

さらに、データの所定のブロックを数回移動する(ディスク上で、またはディスクとメモリの間で)場合がある。たとえば、削除ルーチンデフラガ、およびパーティション・リサイザは、それぞれディレクトリ情報の独自のコピーを作成する。同様に、デフラガおよびパーティション・リサイザは、ディスク上で同じデータ・ブロックのいくつかを移動する場合がある。

0033

対照的に、本発明では次のような手法が可能である。
(S1,S2)->S1ファイルの削除、S1のデフラグ、S1の縮小、S2の拡張、イメージ形成->T

0034

すなわち、ファイル削除、デフラグ、およびパーティション・サイズ変更は、イメージ形成の作動中に実行される。これにはいくつかの長所がある。操作のセット全体が、たとえば「ウィザード」または他の単純化するインターフェイスを用いて、ユーザには単一操作として提示される。ソース・パーティションを変更する必要はない。S2はソース・ディスクがターゲットより小さいか否かに関わらず、可能な限りの完全な範囲まで拡張される。最後に、デフラグするソース・ファイルを集めるときに、場合によっては大きなヘッド移動がまだ発生するが、重複するデータ移動が避けられることが多い。

0035

1つの実施態様では、本発明は最初に使用可能な空き空間の境界を検出する。次いで、すべての使用ソース・セクタのビットマップを取得し、おそらくソース内のファイル・システム構造体の保持に使用されているすべてのセクタのビットマップも取得する。使用ソース・セクタの総計サイズが計算され、空き空間のサイズと比較される。ファイル削除およびクラスタ・サイズ変更などのオプションが、必要に応じて検討される。ファイル・システム構造体をメモリに読み取り、操作の速度を速めることができる。

0036

十分な空間が使用可能である場合、ターゲット・パーティションの外側に出ずにコピーできる、すべての使用ソース・セクタをそのまま直接コピーすることにより、イメージ形成が開始される。次いで他のセクタが空き空間に入れられる。最後にファイル・システム構造体が更新される。これは、構造体を配置する前にメモリ内で実行するか、またはターゲットから構造体を読み取り、それらを調整し、再度書き込むことにより実行できる。パーティション・テーブルも最初に配置されるか、または読み取り、調整、再書き込みが実施され、ソースとターゲット間のパーティション・サイズ又はディスク・ジオメトリの相違を反映させる。

0037

本発明は、ドライブ上のすべてのパーティションまたはソース・ドライブの選択されたパーティションが、イメージ形成されるときに使用できる。新しいディスク・イメージは、格納されているイメージ・ファイルから作成されるか、またはソース・ハード・ドライブから直接作成され、従来の手法における速度より実質的に高速で実施できる。

0038

「技術的背景」で説明した方法Bの主な弱点は、データがコピーされた後のパーティションのサイズ変更にこの方法が依存するため、最悪の場合はイメージ形成とパーティション・サイズ変更に要する総計時間が実質的に増加する点である。本発明では、コピーされるパーティションの「仮想サイズ変更」により、この欠点が除去される。システムおよびディレクトリ・セクタが、ディスクに書き込まれる前にメモリ内で更新される。

0039

最後に、いくつかの実施態様では、すべてのディレクトリおよびシステム・セクタおよび位置の完全なコピーを作成する。これは、ソース読み取り処理中に実行され、情報がパーティション・コピーにより格納されるか、または格納されたセクタにより継承されたシステムおよびディレクトリの情報を行き来して、格納されたパーティションがコピーされるたびにオンザフライに実行されるかのいずれかである。好ましい方法は、ソース・セクタが初めて読み込まれ、記憶にコピーされる時点で、このファイル・システム構造体情報を格納する方法である。これにより、新しいパーティション・イメージが宛先ドライブ上に作成されるたびに、直ちに情報にアクセス可能となり、またディスク・イメージ形成の特性により多数のイメージが1つのソースから作成可能であるため、各新イメージ形成のための時間のかかるステップが除去される。

0040

元のソース・パーティションおよび宛先パーティションの両方のサイズがわかっているため、データおよびシステム・セクタのコピーの前に、各データおよびシステム・セクタを宛先ドライブ上に作成される新しいイメージ内のどの場所に配置すべきかを正確に決定することができる。イメージ形成処理中に参考にする変換マップを作成でき、セクタの各グループについて適切な「仮想サイズ変更」位置を迅速に決定できる。変換マップは各データ・セクタの元の位置および最終(仮想サイズ変更または他のオンザフライ操作後)の位置を示すか、または少なくとも再配置された各セクタの最終位置を示す。変換マップは、FATフォーマット、NTFSフォーマット、または他のファイル・システム構造体フォーマットで配置されるなど、パーティションで使用されるファイル・システムの特性および要件に合わせることができる。

0041

まとめると、本発明は、ファイル・システム構造体をメモリ内およびイメージ・ファイル内に、明確にはサイズ変更および他のオンザフライ操作のための、統合されたパーティション操作コードを含むイメージ形成プログラムによるアクセスのために配置して編成することにより、ディスク・イメージ形成をより柔軟にまたより効率的にする。また、読み取り専用ソース・パーティションから、本来は小さすぎるターゲットへのイメージ形成も可能にする。本発明の他の特徴および利点は、以下の説明によりさらに十分に明確になるであろう。

0042

本発明の利点および特徴を説明するために、添付の図面を参照にして本発明のさらに詳細な説明がなされる。これらの図面は本発明の選択された態様を説明するものであり、本発明の範囲を制限するものではない。図面は次の通りである。
(好ましい実施形態の詳細な説明)

0043

本発明は、ディスク・イメージ形成と共に実行される「オンザフライの」パーティション操作に関する。パーティション操作およびデータ複製のシステムおよび方法が、明確にはFAT、NTFS、およびHPFSファイル・システムに注目しながら、米国特許第5,675,769号および米国特許第5,706,472号、ならびに米国特許出願第08/834,004号で一般的に説明されている。これらの説明は、ここに参照により組み込む。関連する用語はそれらの中およびここで定義される。対立する場合は、この出願の組み込まれない部分が優先する。
用語について

0044

ユーザは、時に1つの位置から別の位置にパーティションをコピーする必要がある。ユーザとは、人物、あるいはソフトウェア・タスクまたは代理人または人物に代わって正規に実行する他のコンピュータ処理とすることができる。2つの位置とは、同じディスク上、同じコンピュータに接続された異なるディスク上、または2つの別のコンピュータに接続された異なるディスク上とすることができる。後者では、関係する2つのコンピュータは、ネットワークまたはダイアルアップリンク赤外線リンクなどの携帯リンクまたは下記に定義する他の「回線」、および/または様々なフォーマットの中間ファイルを含む、他の通信リンクを介して通信できる。ネットワークは、LANまたはWANまたはインターネットの一部またはイントラネットを含む他のネットワークに、ゲートウェイまたは同様の機構を介して接続可能である。

0045

ネットワークは、ネットワーク信号回線により1つまたは複数のネットワーク・クライアントに接続される、1つまたは複数のサーバを含むことができる。サーバおよびクライアントは、ユニプロセッサマルチプロセッサ、またはクラスタ化されたプロセッサ・マシンとすることができる。サーバおよびクライアントは、それぞれアドレス付け可能な記憶媒体、たとえばランダム・アクセス・メモリおよび/または磁気または光ディスク、ROM、バブルまたはフラッシュ・メモリなどの不揮発性記憶媒体を含む。

0046

適切なネットワーク・クライアントは、制限なしに、ラップトップページャセルフォーンパーソナル・デジタル・アシスタント、および他のモバイル・デバイスなどのパーソナル・コンピュータおよびワークステーションを含む。信号回線は、ツイストペア同軸、または光ファイバケーブル電話回線、衛星、マイクロウェーブリレー変調AC電力線、RF接続、および/または当業者には周知の他のデータ伝送「回線」を含む。

0047

サーバおよび多数のネットワーク・クライアントは、フロッピー・ドライブ、テープ・ドライブ、光ドライブまたは記憶媒体を読み取る他の手段をしばしば使用できる。適切な記憶媒体には、磁気、光、または特定の物理構成を備える他のコンピュータが読み取り可能な記憶デバイスが含まれる。適切な記憶デバイスには、フロッピー・ディスク、ハード・ディスク、テープ、CD−ROM、PROM、ランダム・アクセス・メモリ、ROM、フラッシュ・メモリ、および他のコンピュータ・システム記憶デバイスが含まれる。これらのデバイスのいくつかはシリンダ境界を備え、他は備えない。シリンダ境界を備えないデバイスは、それにも関わらず互換性の理由によりこれらの境界をエミュレートする。

0048

物理構成は、データおよび/またはコンピュータ・システムを、ここで説明する特定の事前定義された方法で動作させる命令を表す。このように、媒体は、実質的にここで説明するようなイメージ形成中のパーティション操作をサポートする、サーバおよび/またはネットワーク・クライアント・コンピュータにより実行可能なプログラム、データ、関数、および/または命令を現実に記録する。本発明に従った適切なソフトウェアおよびハードウェア実装は、ここで示す説明およびプログラミング言語およびツール、たとえばJava、Pascal、C++、C、アセンブリファームウェアマイクロコード、PROMS、および/または他の言語、回路、またはツールなどを使用して、当業者により容易に提供される。
一般的なパーティション・イメージ形成および操作の状態

0049

図1から図3は、ユーザがソース・パーティション100をソース位置から宛先位置にコピーするときに発生する、一般的な3つの状態を示す。第1の状態では、宛先でソース・パーティション100のコピーを受け取るために使用可能な空き空間の領域102が、図1に示すようにソース・パーティション100より大きい。第2の状態では、空き空間の領域202は図2に示すようにソース・パーティション100と同じサイズである。図3に示すように、第3の状態では空き空間の領域302はソース・パーティション100より小さい。一般に、ソースと宛先は同じドライブ上、同じコンピュータの異なるドライブ上、または異なるコンピュータ上の異なるドライブ上にある。

0050

下記に説明するように、図1から図3は、ソース・パーティション100内で使用空間がどのように分布するか、ソース・パーティション100内でどのファイル・システムが使用されているか、およびその他の要因により、それぞれ複数の特定の状態を表す。ただし、最初に可能性のある状態を、これら3つの図で示された3つのグループに分類することが有効である。

0051

図1に示すような状態の多くにおいて、ユーザはソース・パーティション100と同じサイズの新しいパーティションの作成だけが必要である。このような新しいパーティションは、使用セクタをソース・パーティションからそのまま直接空き空間に「直接コピー」することにより作成できる。空き空間がパーティションとしてオペレーティング・システムに見えることが必要な場合は、パーティション・テーブルも更新される。

0052

「直接コピー」(「そのまま直接」コピーするとも言う)において、ソース・パーティション100のオフセットNに配置されたユーザ・データのセクタは、空き空間102の同じオフセットNに配置されたセクタにコピーされる。したがって、直接コピー後にソース・パーティション100および(以前は空きであった)空間102の新しいパーティションをスキャンする場合、すべての使用セクタは、各パーティションで同じ順序で、使用セクタ間がすべて同じ間隙(同じオフセット、同じランレングス)で現れる。このような直接コピー機能は、PoweQuest Corporation of Orem、UtahのPartitionMagic(登録商標)およびDriveCopyプログラムが提供する(PARTITIONMAGICはPoweQuest Corporationの登録商標であり、DRIVCOPYは同じく商標である)。

0053

直接コピーの変形例では、空き空間102の不良セクタを識別し、ソース・パーティション100を直接コピーする前に、ソース・パーティション100内の任意の使用セクタを再配置する。これにより、実装ソフトウェアが使用セクタを不良セクタ上にコピーすることを防ぐことができる。ファイル・システム構造体(FATテーブルは不良クラスタ番号に印をつけ、他のファイル・システムは他のリスト形式を使用する)を読み取ることにより、および/またはサーフェイステスト(あらゆるセクタの読み取り、またはあらゆるセクタの読み書き検証)の実行により、不良セクタが識別できる。

0054

ただし、図1に示すようないくつかの状態では、ソース・パーティション100より大きな新しいパーティションを作成することが有効である。たとえば、ソース・パーティション100が1ギガバイト・ディスク・ドライブ上にあり、空き空間102が4ギガバイト・ディスク・ドライブ上にある場合、ソース・パーティション100より3または4倍大きな新しいパーティションを作成し、新しいパーティション内での後のユーザ・データの量の増大を収容するために追加の空き空間を使用可能にすると有効である。これを実行する1つの方法では、直接コピーを使用してソース・パーティション100と同じサイズの新しいパーティションを作成し、次いでPartitonMagicプログラムを使用し、新しいパーティションを所定の位置でサイズ変更して追加の空き空間を含むようにする。

0055

本発明は代替方法を提供し、そこではソース・パーティションを変更せずに「オンザフライ」に新しいパーティションをサイズ変更するので、空き空間102に作成される新しいパーティションは、すでに作成時点で追加の空き空間を含んでいる。このように、ソース・パーティション100より実質的に大きな新しいパーティションを作成するために、その後のサイズ変更が要求されない。このようなオンザフライのパーティション増設は、一般にオンザフライのパーティション縮小に多くの点で似ているが、これより容易である。したがって、この説明では、多くの部分をオンザフライのパーティション縮小に当てている。

0056

図2に示すような状態について検討すると、一見しただけで、関連ステップだけを直接コピーして、新しいパーティションをソース・パーティション100と同じサイズにしなければならないことが分かる。ただし、ソース・パーティション100より小さな新しいパーティションを作成することが可能である。たとえば、ソース・パーティション100に非使用セクタが十分ある場合、ユーザは従来のファイル・デフラグ・ツール(「デフラグメンタ」または「デフラガ」と呼ばれる)を使用して、各ファイルの使用セクタ間の間隙を埋め、次いでPartitonMagicプログラムを使用してソース・パーティション100をサイズ変更すると、ソース・パーティションは前より小さくなる。PartitionMagicプログラムは、クラスタをパッキングする、すなわち必ずしも同じファイルに属するわけではない使用セクタ間の間隙を埋めることによりパーティションをコンパクションする。ただし、デフラグもクラスタ・パッキングの他の形態も、従来はその後のイメージ形成に備えたソース・パーティションの所定の位置での変更を含んでいる。

0057

当業者は、デフラグとクラスタ・パッキングが関連はするが全く同じプロセスではないことを理解されるであろう。デフラグは、クラスタ・パッキングの特定の種類であり、所定のファイル内の少なくともいくつかのクラスタが、連続実行されるようにパッキングされて昇順シーケンスになる。一般にクラスタ・パッキングは単一ファイルではなく全体としてのパーティションに関連し、単にクラスタを空き空間にパッキングしてパーティションの縮小を可能にする。一般にファイルは、必ずしもパッキングによりデフラグされるわけではなく、このようなパッキングはファイルの断片化を増加させる場合すらある。

0058

パーティション境界がシリンダ境界上にこなければならない場合、デフラグまたはコンパクションによりパーティションが縮小される前に、少なくとも1シリンダ分の非使用セクタが存在しなければならない。クラスタ・サイズ変更でも空き空間を作成できる。デフラグされた、および/またはコンパクションされたソース・パーティション100が縮小された場合、直接コピーにより元のソース・パーティション100より小さな新しいパーティションが作成される。

0059

本発明は代替方法を提供する。そこでは新しいパーティションに対して「オンザフライ」にデフラグ、および/またはコンパクション、およびサイズ変更も実行するので、空き空間102に作成される新しいパーティションは、すでに作成時点でソース・パーティションより実質的に小さい。ユーザの観点からは、単一パーティション・イメージ形成ステップが、一般に個々のデフラグ、コンパクション、サイズ変更、および直接コピー・ステップに置き換えられた。

0060

パーティションのサイズ変更(拡張または縮小)、デフラグ、およびコンパクションに加えて、他のパーティションまたはファイル・システム操作も、本発明に従ってイメージ形成の間オンフライに実行できる。このような操作には、特に不要データの除去、データ圧縮および解凍、データ暗号化および復号化、CHKDSKツールで実行されるようなファイル・システム保全性チェック、ターゲット上の不良セクタを避けるためのセクタの再配置、および1つのファイル・システムから別のものへの変換が含まれる。イメージ形成の間のオンザフライのパーティション操作の実行は、実質的に個別ステップの実行より効率的である。なぜなら、データ移動、ディスク・ヘッド移動、不要なユーザ介入、および他の時間のかかるステップが大きく削減されるためである。

0061

次いで、図3で示すような状態では、空間302がソース・パーティション100より小さいので、一見、新しいパーティションは使用可能な空間302に作成できないように見える。ただし、上記のように、ソース・パーティション100より小さな新しいパーティションの作成が可能である。従来の手法には、ユーザが識別したファイルを削除するファイル・マネージャまたは同様のオペレーティング・システム・ツールの使用、ソース・パーティション100をデフラグするスタンドアロン・デフラグメンタの使用、ソース・パーティション100をより小さくサイズ変更するPartitionMagicプログラムの使用、およびその後のソース・パーティション100(十分小さくなっていると想定する)の空き空間302への直接コピーが含まれる。上記のように、本発明は代替方法を提供し、そこではファイル削除、ファイル・デフラグ、パーティション縮小、およびパーティション・コピーが(ユーザの観点と短縮されたディスク・アクセスに関しての両方から)単一の強化されたイメージ形成ステップにより置き換えられる。

0062

上記の概念および方法のいくつかは、図4から図8でさらに説明される。図3のような状態が図4から図8に示されるが、本発明は図1および図2に示すような状態にも適用されることを、当業者は理解されるであろう。

0063

図4は、空き空間402より大きなソース・パーティション400を示す。ソース・パーティション400は、上記で説明したソース・パーティション100の1例であり、示すように使用セクタが配置されている。特に、ソース・パーティション400は連続する使用セクタの第1の領域404、および連続する使用セクタの第2の領域406を含む。使用セクタの第2の領域406は、非使用セクタ408により第1の領域404およびパーティション400の終端から離れている。404、406のいずれの領域も、完全に連続するのではなく間隙を含むこと、使用セクタの他の領域が存在可能であること、または領域404、406の1つまたは他方が、他のパーティション400の中には存在しない可能性のあることが明らかであろう。さらに一般的には、所定の様々なパーティションおよび空き空間の例は説明のためにのみ与えられ、本発明の実施が可能である他の多数の状態を除外しない。

0064

図5に示すように、パーティション400および空き空間402が内部的に構成され、相互に相対的にサイズが決められ、ソース・パーティション400からの直接コピーにより新しいパーティションが作成される。デフラグ、コンパクション、またはファイル削除が可能であるが、これらは新しいパーティションの作成に要求されない。

0065

比較のため、ソース・パーティション400の受け入れに使用可能な空き空間が空き空間402ではなく、図6に示す、それより小さな空き空間602である場合を想定する。上記に説明し、図7に示すように、パーティション400は従来の方法でデフラグでき、領域406を領域404と連続させ、次いでパーティション400を周知のツールを使用してサイズ変更し、その後周知のイメージ形成技術を使用して空き空間602において直接コピーを実施することができる。ただし図8に示すように、本発明のオンザフライ最適化イメージ形成は、小さくパッキングされ、恐らくデフラグされてもいる新しいパーティションを、(a)ユーザには単一の統合されたサイズ変更およびイメージ形成ステップのように見え、(b)従来の手法より効率的であり、(c)ソース・パーティションに対する変更を要求しない、ステップで作成する。
一般的なオンザフライ・サイズ変更の方法

0066

図9に、本発明の強化されたイメージ形成方法を一般的に示す。収集するステップ900では、本発明を実装するソフトウェアがソース・パーティションおよびそのコンテキストに関する情報を収集する。この情報は、一般にシステム情報、ディスク・ジオメトリ、および不良セクタ・リストの3つに分類できる。

0067

システム情報は、パーティション・テーブル・コンテンツ、ソース・パーティションがブート可能か否かの指示、ソース・パーティションが非表示か否かの指示、検証されたマスタ・ブート・レコード(「MBR」)のコピー、およびロックまたはソース・パーティションおよびパーティション・テーブルへの排他アクセスの他の保証などのオペレーティング・システム情報を含む。システム情報は、ソース・パーティション内で使用されるファイル・システムのタイプ(FAT12、FAT16、FAT32、NTFS、HPFS、Linux、および多数の他のファイル・システムがその例である)などのファイル・システム情報、またファイル割り付けテーブル、ビットマップ、あるいはどのセクタまたはクラスタが使用されているかを示す他の「割り付けマップ」の中の情報のコピーも含む。

0068

ディスク・ジオメトリは、バイト単位のセクタ・サイズ、トラック当りセクタ数ヘッド数シリンダ当りのトラック)、およびシリンダ数を含む。ストライピングまたはミラーリングまたは他のフォールトトレランスの手法が使用される場合、複数のディスクが指定できる。ジオメトリは、システム呼び出しにより取り出すことができる。ディスク以外の記憶デバイス、たとえばRAM、ROM、またはフラッシュ・メモリなどが使用されている場合、ジオメトリはそれを指定し、ページまたは他のブロック・サイズおよびブロック数およびそれらのアドレス付け特性を示す。電池付きのRAM、ROM、またはフラッシュ・メモリは、「ディスク」として編成できる。したがってシーク時間はあまり考慮しなくてよいが、このようなディスクは、ほかにも本発明に従ったパーティション操作およびイメージ形成のために、光または磁気ディスクに交換可能である。

0069

不良セクタ・リストは、ソース・パーティション内の不良セクタを識別する。不良セクタは、信頼性のあるデータ保持ができないことがわかっている、またはその疑いのあるセクタである。不良セクタ「リスト」は、リンク・リスト、ビットマップ、FATテーブル・エントリ集合、または不良セクタを識別するその他のデータ構造体である。これは、ファイル・システム構造体により取得されるか、もしくはオペレーティング・システムまたは記憶デバイス・コントローラを呼び出して取得される。また、媒体がオペレーティング・システムまたはファイル・システムの援助なしに受け入れ可能な信頼性を備える場合は、これを省略できる。これは、たとえば不良セクタへのアクセスの試みを識別し、アクセスを試みたシステム呼び出しに通知せずにそれらを内部的に良いセクタにリマップするディスク・コントローラを介して接続されるディスクの場合などである。

0070

識別するステップ902では、ソース・パーティションで使用されているセクタが識別される。図4から図8および他で説明されたものを含む多くの場合に、記憶媒体上の空間がパーティションに割り付けられるが、これはパーティション内のファイル・システムが現在使用してはいない。このような状態で、実装するソフトウェアはファイル・システム・データ構造体を使用して、パーティション内のどのセクタが、ユーザ・データまたはシステム・データの保持に使用されているか、およびどれが使用されていないかを決定する。

0071

ファイル・システムはビットマップ、ファイル割り付けテーブル、および他の「割り付けマップ」データ構造体を使用して、どのセクタがどのファイルにより使用され、またどのセクタが空いているかを追跡する。空きセクタは、リストまたはテーブル内で明示的に識別できるか、またはパーティション境界内にあるが割り付けマップでは使用中として表示されていないということから暗黙的に識別できる。

0072

割り付けマップは、ファイル・システムがファイル空間を一度に1セクタずつ割り付けるときに、セクタ単位ベースで使用セクタを追跡するが、多数のファイル・システムが複数のセクタの連続するブロック、またはクラスタであるファイル・システム割り付け単位を使用する。クラスタ当りのバイト数(またはクラスタ当りの、512バイトのセクタの数の場合もある)が「クラスタ・サイズ」である。ここで使用されるように、「クラスタ」は一般にファイル割り付け単位を表すので、FATまたはNTFSファイル・システムに限定されるものではない。

0073

NTFSなどのある種のファイル・システムでは、すべての割り付け(常に割り付けられるブート・セクタおよびバックアップ・ブート・セクタを除く)が同じサイズのクラスタに実施される。FAT12およびFAT16などの他のファイル・システムでは、大きなシステム領域が確保され、ユーザ・データの格納が位置合わせされたクラスタに割り当てられ、またシステム領域境界はクラスタに位置合わせされているが、システム領域内の構造体(空のファイルの数が潜在的に多い割り付けテーブル・エントリなど)は、クラスタに位置合わせされていない。後者の場合、本発明ではクラスタ粒度ではなくセクタ粒度の割り付けマップが、少なくともシステム・セクタについて使用される。

0074

一般に、FATファイル・システムのファイル割り付けテーブル、NTFSのビットマップ、および他のファイル・システム構造体については、ベンダにより十分に文書化されているので、当分野の技術の1つでシステム構造体のコピーを検討することにより、どのファイルによりどのセクタが使用されているかを決定できる。したがって、識別するステップ902は、どのファイル・システムがソース・パーティションに存在するかを判別し、ファイル・システム構造体を見つけ出し、それらを読み取ってソース・パーティション内でどのセクタが使用中であるかを識別する。ユーザがオンザフライにファイルを削除するオプション、すなわち1つまたは複数のファイルを新しいパーティションにコピーしないオプションを与えられていない限り、特定のセクタを特定のファイルに結び付ける必要はない。

0075

判断するステップ904では、宛先の使用可能な空き空間のサイズが決定される。宛先の空き空間とは、現在使用可能な空間、潜在的に使用可能な空間、またはこれら2つの組み合わせである。現在使用可能な空間とは、新しいパーティションを保持するために十分なサイズの連続する空間であり、まだ何もパーティションが割り付けられていない。潜在的に使用可能な空き空間とは、パーティションの外側であるが連続していないもの、またはパーティションのファイル・システムが使用していないパーティション内部の空間である。潜在的に使用可能な空間を、現在使用可能な空間にするには、パーティションの移動またはサイズ変更が必要である。サイズ変更には、パーティション境界を移動する前のデフラグまたはコンパクションが含まれる。

0076

1つの実施形態では、判断するステップ904でディスクまたは他の記憶媒体が領域に分割される。領域のリストが実装するソフトウェアに単独で格納され、そのソフトウェアで内部的に使用される。領域境界が、既存のパーティションの縁部、およびディスクまたは他の媒体の物理的縁部で決められる。各領域には、関連付けられた空き空間のサイズおよび領域がパーティションに割り付けられるか否かを指示するラベルが付けられる。まだパーティションに割り付けられていない領域内の空き空間の量が、領域全体のサイズである。パーティションに割り付けられる領域内の空き空間の量は、ファイル・システムが使用しない空間の量であり、パーティションの最小サイズに関する制限を受ける。領域は順に格納でき、現在使用可能な最大の空間が先頭で、次いで他の現在使用可能な空間がサイズの大きい順に続き、その後潜在的に使用可能な空き空間の最大のもの、次いで他の潜在的に使用可能な空き空間がサイズの大きい順に続く。

0077

判断するステップ904は宛先のジオメトリも判断する。これにはソース・パーティションのジオメトリの発見に使用される技術と同様の技術を使用する。すなわちコントローラ・ハードウェアまたはオペレーティング・システムに問い合わせ、システム構成ファイルをチェックし、また(使用の容易さが減少するので、完全に最後の手段として)ユーザに問い合わせる。宛先のジオメトリがソースのものと異なる場合、セクタ・コピー操作において物理(シリンダ、トラック、セクタ)アドレスではなく論理セクタ・アドレスを使用することが可能である。ジオメトリが異なると、新しいパーティションがシリンダ境界上で終わるか、さもなければある種のFATパーティションに課された1024個のシリンダ制限などの、オペレーティング・システム制約満足するように、後ろに付く空き空間の削除または追加が必要となる場合がある。

0078

判断するステップ904は、選択されたおよび/または潜在的な空き空間領域のセクタが不良であるか否かも判断する。これは、ハードウェアに問い合わせる、またはファイル・システム構造体で構成され、ファイル・システムを含むパーティションが移動または削除されたときも維持されているリストをチェックして実施できる。またこれは、各セクタを書き込み操作でテストする、または書き込み後に検証のための読み取り操作でテストしても実施できる。これらの後者の手法は時間がきわめてかかるため、多くの場合任意選択性である。代替方法として、媒体が十分信頼できる場合は、不良セクタ・テストを省略できる。

0079

選択するステップ906では、実装ソフトウェアおよび/またはユーザは、パーティション・イメージ形成方法を選択する。この選択は、いくつかの決定を含む。どの空き空間領域を宛先とするか、ファイル削除、ファイル・デフラグ、パーティション移動、およびパーティション・サイズ変更を実行する場合は、どの組み合わせを使用して、ソース・パーティションより大きいまたは小さい空間に新しいパーティションを適合させるか、圧縮、暗号化、または他のユーザ・データ変形を実行する場合は、どの組み合わせをオンザフライに使用するか、他のどのシステム・データ操作をオンザフライに実行するか、およびどの保全性チェックを実行するかなどである。

0080

作成するステップ908では、ソース・パーティションからのデータを使用する処理を、新しいパーティションを作成するように誘導する変換マップが作成される。直接コピーの場合、ソース・パーティションのオフセットNのセクタは、常に新しいパーティションの同じオフセットNのセクタにコピーされるので、変換マップはあらゆるマッピングをリストに記載する必要はない。

0081

デフラグされるか、さもなければオンザフライにパッキングされる、図8その他のパーティション400などのパーティションの場合、宛先の空き空間の境界は、ソース・パーティションの境界のコピー上に重ね合わされる。重ね合わされた宛先の中に入るソース・パーティション・セクタは、直接コピーされる。直接コピーされた場合に宛先空き空間の外側に出るソース・パーティション・セクタは、宛先内のオフセットに置かれた非使用のセクタにマップされる。変換は、本来なら不良セクタにマップされるセクタもリマップする。

0082

セクタをコピーするステップ910では、セクタがソース・パーティションから空き空間にコピーされ、新しいパーティションが形成される。ユーザが特定のファイルを省略するように指定しない限り、ユーザ・データを含むすべてのセクタがコピーされる。省略が指定された場合、これらのファイルのセクタはコピーされない。システム・データを変更するオンザフライ操作が実行されていない限り、すべてのシステム・データ・セクタがコピーされる。たとえば、オンザフライのクラスタ・サイズ変更はFATファイル割り付けテーブルのクラスタ番号を変更し、またファイル・システム変換はシステム構造体を1つのファイル・システム・フォーマットから別のものに変更する。このような場合、操作の結果得られるファイル・システム構造体は、実装ソフトウェアにより処理され、ソース・パーティションの対応するファイル・システム構造体に代わって新しいパーティション内に配置される。

0083

更新するステップ912では、新しいパーティション、および、サイズ変更、削除、または新しいパーティション用の空き領域を作成する他の操作を含む、オンザフライになされた変更を示すように、パーティション・テーブルが更新される。パーティション・テーブル・フォーマットは周知のものであり、説明したパーティション・テーブル更新は、PartitionMagicプログラムおよび他の市販されているツールで実行される。わかっている不良セクタも、不良セクタ・リストまたは新しいパーティションで使用される他のファイル・システム構造体に入れられ、不良セクタが記録される。
オンザフライ縮小の例

0084

本発明の1つの実施形態では、次のように、イメージ形成中に制限されたパーティション縮小が可能である。通常、パーティションは左縁と右縁を有すると考えられ(いくつかのツールではこれらをユーザ・インターフェイスの中で上端および下端、またはこの逆として表す)、左縁は右縁より小さいアドレス(論理セクタ番号など)を有す。本発明の実装では、ソース・パーティション内で使用されているファイル・システム・タイプが判断され、次いで最右端のファイル・システム構造体、たとえばFATテーブル、NTFSマスタ・ファイル・テーブル、または他のファイル・システム構造体の最右端境界が識別される。ターゲット・パーティション用に使用可能な空間が、ソース・パーティションの左縁からこの最右端のファイル・システム構造体の境界までの距離より小さい場合、ユーザはパーティションが適合するように縮小できず、イメージ形成が実行されないことを通知される。すなわち、ファイル・システム構造体を再配置する試みは実施されない。この手法は、ある種の適合のための縮小機能を備えながら、実装の複雑さを軽減する。

0085

さらに複雑な実装では、必要に応じてファイル・システム構造体を再配置し、現在のソース・パーティション内でファイル・システム(システム・データおよびユーザ・データ)により使用されている空間がターゲットの空き空間内に適合しないときのみ、図3の状態でのイメージ形成の試みを拒否する。NTFSなどのある種のファイル・システムでは、ファイル・システム構造体はシステム・ファイル内に配置されるので、それらの再配置にはシステム・ファイルの再配置が含まれる。この手法の変形形態では、システム構造体の再配置によってもターゲットの空き空間が小さすぎるときにユーザに通知し、ユーザにイメージ形成処理から省く(選択されたファイルのオンザフライの削除)ファイルを識別するオプションを与える。

0086

別の例では、クラスタがサイズ変更された場合にターゲットの空き空間が十分大きくなるか否かを判断する。すなわち、使用可能な空間がすべての使用クラスタを保持しないが、すべての使用セクタを保持し、クラスタ・サイズ変更が意図されたターゲット・パーティション・サイズ(ファイル・システム・ソフトウェアは、通常所定のパーティション・サイズについて特定のクラスタ・サイズのみを予想、または受け入れる)と互換性があるという、めったに発生しないが識別できる状態がある。この例は、データを使用可能な空き空間に適合させる方法が唯一オンザフライによるクラスタ・サイズ変更である場合、これを実行する。
ビットマップおよび「上昇シーク」に関する注釈

0087

ファイル単位のイメージ形成ツールに関する本発明の重要な利点の1つは、ディスク・ヘッド移動の減少およびそれに起因する速度の増加である。本発明の1つの手法は、使用セクタのビットマップまたは他の割り付けマップの取得から始まる。割り付けマップでは、使用可能な空き空間サイズと使用セクタの総計サイズとを比較でき、イメージ形成中のサイズ変更、イメージ形成中の削除、および/またはイメージ形成中のクラスタ・サイズ変更が必要か否かを決定する。割り付けマップはまた、コピーしなければならないセクタ(ファイル・システムが使用するセクタ)、および効率性または利便性の理由によりコピーできるが、ユーザ・データ(非使用セクタ)を保存するためにコピーする必要はないセクタを識別する。

0088

NTFSビットマップなどの割り付けマップは、少なくともどのクラスタが使用するために割り付けられているかを示すことにより、パーティションの割り付け状態を表す。また割り付けマップは、ファイル・システムまたはユーザのいずれが使用するのかを示す。FATファイル割り付けテーブル、および開始位置と割り付けられたクラスタの実行の長さを指定する実行マップは、割り付けマップの他の2例である。

0089

本発明に従って使用する割り付けマップ用のコードは、ファイル・システムにより異なる。たとえば、NTFSファイル・システムが含むビットマップは、本発明の実装に単に渡すだけでよいが、FATファイル・システムのためには、FATファイル割り付けテーブルから(直接的な方法で)ビットマップを構築しなければならない。

0090

状態が図4に示すような場合、または図6に示すような場合でも、多くの場合システム構造体は再配置する必要がない。実装はここでソース・パーティションを通る1つのパスを作成し、使用セクタを読み取ってこれを中間ファイルまたはターゲット・パーティションにコピーする。使用セクタが中間ファイルにコピーされる場合、それらは一緒にパッキングされる。使用セクタが別のディスク上のターゲットの空き空間にコピーされる場合、それらはソース・パーティション内と同じオフセットにそのまま直接コピーされる。セクタ単位のコピーは、ファイル単位のコピーよりずっと迅速である。なぜなら、ディスク・ヘッドはディレクトリに戻ったり、ファイル断片の間や1つのファイルの終端からいくらか離れた次のファイルの先頭まで移動したりするためにジャンプする必要がないからである。この代わりに、ヘッドはいわゆる「上昇シーク」を実行する。ディスク(または他の記憶媒体)を通る「パス」は、1つまたは複数のアクセスの左から右(または右から左)のシーケンス、または昇順(または降順)のセクタ・アドレスの順に実行される(不良セクタを避けるためのコントローラ・リマップを除く)アクセスのシーケンスである。

0091

1つの実装では、データ読み取りのいくつかが必要ない場合でも連続読み取りを実行することにより、イメージ形成の速度を上げる。これは、所望のデータをディスク・ヘッドの下(または上)まで運ぶディスク回転を待つ時間を短縮する。ビットマップまたは他の割り付けマップが検索され、連続する使用セクタの「実行」が識別される。第1のバッファがディスクからのデータの第1の読み取りを受信する。この第1のバッファは、非使用セクタが実行の間にあり、実行とそこに介在する非使用セクタが共にバッファ内に適合する場合、非使用セクタと使用セクタを保持できる。次いで使用セクタのみが第2のバッファにコピーされ、これがパッキングされた中間ファイルに書き込まれる。多くの場合、第1の実行を読み取り、ディスク回転を待ち、次の実行を読み取るというように進めるより、2つの(またはそれ以上の)実行を連続的に読み取ることができるように非使用の介在セクタも読み込むほうがより速くなる。同様に、ターゲットが別のディスクであり、コピーが中間ファイルではなく別のパーティションに直接実行される場合は、使用セクタだけ書き込むより、第1のバッファ(第2のバッファは不要)から非使用データを書き込む方が速くなる。もちろん、先のバッファへの埋め込みの最後の実行と次の実行との間の非使用セクタは、現行の埋め込みでバッファの先頭に配置されるが、読み取りまたは書き込みは不要である。

0092

状態が図6に示すような場合、次いで実装はソース・パーティションを通る1つのパスとターゲット・パーティションを通る2つのパスを作成する。直接コピーがターゲット・パーティションの外側に使用セクタを配置するオフセットの個所に、ソースを通るパスが到達するまで、直接コピーが実行される。これは、ターゲット・パーティションを通る第1のパスの最後の印を付ける。ターゲットを通る第2の部分的パスの間、ソース内の残りの使用セクタが次いでターゲット内の使用セクタの間の空き空間にコピーされる。これは、図8に示すような状態である。部分的第2のパスは、ターゲット・パーティション全体を移動する必要はない。その代わりに、1つの実施形態では、最左端の空き空間から始まり、最後に再配置された使用セクタ(ブロック406内のセクタなど)がターゲットの空き空間に入れられたときに終了する。次いで、FATまたは他のファイル・システム構造体をこのような再配置されたセクタの個々のオフセットで更新するために、追加のヘッド移動が必要となる。ただし、これでもほとんどの場合、必要なヘッド移動はファイル単位のコピーより十分少ない。

0093

別の実装は、2つの割り付けマップをファイルシステムに依存するコードから取得する。1つの割り付けマップは、上記のように使用セクタを識別する。第2の割り付けマップは、ユーザ・データ・セクタとは対照的に、システム・データ・セクタを識別する。システム・データ・セクタ(「システム・セクタ」とも呼ばれる)とは、たとえばFATファイル割り付けテーブル、NTFSマスタ・ファイル・テーブル、HPFSビットマップ、各種のファイル・システムのブート・セクタなどのファイル・システム・データに割り付けられたセクタである。ユーザ・データ・セクタとは、オペレーティング・システムとそのファイル、アプリケーション・プログラムとそのデータ、グラフィック・イメージ、およびファイル・システムに要求されない他のデータを保持するために割り付けられたセクタである。代替実施形態に従うと、第1の割り付けマップはユーザ・データに割り付けられたクラスタを識別し、第2のマップはファイル・システム・クラスタを識別する。割り付けマップは、不良クラスタ、空きクラスタ、および/またはファイル・システムの外側にあるにも関わらずパーティションの内部にあるクラスタも識別する。

0094

いずれにせよ、ソース・パーティションを通る第1のパスでは、使用システム・セクタは直接ターゲットにコピーされるのではなく、メモリに格納される。メモリ内のファイル・システム構造体が、次いで必要に応じて使用データ・セクタ再配置、クラスタ・サイズ変更、デフラグ、または他のオンザフライ操作を反映するように調整される。

0095

ファイル・システムが、FATファイル・システムのように周知の位置に連続するグループ内のシステム構造体で編成される場合、次いでシステム構造体をメモリに読み取るには、要求されるヘッド移動が非常に小さく、変更されたファイル・システム構造体およびユーザ・データはきわめて少ないパスでターゲット媒体上に配置できる。ファイル・システム構造体が分散されている場合は、それらを識別してシステム構造体割り付けマップを構築するためにいくらかのヘッド移動が必要であるが、いったんそれらの位置がわかると、ソース・パーティションを通る1つのパスでメモリに読み取ることができる。次いでそれらは必要に応じて、イメージ形成中に実行されたパーティション操作を反映するようにメモリで変更される。

0096

第2のパスは、ソース・パーティションからユーザ・データ・セクタを読み取る。使用可能なメモリ、使用されるファイル・システム、およびオンザフライに実行されるパーティション操作により、ターゲットを通る1つまたは2つのパスが、変更されたシステム構造体とユーザ・データをすべて配置することが多い。たとえば、すべてのシステム構造体が同時にメモリに常駐し、パーティション操作がクラスタ・サイズ縮小またはパーティション・サイズ変更であり、この操作でユーザ・データ・クラスタの相対的順序が変更しない場合、いくつかのデータの相対的位置が変更された場合でも、変更されたシステム構造体およびユーザ・データは単一パスで配置できる。

0097

対照的に、クラスタ・サイズがオンザフライに増加され、データ・セクタの相対的順序が変更するようにセクタの移動が必要であると想定する。このような場合、ターゲットを通るパスがさらに必要である。ただし、ソースからのユーザ・データを受け取る読み取りバッファの内容を操作することにより、ある種の相対的順序の移動がオンザフライに実行できることに注意されたい。

0098

すべてのユーザ・ファイルがデフラグ状態でイメージ・ファイルに格納され、どのユーザ・ファイルも他のユーザ・ファイルに対して相対的に再シーケンス化されない場合(たとえいくつかのファイルが削除されても)、クラスタ・サイズが変更されたか否かに関わらず、変更されたシステム構造体およびユーザ・データは単一パスで配置できる。

0099

1つの実施形態は、ターゲットを通る3つのパスを作成する。1つは、そのまま直接コピーできるユーザ・データ・セクタを配置し、第2の部分的パスは空き空間に入れられる再配置されたユーザ・データ・セクタを配置し、また第3のパスはセクタ再配置および他の操作を反映する変更されたファイル・システム構造体を配置する。ターゲットを通るパスが3つ必要な場合でも、本発明に従ったオンザフライ操作を使用すると、従来の手法よりより高速かつ/またはより柔軟であることが多い。
イメージ・ファイル

0100

オンザフライによるサイズ変更は、ファイルシステムが認識するパーティションをターゲット上に直ちに作成する方法で、ソースからターゲットにコピーしているときに実行できるが、中間ファイル(「イメージ・ファイル」)が作成されるときも実行できる。イメージ・ファイルはアーカイブされ、破壊的なシステム障害イベント時にコンピュータ・システムの状態を容易に回復できること(「システム回復」)の保証として以外は使用されない。代替方法として、新しいシステムの編成にイメージ・ファイルを使用できる。イメージ・ファイルを使用したシステム回復の場合、ソース・ディスクとターゲット・ディスクは、時には同じものであり、また中間ファイルが通常必要である。日常的なシステムの初期化および編成の場合は、ターゲットは更新されたシステム内のディスクか、または相手先商標による製造会社付加価値販売業者、システム・コンサルタント、IS部門要員、または同様のエンティティが使用するために最初に用意された、新しいまたは改造されたシステム内のディスクである。

0101

図10および図11は、本発明に従った使用に適したイメージ・ファイル・フォーマットを示す。図10は、ヘッダ1002、ビットマップ1004、および存在しないかまたは1つ以上のデータ・セクタ1006の集合を含むイメージ・ファイル1000を示す。ヘッダ1002は、パーティション・サイズ、クラスタ・サイズ、およびファイル・システム・タイプなどのパーティション情報を含む。この情報により、本発明の実施形態はターゲット・ディスク上でパーティション・テーブルの作成または更新が可能である。ヘッダ1002はタイムスタンプ、ユーザ名、およびイメージ・ファイル1000自体の作成または変更に関する他の情報も含む。最後に、ヘッダ1002は、暗号キートークン、またはイメージ・ファイル1000の内容へのアクセスの制限に使用される他のアクセス制御情報も含む。

0102

ビットマップ1004は、ビットマップ、実行マップ、リスト、または他の割り付けマップである。これは、ソース・パーティションのどのセクタが使用されるかを示す。これは、データ・セクタ1006をターゲットにコピーするときに、それらを正しい相対位置に復元するために必要である。図示するビットマップ1004は、システム・セクタとユーザ・セクタとの区別をせず、またセクタの2つのタイプは、ソース・パーティション内のそれらの配置に従い、データ部分1006に混合配置される。図10に示すフォーマットのイメージ・ファイル1000は市販用に使用されてきたが、発明者の知る範囲では、ここで説明し特許請求する仮想サイズ変更および他のオンザフライ操作と関連して使用されることは以前はなかった。

0103

対照的に、図11に示すイメージ・ファイル1100のフォーマットは、オンザフライにサイズ変更を容易にするために、ユーザとシステムのセクタ(またはクラスタ)を区別する点が新しい。ヘッダ1102は、ヘッダ1002と同じ情報を含み、ビットマップが1つではなく2つ存在することを示すフラグまたはバージョン番号または他の指示を備える。これは、代わりにイメージ・ファイル名前付け規則により示すこともできる。

0104

2つのビットマップまたは他の割り付けマップは、好ましくは図11に示す順に配置され、どのセクタまたはクラスタがファイル・システム構造体に割り付けられるかを示すシステム・ビットマップ1104が、使用セクタまたはクラスタの残りを示すユーザ・ビットマップ1106の前に置かれる。同様に、好ましくはファイル・システム・データのコピー1108がユーザ・データのコピー1110の前に置かれる。この順序は、特にイメージ・ファイル1100が磁気テープなどの線形媒体またはリムーバブル・ディスクの順序付けられたシーケンスなどの準線形媒体上に格納されるときに、オンザフライのシステム構造体の操作を支援する。
イメージ・ファイルからの選択的復元

0105

図11に示す二重割り付けマップ・フォーマットの有益な使用方法の1つは、パーティション内のどのファイルをイメージ・ファイル1100から復元またはコピーするかを指定するイメージ編集である。1つの方法は、図12に示すように進行する。

0106

システム情報を読み取るステップ1200では、イメージ編集ソフトウェアがヘッダ1102、システム・ビットマップ1104、ユーザ・ビットマップ1106、およびシステム・データ1108をメモリに読み取る。これによって、グラフカル・ユーザ・インターフェイスまたは他の周知のインターフェイスを用いたステップ1202において、ユーザにファイルのリストを提示する十分な情報が提供される。メモリでオンザフライに操作されるシステム・データは、ディスク・パーティションからのすべてのシステム・データのビット状態のコピー、またはすべてのデータが必要ではない場合は、ディスク・パーティションからの選択されたシステム・データのビット状態のコピーである。

0107

代替方法として、メモリ内のシステム・データはビット状態のコピーではなく、代わりにディスク上の構造体とは異なる形態であり、同じ情報または同じ情報の一部を含むが、それらの情報を従来のファイル・システム・ソフトウェアでは認識されない構造体に編成したものである。適切な代替形態は、所定のクラスタを迅速に探し出すのに便利なようにクラスタを並べるものであるが、参照により本発明書の一部となる、共通に所有される同時係属の1998年7月27日提出、米国特許出願第60/094,327号に記述される。

0108

取得するステップ1204では、ソフトウェアがユーザから、復元するファイルのリストまたは他の指定を取得する。これは、ユーザにファイルを明示的に指定させるか、またはユーザにどのファイルを復元しないかを指定させて実行できる。指定は、個々のファイルに関して、もしくはディレクトリまたはディレクトリ・サブツリーに関して取得できる。取得するステップ1204は、キーワード検索、ファイル名のワイルドカード、および他の周知のファイル・システム・インターフェイス技術をサポートする実行コードを含む。

0109

決定するステップ1206では、メモリ内のファイル・システム構造体を参照し、イメージ・ファイル1100から復元する必要のあるクラスタまたはセクタを決定する。参照されるファイル・システム構造体は、ファイル・システム・ドライバの技術分野の当事者に周知の方法でディスクからメモリに読み取られるか、またはイメージ・ファイル1100の(一般に連続する)セクタから類似の方法で読み取られる。復元されるクラスタまたはセクタ番号が順にソートされる。復元ビットマップが作成され、ユーザ・データ1110の当該の相対位置にあるクラスタをターゲット・ディスクにコピーすべき場合のみ、ビットオンになる。

0110

ユーザ・データを復元するステップ1208では、選択されたファイルに属するクラスタが、イメージ・ファイル1110からターゲット・ディスクにコピーされる。イメージ・ファイル・データ1110を通る1つのパスだけを作成する必要がある。なぜなら、必要なクラスタは以前のステップで識別され、順に並べられており、またユーザ・データ・セクタはイメージ・ファイル1100に順に格納されているためである。これは、イメージ・ファイル1100が複数のリムーバル媒体に格納されている場合、ユーザが第1のリムーバル・ディスクを装着し、次いで第2のリムーバル・ディスクを装着し、次いで第1のリムーバル・ディスクを戻して装着するというように進める必要性を除去するため、特に有益である。

0111

最後にステップ1210で、対応するパーティション情報およびファイル・システム情報がターゲットに格納される。ファイル・システム情報は、イメージ・ファイル1100内の情報1108の一部であり、すべてのファイルまたはディレクトリがコピーされたわけではないことを反映する。パーティション情報は、ヘッダ1102に格納されたパーティション情報と同じである。代替方法として、パーティションはオンザフライにサイズ変更され、小さいファイルの存在を反映してサイズを縮小するか、または本来はターゲット・パーティション内のファイル・システムが直ちに使用できない、ターゲット上の使用可能な空き空間に対応してサイズを増大させる。いずれにせよ、必要な情報はイメージ・ファイル1100の中にあり、また好ましくはステップ1200の結果としてメモリ内にもある。

0112

1つの実施形態では、ソース・パーティション・ファイル・システム構造体はイメージ・ファイル1100または物理的にターゲットとは区別される他のソースからも、およびターゲット上にパーティションを配置する前のターゲットからも読み取られる。ソース・ファイル・システム構造体からの情報は、ターゲットの以前の内容に単に上書きするのではなく、ターゲット構造体マージされる。同様に、ユーザ・データはターゲット上の完全に新しいパーティションに配置されるのではなく、既存のパーティションにマージできる。2つの位置からのユーザ・データおよび/またはシステム・データのオンザフライのマージにより、本発明の実施形態がバックアップとして使用されているイメージ・ファイルからの選択的ファイル復元などの操作をサポートすることが可能になる。個々のファイルを既存のファイル・システムにマージする適切なマージ技術は、従来のファイル・システム・ドライバで使用される技術を利用する。

0113

イメージ・ファイルからの復元中の他の操作

0114

図11に示す二重割り付けマップ・フォーマットの他の有益な使用方法も、図13に示すように可能である。ステップ1200と同様またはまったく同じ、システム情報を読み取るステップ1300では、本発明を実施するシステムがヘッダ1102、システム・ビットマップ1104、ユーザ・ビットマップ1106、およびシステム・データ1108をコンピュータ・メモリ(RAM)に読み取る。

0115

実行するステップ1302では、ソフトウェアが選択されたファイルについてシステム情報の1つまたは複数のオンザフライ操作をメモリで実行する。パーティション全体またはファイルの特定の部分が操作のために選択される。適切な操作のステップは、セクタ・カウント(またはクラスタ・カウント)を変更し、それによって選択されたパーティション内のファイル・システムのサイズを変更する、パーティション・サイズ変更・ステップ1304、クラスタ・サイズを変更するパーティション・サイズ変更・ステップ1306、ファイル・デフラグ・ステップ1308、クラスタ・パッキング・ステップ1310、ファイル内の少なくとも1つのセクタを再配置する、またはバックアップ・ブート・セクタなどのシステム・セクタを再配置するファイル・再配置・ステップ1312、一貫性および保全性検証ステップ1314、および選択的ファイル削除または復元ステップ1316を含む。

0116

これらのステップ1304からステップ1316の各々は、少なくともある種の形態で周知の技術である。たとえば、PowerQuest PartitionMagic(登録商標)プログラムはセクタ・カウントの変更および/またはクラスタ・サイズの変更を行うパーティション・サイズ変更を実行し、またクラスタ・パッキングも実行する。ただし、これらの操作はディスクのイメージ形成のコンテキストの中で実行するのではない。代わりに、PartitonMagic(登録商標)プログラムは一度に1つのパーティションを操作する。ファイル・デフラグ・プログラムおよびファイル・システム変換プログラムも周知の技術である。ChkDsk、ScanDisk、PartitionMagic(登録商標)プログラム、および他の周知のツールが、検証するステップ1314に適切な一貫性および保全性の検証を実行する。ただし、本発明に従って、検証するステップ1314および他のステップは、システム構造体のメモリに常駐するコピーを使用して実行されることに注意されたい。ファイル削除およびファイル・コピーまたは復元は、従来のシステムおよび方法により様々なやり方で実行される。ファイル再配置は、たとえばHPFSパーティションがサイズ変更され、中央ディレクトリ帯がより大きなまたはより小さなパーティションの新しい中央に移動したときに発生する。

0117

ただし、これらの操作のすでに周知の実施形態では、関係するファイル構造体はすでにメモリ常駐であるか、またはイメージ・ファイル1100にパッキングされていると想定していない。さらに、以前の手法はこれらのステップを、イメージ形成中のオンザフライ操作の一部とするのではなく、ディスク・イメージ形成と独立した個別の順次ステップとして使用する。ステップ1304からステップ1316は、ユーザにはイメージ形成および他のステップが単一の操作のように見えるという点からも、また統合されたステップで以前の手法よりもデータ移動が少なくて済むという点からも、本発明のディスク・イメージ形成にしっかり統合される。

0118

ユーザ・データを復元するステップ1318では、選択されたファイルに属するクラスタが、イメージ・ファイル1100からターゲット・ディスクにコピーされる。イメージ・ファイル・データ1110を通る1つのパスだけを作成する必要がある。なぜなら、以前のステップで必要なクラスタは識別され、順に並んでいるからである。最後に対応するパーティションおよび操作されたファイル・システム情報が、ステップ1320でターゲットに格納される。
その他の実装のヒント

0119

本発明の様々な実装に関連して記述すべき、いくつかの他の注意点がある。

0120

使用セクタのビットマップ、およびシステム・セクタのビットマップ(システム・ビットマップが存在する場合)は、イメージ・ファイルの最前部近くに格納すると都合がよい。最後の(最右端)使用セクタのオフセット、および最後のファイル・システム構造体セクタのオフセットも、イメージ・ファイルの最前部近くに格納する。

0121

イメージ・ファイルがターゲット・パーティションの多数のコピーの作成に使用される場合、パーティション操作は、イメージ・ファイルからターゲットの段階の間複数回実行するのではなく、ソースからイメージ・ファイルへの段階において一度だけ実行するのが最適である。

0122

使用セクタはイメージ・ファイルにパッキングできるので、必ずしもファイル・システム構造体で示されたオフセットにある必要はない。それらは、ターゲットにコピーされるときにパッキング解除される。

0123

ディスク・ジオメトリ制約は、無視するか、またはイメージ・ファイルで対処できる。イメージ・ファイルはシリンダ境界で終わる必要はない。イメージ・ファイルはZipディスク(ZipはIomega Corp.の商標である)などのリムーバル・ディスク上に格納されたときなど、複数のディスクに渡ることができる。

0124

転送速度と、ユーザ・インターフェイス内の更新の円滑な進行との間の平衡を取るときに、兼ね合いが必要である。一般にバッファが大きいと転送速度が速くなるが、またこれでは、バッファが一杯になったとき、メモリ内の操作が完了したとき、またはオンザフライ操作における他の標識的段階にきたときにのみ進行中であることがユーザに通知される場合、ユーザに対する通知の回数が減少する。

0125

パーティションは、データ破壊または消失を防ぐために、本来ならばオンザフライ操作において得られるアクセスからロックまたは除外されるべきである。

0126

ファイル・システムを調整するときに、PartitionMagicプログラムおよびその他のツールが守るべき意味論的制約は、オンザフライ操作ツールによっても一般的に守られるべきである。たとえば、FATファイル・クラスタ境界を考慮するべきである。

0127

セクタ、バイト、クラスタ、または他のコピーされる単位のカウントを、システム・クロックの呼び出しと関連して保持することにより、転送速度が監視できる。

0128

ターゲット・パーティションが作成された後で、新しいパーティションがDOSおよびWindowsオペレーティング・システムで有効なドライブ文字を受け取れるように、リブートする必要がある。HPFSの「ダーティ・フラグ」およびWindowsNTのドライブ文字指定状態などの、他のファイル・システムまたはオペレーティング・システムの特性を守るべきである。
代替実施形態についてのいくつかの注意

0129

本発明の範囲にある製品は、コンピュータが読み取り可能な記憶媒体の回路基板の特定の物理構成と組み合わせた、コンピュータが読み取り可能な記憶媒体を含む。基板構成は、この明細書で説明された特定の事前定義された方法でコンピュータを動作させるデータおよび命令を表す。適切な記憶デバイスは、フロッピー・ディスク、ハード・ディスク、テープ、CD−ROM、RAM、および1つまたは複数のコンピュータが読み取り可能な他の媒体を含む。このような各媒体は、マシンによりこの明細書で説明されたように実質的に実行可能なプログラム、関数、および/または命令を明確に実施する。

0130

説明を容易にするために、方法のステップは特許請求された方法のいくつかで省略されている場合でも、図中に示されている。実施においては、この詳細な説明の中でステップが任意選択として明示的に記述されているか否かに関わらず、関連する請求項目の中で要求されない限り、ステップは省略できる。

0131

同様に、1つのステップの結果が別のステップで要求されるときを除き、他の順序または同時に実行できる場合でも、ステップは特定の順序で図示される。たとえば、ソースおよび宛先に関する情報は、一般に図示された順序で、反対の順序で、またはオーバラップする(同時の)方法で取得できる。同様に、ステップ1304からステップ1306は、様々な順序と組み合わせで実行できる。

0132

またステップは、繰り返しが明示されていない場合でも、繰り返すことができる。たとえば、複数コピーは、コピーするステップ910を繰り返すことにより作成でき、また検証するステップ1314は、図示された他のステップのいくつか、または個々のステップの前後に実行できる。

0133

さらに、1つのステップに関連してなされた説明が他のステップにも関連するので、説明を明示的に繰り返すことが不要であることを、当業者は理解されるであろう。たとえば、不良セクタは、様々な特許請求された方法の中で、ステップ900、904、912、1306、1308、1310、1312、および1318に関係しないか、またはこのいくつかに関係する。

0134

ステップは、別の名前をつけることができる。最後に、方法ステップに関する上記の注意点に類似する注意点が、システムまたは記憶媒体の特許請求項目の要素に適用される。

0135

この明細書の中で、本発明を実施する特定の方法を明確に図示し説明したが、本発明の方法に従って装置および製品の実施形態を形成できることが理解されるであろう。したがって、特に明示的に示さない限り、ここに記載された本発明の方法の説明は、対応する装置および製品に拡張され、本発明の装置および製品の説明は、同様に対応する方法に拡張する。特に記述のない限り、含まれる項目のリストは例として示すものであり、他の項目を除外するものではない。「含む」とは、「からなる」ではなく「備える」を意味する。「FAT」は、FAT12、FAT16、FAT32、FAT32X、およびそれらの派生的ファイル・システムである。

0136

本発明は、その本質的な特性から逸脱せずに、他の特定の形態において実施できる。説明された実施形態は、すべての点において説明するものにすぎず、制限するものではないと見なされる。本発明で使用される特定の原理のここでなされた説明は、説明のためにすぎない。したがって、本発明の範囲は、前述の説明ではなく、添付の特許請求の範囲により示される。特許請求の範囲と同等な意味および範囲に入るすべての変更が、範囲の中に包含される。

0137

特許請求され、特許により保護されることが望ましいものは、次のとおりである。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ