(57)【特許請求の範囲】
【請求項１】
格納デバイスおよびコンピュータのオペレーティングシステムと通信するアプリケーションプログラムを実行する手段と、
該アプリケーションプログラムおよび該オペレーティングシステムおよび該格納デバイスと通信するデバイスドライバを実行する手段と
を備えたイメージレスキューシステムであって、
該アプリケーションプログラムを実行することにより、
該オペレーティングシステムをバイパスすることによって、該オペレーティングシステムに対してアクセス可能な情報と該オペレーティングシステムに対してアクセス不可能な情報とにアクセスすることであって、該情報は、該格納デバイスに格納されている、ことと、
該格納デバイスのデバイス特性に基づいて、該格納デバイスから読み出すことができる、または、該格納デバイスに書き込むことができる該情報の最小の単位を示す第１のブロックサイズを決定することと、
該オペレーティングシステムのフォーマット化情報に基づいて、該オペレーティングシステムが該格納デバイス上のファイルデータにアクセスするであろう最小のデータブロックを示す第２のブロックサイズを決定することであって、該フォーマット化情報は、該格納デバイスに格納されている、ことと、
該格納デバイスのサーチアロケーション単位を識別することであって、各サーチアロケーション単位は、ブロック群を表しており、該ブロック群の各ブロックは、該第１のブロックサイズおよび該第２のブロックサイズのうちの大きい方に等しいブロックサイズを有する、ことと、
該サーチアロケーション単位の境界においてのみヘッダ情報をサーチすることと
を該コンピュータに実行させる、イメージレスキューシステム。
【請求項２】
前記アプリケーションプログラムは、情報を読み書きするために前記オペレーティングシステムによって制御され、該アプリケーションプログラムは、該オペレーティングシステム内の論理デバイスレベルで該格納デバイスにアクセスすることを前記コンピュータに実行させる、請求項１に記載のイメージレスキューシステム。
【請求項３】
前記格納デバイスは、コンパクトフラッシュ（登録商標）カードである、請求項１に記載のイメージレスキューシステム。
【請求項４】
前記デバイスドライバは、前記アプリケーションプログラムが前記オペレーティングシステムを回避することによって該デバイスドライバに直接にアクセスすることを可能にするためのアクセスインタフェースを含む、請求項１に記載のイメージレスキューシステム。
【請求項５】
前記アプリケーションプログラムは、前記オペレーティングシステムを回避することによって前記格納デバイスに物理デバイスレベルで直接にアクセスすることを前記コンピュータに実行させる、請求項１に記載のイメージレスキューシステム。
【請求項６】
前記アクセスインタフェースは、前記オペレーティングシステムに対して透過性であり、該オペレーティングシステムは、前記デバイスドライバと相互作用する、請求項４に記載のイメージレスキューシステム。
【請求項７】
前記アプリケーションプログラムは、前記アクセスインタフェースに含まれる関数およびプロシージャを呼び出し、該関数およびプロシージャは、該アプリケーションプログラムが標準およびベンダー特定の命令を用いて前記格納デバイスに命令することを可能にする、請求項６に記載のイメージレスキューシステム。
【請求項８】
前記アクセスインタフェースにおける前記関数およびプロシージャは、前記アプリケーションプログラムが前記オペレーティングシステムに対してアクセス不可能な前記格納デバイス内の情報およびデータ位置にアクセスすることを前記コンピュータに実行させることを可能にする、請求項７に記載のイメージレスキューシステム。
【請求項９】
前記イメージレスキューシステムは、パーソナルコンピュータ（ＰＣ）内に含まれ、該イメージレスキューシステムは、ユニバーサルシリアルバス（ＵＳＢ）を介して前記格納デバイスと通信する、請求項１に記載のイメージレスキューシステム。
【請求項１０】
前記アプリケーションプログラムは、前記格納デバイスにおいてサーチされたヘッダ情報を用いて、データファイルをサーチし、回復する、請求項１に記載のイメージレスキューシステム。
【請求項１１】
前記サーチされたヘッダ情報は、タグ画像ファイルフォーマット（ＴＩＦＦ）ファイルに対応するデータパターンを含む、請求項１０に記載のイメージレスキューシステム。
【請求項１２】
前記アプリケーションプログラムは、前記格納デバイスをクエリすることを前記コンピュータに実行させて該格納デバイスの絶対サイズおよび該格納デバイスの前記第１のブロックサイズを決定する、請求項１に記載のイメージレスキューシステム。
【請求項１３】
前記アプリケーションプログラムは、前記格納デバイスにおけるオペレーティングシステムフォーマット化情報を読み出すことを前記コンピュータに実行させ、該アプリケーションプログラムは、前記オペレーティングシステムにしたがって該オペレーティングシステムフォーマット化情報を解釈することを該コンピュータに実行させる、請求項１に記載のイメージレスキューシステム。
【請求項１４】
前記アプリケーションプログラムは、前記オペレーティングシステムフォーマット化情報に含まれる特定パラメータの値を調べることによって該オペレーティングシステムフォーマット化情報の有効性を決定することを前記コンピュータにさせる、請求項１３に記載のイメージレスキューシステム。
【請求項１５】
アプリケーションプログラムを実行する手段と格納デバイスとコンピュータのオペレーティングシステムとを含むイメージレスキューシステムにおいて情報にアクセスする方法であって、
該方法は、
該格納デバイスのデバイス特性に基づいて、該格納デバイスから読み出すことができる、または、該格納デバイスに書き込むことができる情報の最小の単位を示す第１のブロックサイズを決定することを該コンピュータに実行させることと、
該オペレーティングシステムのフォーマット化情報に基づいて、該オペレーティングシステムが該格納デバイス上のファイルデータにアクセスするであろう最小のデータブロックを示す第２のブロックサイズを決定することを該コンピュータに実行させることであって、該フォーマット化情報は、該格納デバイスに格納されている、ことと、
該格納デバイスのサーチアロケーション単位を識別することを該コンピュータに実行させることであって、各サーチアロケーション単位は、ブロック群を表しており、該ブロック群の各ブロックは、該第１のブロックサイズおよび該第２のブロックサイズのうちの大きい方に等しいブロックサイズを有する、ことと、
該サーチアロケーション単位の境界においてのみヘッダ情報をサーチすることを該コンピュータに実行させることと
を包含する、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（先願の参照）
本願は、２００２年２月２２日に「ＩＭＡＧＥ  ＲＥＳＣＵＥ」という名称で出願された米国仮出願第６０／３５９，５１０号の優先権を主張している。
【０００２】
（発明の分野）
本発明は、概して、情報の取り出しおよび回復（リカバリ）の分野に関し、より詳細には、オペレーティングシステムに対してアクセス可能であるか、またはアクセス不可能である大容量格納デバイスに格納された情報の迅速かつ効率的な取り出しおよび回復に関する。
【背景技術】
【０００３】
（従来技術の説明）
現行の電子システムにおいて、デジタル情報の格納、取り出しおよび回復は、このようなシステムに含まれるデバイスの動作において大きな役割を占めている。電子システムの一般的な例は、デジタルデータを処理して、幅広い種類のタスクを行い実行するためにそのデジタルデータへのアクセスを必要とするパーソナルコンピュータ（ＰＣ）である。デジタルデータは、ＰＣの内部、ハードディスクの中に、または、ＰＣの外部、デジタルフォトリーダまたはコンパクトフラッシュ（Ｒ）リーダデバイスのような大容量格納データデバイスの中に、格納され得る。
【０００４】
デジタルデータにアクセスする従来の方法において、電子システムにおいて実行されるように、標準的な市販のオペレーティングシステムのもとで動作するアプリケーションプログラムは、デジタルデータを読み出し、かつ／または書き込むため、大容量格納データデバイスにアクセスする。オペレーティングシステムは、大容量格納データデバイスを認識し、オペレーティングシステムデータ容量、すなわち、「ディスクドライブ」として、それを「マウント」する。そのことによって、アプリケーションプログラムは、オペレーティングシステム内の論理レベルで、大容量格納データデバイス内に含まれるオペレーティングシステムフォーマット化情報を用いて大容量格納データデバイスにアクセスする。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、デジタルデータにアクセスする従来の方法には、大容量格納データデバイスが何らかの理由で壊れる場合に生じる限界がある。大容量格納データデバイスが壊れた場合、オペレーティングシステムは大容量格納データデバイスと通信することができないので、電子システムは、デジタルデータを単純に回復することができない。デジタルデータにアクセスする従来の方法の他の限界は、アプリケーションプログラムは、オペレーティングシステムにとって利用可能な標準コマンドのみで大容量格納データデバイスに命令する点である。
【０００６】
上記の点を考慮すると、大容量格納データデバイスが壊れ、オペレーティングシステムが大容量格納データデバイスと通信できない場合でもデジタルデータにアクセスする方法および装置を開発することが望まれる。さらに、その方法および装置は、オペレーティングシステムの通常の動作を妨げるものであってはならない。すなわち、オペレーティングシステムにとって、透明である必要がある。所望の方法および装置は、効率的に、費用対効果が大きい様態で、情報にアクセスし、取り出し、回復できる必要がある。
【課題を解決するための手段】
【０００７】
要約すると、本発明の実施形態はイメージレスキューシステムを含む。イメージレスキューシステムは、大容量格納デバイスと通信するためのアプリケーションプログラムを有する。アプリケーションプログラムは、大容量格納デバイスにアクセスして情報を読み書きするためにオペレーティングシステム層と通信する。イメージレスキューシステムは、アプリケーションプログラム、オペレーティングシステム層および大容量格納デバイスと通信するデバイスドライバをさらに含む。デバイスドライバは、アプリケーションプログラムがオペレーティングシステム層をバイパスすることによって大容量格納デバイスにアクセスして情報を読み書きすることを可能にし、大容量格納デバイスと通信してアプリケーションプログラムがオペレーティングシステム層によって破損したと考えられる大容量格納デバイスにおける情報に迅速にアクセスすることを可能にする。ここで、破損した情報はオペレーティングシステム層に対してアクセス不可能である。イメージレスキューシステムは、大容量格納デバイスにアクセスして、オペレーティングシステム層に対してアクセス可能およびアクセス不可能な情報を迅速かつ効率的に取り出しおよび回復する。
【０００８】
本発明の前記および他の目的、特徴および利点は以下の図面を参照して詳細に記載される好適な実施形態から明らかである。
【発明を実施するための最良の形態】
【０００９】
本発明は、コモン大容量格納データデバイスに、論理デバイスレベルではなく、物理デバイスレベルで、オペレーティングシステムプログラム機能からの助けなしに、直接アクセスする技術を用いる。これによって、オペレーティングシステムが通常は「破損した」または壊れた大容量格納データデバイスであると判断する大容量格納データデバイスから、有効なユーザデータファイルを回復、再構築、および取り出すことが可能になる。
【００１０】
本発明は、標準システムデータ容量または「ディスクドライブ」として一般に公知のものとして、オペレーティングシステムに追加されるべき外部大容量格納データデバイスの追加をサポートするように、オペレーティングシステムが拡張されることを可能にする。アプリケーションプログラムは、大容量格納データデバイス用のデバイスドライバと協力して、オペレーティングシステムにとって「失われた」、または壊れたように見えるデータを、大容量格納データデバイスから迅速に取り出すことを可能にする。
【００１１】
本発明のある実施形態において、アプリケーションおよびドライバがそれに合わせて設計された「大容量格納データデバイス」は、Ｌｅｘａｒ  Ｍｅｄｉａブランドのジャンプショットケーブルを介してユニバーサルシリアルバス（ＵＳＢ）１．ｘ接続を介して、パーソナルコンピュータ（ＰＣ）またはＭａｃｉｎｔｏｓｈコンピュータ（Ｍａｃ）（登録商標）に接続されたＬｅｘａｒ  Ｍｅｄｉａ，Ｉｎｃ．ブランドのコンパクトフラッシュ（Ｒ）カードである。アプリケーションは、このタイプの大容量格納データデバイス、またはこのタイプのコンピュータへの接続に限定されない。以下に記載の技術は、ほぼあらゆる様態でホストコンピュータに接続される、殆ど全ての大容量格納データデバイス、全ての格納技術で動作する。
【００１２】
図１を参照しながらさらに詳細に説明されるように、アプリケーションプログラムは、新規のＩ／Ｏアクセス技術を採用して、標準的な市販のオペレーティングシステムのもとで動作するアプリケーションプログラムが、大容量格納デバイスをディスク容量のような有効なオペレーティングシステムフォーマット化格納デバイスとしてオペレーティングシステムが認識するか否かに関わらず、読み出しまたは書き込みのため大容量格納データデバイスにアクセスすることを可能にする。すなわち、大容量格納データデバイスとの通信は、オペレーティングシステムが大容量格納データデバイスを認識し、それをオペレーティングシステムデータ容量、すなわち、「ディスクドライブ」として「マウント」するか否かに関わらず、Ｌｅｘａｒアプリケーションプログラムを通じて可能である。アプリケーションは、オペレーティングシステム内の論理デバイスレベルとして一般的に公知のものとは反対に、物理デバイスレベルで、大容量格納データデバイスにアクセスし得る。これは、大容量格納データデバイスをサポートするＬｅｘａｒ  Ｍｅｄｉａオペレーティングシステム拡張デバイスドライバ内の固有かつ新規な方法によって達成される。デバイスドライバは、一般的には、大容量格納データデバイス製造業者、またはアプリケーションプログラムユティリティのオーサー、すなわち、Ｌｅｘａｒ  Ｍｅｄｉａによって供給される。採用される技術は、標準デバイスドライバ内にプログラムインターフェースのさらなるプロプライエタリ層（ｐｒｏｐｒｉｅｔａｒｙ  ｌａｙｅｒ）を含めることである。このさらなる層は、機能性を追加して、このさらなるインターフェースを知っているアプリケーションプログラムが、オペレーティングシステムを迂回して、デバイスドライバ内に設けられた機能に直接アクセスすることを可能にする。オペレーティングシステムは、デバイスドライバ内のこのさらなるプロプライエタリ（独自）アクセスインターフェースについて完全に知らない。デバイスドライバは、オペレーティングシステムにとって、全ての局面において「標準」デバイスドライバであるように見える。オペレーティングシステムは、さらなるプロプライエタリインターフェースを完全に知らない。アプリケーションプログラムは、標準オペレーティングシステム機能および手順を用いて、デバイスドライバ内にプロプライエタリインターフェースを位置付けることが可能である。プロプライエタリインターフェースが位置付けされ、アプリケーションプログラムに「付着」された後には、アプリケーションプログラムは、プロプライエタリインターフェース内に位置する機能および手順を呼び出すことができる。プロプライエタリインターフェース内の機能および手順は、オペレーティングシステムにとって、「不可視」であり、オペレーティングシステムおよびオペレーティングシステムのＬｅｘａｒドライバとの通常のインタラクションを妨げない。プロプライエタリインターフェース内の機能および手順は、Ｌｅｘａｒアプリケーションプログラムが、物理レベルで、大容量格納データデバイスにアクセスすることを可能にし、アプリケーションプログラムが大容量格納データデバイスにメーカー固有のコマンドとともに標準コマンドで命令することを可能にし、アプリケーションプログラムが通常オペレーティングシステムにとってアクセス可能でない情報およびデータ領域にアクセスすることを可能にする。
【００１３】
図１を参照すると、本発明の実施形態による、デバイス１４に接続されたパーソナルコンピュータ（ＰＣ）１２を含むイメージレスキューシステム１０が示されている。デバイス１４は、多くのタイプのデバイス、例えば、Ｃａｌｉｆｏｒｎｉ、ＦｒｅｍｏｎｔａのＬｅｘａｒ  Ｍｅｄｉａ，Ｉｎｃ．製のコンパクトフラッシュ（Ｒ）リーダデバイス、デジタルフォトリーダ、ジャンプショット製品、または任意の他のタイプの大容量格納製品のうちの１つである。
【００１４】
ＰＣ１２は、アプリケーションプログラムインターフェース２２を介してオペレーティングシステム層１８と通信するアプリケーションプログラム１６を含むことが示されている。オペレーティングシステム層１８は、オペレーティングシステム入力／出力（Ｉ／Ｏ）インターフェース２４およびドライバＩ／Ｏインターフェース３２を介してドライバ２０と通信することが示されている。ドライバ２０は、ハードウェアインターフェース層２８およびハードウェアバス３０を介してデバイス１４と直接通信させるアクセスインターフェース２６を含むことが示されている。図１に示すように、アプリケーションプログラム１６は、ダイレクトアクセスバス３４を介してアクセスインターフェース２６と直接通信し、オペレーティングシステム層１８を迂回する。
【００１５】
本発明の各種の実施形態において、ハードウェアバス３０は、異なる規格に適合し得、従って、異なるインターフェースを指す。ハードウェアバス３０の異なるタイプの例には、ＵＳＢ、ＰＣＭＣＩＡ、ＩＤＥ、大容量格納インターフェース、ファイヤーワイヤー（ｆｉｒｅ  ｗｉｒｅ）およびブルートゥース（ｂｌｕｅ  ｔｏｏｔｈ）が含まれる。
【００１６】
従来技術の方法において、アプリケーションプログラムは、オペレーティングシステム層を介してドライバと通信する必要がある。このような従来技術による方法の問題点は、デバイス１４が何らかの故障をする場合、オペレーティングシステムがデバイスと通信することができないというのみの理由で、システムがデバイスを回復することができない点である。しかし、本発明において、ドライバ２０は、デバイス１４を認識し、デバイス１４が壊れた情報を含んでいる場合でさえ、以前にデバイスに格納されていた情報を回復する。異なるドライバ２０が、デバイス１４が取り得るデバイスの異なるタイプに対して採用されることに留意されたい。同様に、アクセスインターフェース２６は、デバイス１４として採用されるデバイスの種類に基づく、異なる拡張を含む。オペレーティングシステム層１８をバイパスすることによって、オペレーティングシステム１８がバイパスされない場合にはＰＣ１２が通信することができないデバイス、例えば、デバイス１４との通信を確立することが可能になる。
【００１７】
また、図１を参照すると、アプリケーションプログラム１６は、壊れたまたは壊れていない大容量格納データデバイス、すなわち、デバイス１４からある種のユーザデータファイルを迅速に検索および回復する。デバイス１４内に含まれ得る、または含まれないかもしれない情報をフォーマット化するオペレーティングシステム層１８を用いるという恩恵がなくても、デバイス１４は、物理的な「生（ｒａｗ）」デバイスレベルで、検索される。
【００１８】
採用される技術は、識別可能なデータ「ヘッダ」を有する特定のデータファイルタイプを検索する。「ヘッダ」領域は、特定のファイルタイプに固有のデータパターン、例えば、ｊｏｉｎｔ  ｐｈｏｔｏｇｒａｐｈｉｃ  ｅｘｐｅｒｔｓ  ｇｒｏｕｐ（ＪＰＥＧ）ファイル、またはタグ画像ファイルフォーマット（ｔａｇｇｅｄ  ｉｍａｇｅ  ｆｉｌｅ  ｆｏｒｍａｔ（ＴＩＦＦ））ファイルを含むが、これらに限定されない。アプリケーションプログラムは、また、大容量格納データデバイスから集められた情報を利用して、アルゴリズムを作り、「力任せ」のバイト毎の検索の代わりに、大容量格納データデバイスのインテリジェントな検索を可能にする。アプリケーションプログラムは、まず、上記のアクセス技術を用いて、デバイス特性について、大容量格納データデバイスに直接照会（クエリ）する。この情報は、物理ブロックサイズを入手することともに、デバイス１４のバイトの絶対的なサイズを確立するために用いられる。
【００１９】
物理ブロックサイズは、バイトの単位で記載されるが、大容量格納データデバイスから読み出すか、または書き込まれる、アクセスの最小単位である。この単位は、通常、バイト数の二進の倍数として、通常は、数百または数千バイトの範囲内で、表わされる。従って、このアプリケーションは、大容量格納データデバイス上のオペレーティングシステムフォーマット化情報を読み出すことを試みる。この情報は、オペレーティングシステム依存性であり、アプリケーションは、いずれのオペレーティングシステムのもとで実行されているかを知り、それに従ってデータを解釈する。フォーマット化データは、破損するか、または壊れ得るので、アプリケーションプログラムは、合理的な値についてのフォーマット化情報内に含まれる特定のオペレーティングシステム特有パラメータを検証することによって、フォーマット化情報が有効であるか否かを判定するように試みる。
【００２０】
図２は、「検索割り当てユニット」４０を表す。図２において、フォーマット化情報を調べた後、アプリケーションがその情報が有効であると判定する場合、アプリケーションはオペレーティングシステム「ファイル割り当てユニット」４１を取り出す。この値は、オペレーティングシステムが大容量格納データデバイス上でファイルデータにアクセスする最小サイズのデータブロックである。この値は通常、物理ブロックサイズ４２の単位で記載される。したがって、ファイル割り当てユニット４１は、複数の物理ブロックサイズであり、通常数百バイトの範囲内にある。次いで、アプリケーションプログラムは最大の決定されたブロックサイズ４２をその検索割り当てユニットとして使用する。これは、物理ブロックサイズ４２またはオペレーティングシステム割り当てユニットサイズ４１のいずれかである。
【００２１】
オペレーティングシステムがファイル割り当てユニットの単位でファイルデータを書き込むだけであることが分かると、アプリケーションプログラムは関連するファイルヘッダ情報４３をこれらの単位の境界で検索する。多くて、ファイル割り当てユニット４１であり、少なくて、大容量格納データデバイスの物理ブロックサイズ４２である。
【００２２】
したがって、大容量格納データデバイス上において、バイト単位の検索とは反対に検索の速度を実質的に増加させる。ファイルヘッダ情報４３に対する検索割り当てユニットの先頭を調べることが必要なだけである。ヘッダ情報の一致が見つからなければ、検索アルゴリズムは大容量格納データデバイス上の次の検索割り当てユニットの先頭へスキップする。このプロセスは、大容量格納データデバイス上のすべての領域が調べられるまで継続される。
【００２３】
本発明は特定の実施形態について記載されたが、本発明の改変および変更は当業者に明らかであることは疑いようがないと理解される。したがって、添付の請求項は、本発明の真の意図および範囲内にあるそのような改変および変更のすべてを含むと解釈されるべきである。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施形態によるイメージレスキューシステム１０を示す。
【図２】本発明の実施形態による、オペレーティングシステムによって使用されるような物理ブロックおよびファイル割り当てグループ化を表す。
【図１】
0004099453.tif 000002
【図２】
0004099453.tif 000003