(57)【要約】【課題】一つのハードディスクドライブ上のマルチオペレーティングシステム環境でハードディスクドライブのデータを保護すること。【解決手段】ゼロ設定モジュール３０４によって新たなゼロ論理アドレス３１８が設定され、最大設定モジュール３０２よって新たな上限論理アドレス３１６が設定される。ハードディスクドライブ３０６上の論理アドレスに対するリクエストに、新たなゼロ論理アドレス３１８に対応するオフセット値が追加されることによって、ハードディスクドライブ３０６の固有のゼロ論理アドレス３２０と新たなゼロ論理アドレス３１８の間の下位保護領域（ＬＰＡ）３１２内のデータが保護され、新たな上限論理アドレス３１６より上の論理アドレスへのアクセスが拒否されることによって、固有の上限論理アドレス３１４と新たなトップ論理アドレス３１６の間のホスト保護領域（ＨＰＡ）３０８内のデータが保護される。【選択図】        図３
2008146642.tif 000002
【特許請求の範囲】
【請求項１】
論理アドレスに対するリクエストに応じてハードファイルにアクセスするように構成されたコントローラモジュールと、
前記ハードファイル上の論理アドレスに対する各リクエストにオフセット値を追加するように構成されたゼロ設定モジュールと、
前記ハードファイル上の、アクセス可能な最大論理アドレスを設定するように構成された最大設定モジュールと、
を有する、ハードファイルへのアクセスを一定の論理アドレス範囲に制限する装置。
【請求項２】
前記オフセット値が、複数のハードファイル領域のうちから選択された１つのハードファイル領域の論理アドレス範囲が上位であるほど該オフセット値が大きくなるように決められる、請求項１に記載の装置。
【請求項３】
前記ハードファイル上の複数のハードファイル領域がジオメトリテーブルに規定されており、該ジオメトリテーブルは、
前記複数のハードファイル領域のうちの１つの領域の最下位論理アドレスにそれぞれ対応する複数のオフセット値と、
前記複数のハードファイル領域のうちの１つの領域の最上位論理アドレスにそれぞれ対応する複数の最大論理アドレスと、
を有する、
請求項１に記載の装置。
【請求項４】
前記最大設定モジュールは、前記ハードファイルの固有論理アドレス方式に対して相対的に前記最大論理アドレスを設定する、請求項１に記載の装置。
【請求項５】
前記最大設定モジュールは、前記オフセット値に対して相対的に前記最大論理アドレスを設定する、請求項１に記載の装置。
【請求項６】
前記ゼロ設定モジュールによる前記オフセット値の変更を禁止するように前記ゼロ設定モジュールをロックし、
前記ゼロ設定モジュールによる前記オフセット値の変更を許可するように前記ゼロ設定モジュールのロックを解除する、
ように構成されたロックモジュールをさらに有する、請求項１に記載の装置。
【請求項７】
前記ロックモジュールは、さらに、パスワードに応じて前記ゼロ設定モジュールのロックを解除するように構成されている、請求項６に記載の装置。
【請求項８】
前記ロックモジュールは、さらに、ゼロ設定コマンドに応答して前記ゼロ設定モジュールをロックするように構成されている、請求項６に記載の装置。
【請求項９】
マルチオペレーティングシステム環境下でハードディスクのデータを保護するシステムであって、
ハードディスクドライブ上の論理アドレスに存在するデータをリクエストするように構成されたマザーボードと、
前記ハードディスクドライブをコントロールするように構成されたコントローラモジュールと、
論理アドレスにデータを格納するように構成された前記ハードディスクドライブと、
を備え、
前記コントローラモジュールは、
前記ハードディスクドライブ上の論理アドレスへの各リクエストにオフセット値を追加するように構成されたゼロ設定モジュールと、
前記ハードディスクドライブ上の、アクセス可能な最大論理アドレスを設定するように構成された最大設定モジュールと、
を有する、システム。
【請求項１０】
前記ゼロ設定モジュールは、前記マザーボードに組み込まれたコントローラモジュールの構成要素である、請求項９に記載のシステム。
【請求項１１】
前記ゼロ設定モジュールは、スタンドアロン型のコントローラモジュールの構成要素である、請求項９に記載のシステム。
【請求項１２】
前記ゼロ設定モジュールは、前記ハードディスクドライブの構成要素である、請求項９に記載のシステム。
【請求項１３】
前記オフセット値は、対応する複数のハードディスクドライブ領域を占有する複数のオペレーティングシステムの中から選択された１つのオペレーティングシステムに対応する領域が占有する論理アドレス範囲が上位であるほど、前記オフセット値が大きくなるように決められる、請求項９に記載のシステム。
【請求項１４】
前記複数のオペレーティングシステムのうちの１つの選択は、パスワードによって制限される、請求項１３に記載のシステム。
【請求項１５】
前記ハードディスクドライブ上の複数のハードディスクドライブ領域がジオメトリテーブルに規定されており、該ジオメトリテーブルは、
前記複数のハードディスクドライブ領域のうちの１つの領域の最下位論理アドレスにそれぞれ対応する複数の前記オフセット値と、
前記複数のハードディスクドライブ領域のうちの１つの領域の最上位論理アドレスにそれぞれ対応する複数の前記最大論理アドレスと、
を有する、請求項９に記載のシステム。
【請求項１６】
前記ジオメトリテーブルは、前記コントローラモジュールと通信するＢＩＯＳ（Ｂａｓｉ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ)と共に格納されている、請求項１５に記載のシステム。
【請求項１７】
前記ジオメトリテーブルは、前記ハードディスクドライブ上に格納されている、請求項１５に記載のシステム。
【請求項１８】
ハードファイルへのアクセスを一定の論理アドレス範囲に制限するようにプログラムされた、コンピュータが利用可能なプログラムコードを有する、コンピュータが読み取り可能な媒体を有するコンピュータプログラムプロダクトであって、
該コンピュータプログラムプロダクトの動作は、
前記ハードファイル上の複数のハードファイル領域の１つの選択を受け付けることと、
前記複数のハードファイル領域の１つの最下位論理アドレスにそれぞれ対応する複数のオフセット値と、前記複数のハードファイル領域の１つの最上位論理アドレスにそれぞれ対応する複数の最大論理アドレスと、を有するジオメトリテーブルにアクセスすることと、
前記ハードファイル上の論理アドレスに対する各リクエストに前記オフセット値を追加することと、
前記最大論理アドレスよりも上の論理アドレスへのアクセスを拒否することと、
を含む、コンピュータプログラムプロダクト。
【請求項１９】
前記ジオメトリテーブルへのアクセスは、ＢＩＯＳ（Ｂａｓｉ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ)による不揮発性ＢＩＯＳメモリの読み取りを含む、請求項１８に記載のコンピュータプログラムプロダクト。
【請求項２０】
前記ジオメトリテーブルへのアクセスは、ブートローダによる前記ハードファイル上に格納されたデータの読み取りを含む、請求項１８に記載のコンピュータプログラムプロダクト。
【請求項２１】
ハードディスクドライブへのアクセスを一定の論理アドレス範囲に制限する方法であって、
前記ハードディスクドライブ上の複数のハードディスクドライブ領域の１つの選択を受け付けることと、
前記複数のハードディスクドライブ領域のうちの１つの領域の最下位論理アドレスにそれぞれ対応する複数のオフセット値と、前記複数のハードディスクドライブ領域のうちの１つの領域の最上位論理アドレスにそれぞれ対応する複数の最大論理アドレスと、を有するジオメトリテーブルにアクセスすることと、
前記ハードディスクドライブ上の論理アドレスへの各リクエストに前記オフセット値を追加することと、
前記最大論理アドレスよりも上の論理アドレスへのアクセスを拒否することと、
を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードディスクのデータの保護に関し、より具体的には、不正アクセスに対するハードディスク領域の保護に関する。
【背景技術】
【０００２】
技術の進歩により、ハードディスクドライブの大容量化が進んでいる。最近のハードディスクドライブの容量は、一つのオペレーティングシステムで使用する場合、大抵は必要以上に大きい。そこで、選択的に起動することができる複数のオペレーティングシステム（マルチオペレーティングシステム）を一つのハードディスクドライブにインストールすることによってそのハードディスクドライブの過度の容量を有効に利用するユーザが現れてきている。
【０００３】
複数のオペレーティングシステムをインストールする理由は幾つかあるが、その中でも、パワー・ユーザがＬｉｎｕｘやＷｉｎｄｏｗｓ（登録商標）のような様々なオペレーティングシステムを動かして種々のアプリケーションを利用したり、会社において複数のユーザに同一のコンピュータを操作させたりすることがある。同一のハードディスクドライブ上での複数のオペレーティングシステムは、他にも、ホームオフィスで利用されている。ホームオフィスでは、ウィルス、トロイの木馬、他の家族の操作に起因するその他のデータ破損などからオペレーティングシステムを守りたいというビジネスユーザの希望がある。
【０００４】
一つのハードディスクドライブを複数のオペレーティングシステムのために用いる既存の方法においては、通常、ドライブを複数の論理領域に分割し、各オペレーティングシステムに対して１つまたは複数のパーティションを割り当てる作業を伴う。一つのオペレーティングシステムが選択されると、そのオペレーティングシステムは、それに割り当てられた論理領域から起動する。選択されたオペレーティングシステムは、それに割り当てられた論理領域に加え、他のオペレーティングシステムに割り当てられたハードディスクドライブ内の領域を含む全ての内容にアクセスすることができる。その結果、１つのオペレーティングシステムによって実行された動作が、ハードディスク上の他のオペレーティングシステムに対し、データ破損、データ窃盗、または他の望ましくない結果などの形態で影響を及ぼす可能性がある。
【０００５】
現在のＰＣハードファイルでは、（ＩＤＥ／ＡＴＡＰＩ標準規格に規定されているように）、別々の２つの領域にディスクを分けることができる。そのうちの一つは、論理ブロックアドレス（ＬＢＡ）０からＬＢＡ上限にわたる、ドライブの下位の（通常比較的大きい）セクションである。ドライブのこの部分は、通常、オペレーティングシステムとユーザプログラムとユーザデータとが存在している。他の一つは、ドライブの最上位に位置するホスト保護領域（ＨＰＡ）である。この領域は、「最大設定（Ｓｅｔ  Ｍａｘ）」コマンドをドライブに送ることによって設定される。これにより、ドライブの下位領域のオペレーティングシステムが利用可能な「ＬＢＡ上限」を引き下げることである。一旦設定されると、オペレーティングシステムはドライブのＨＰＡ領域を参照することもアクセスすることもできない。
【０００６】
この仕組みは、ディスクが、ハードディスクドライブの下位セクションにインストールされた一つのオペレーティングシステムを格納する場合には良好に機能する。Ｏ／ＳはＬＢＡ０からＬＢＡ上限までの全てに完全にアクセスすることができる。「Ｓｅｔ  Ｍａｘ」コマンドによってＬＢＡ上限が引き下げられると、新たなＬＢＡ上限より上の領域は、オペレーティングシステムによるデータ破損から免れる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ドライブ上に２つ以上のオペレーティングシステムが存在する場合には、ＨＰＡにインストールされたオペレーティングシステムが、ドライブの下位セクションに自由にアクセスできるため、問題が生じる。結果として、ドライブの下位セクションにあるオペレーティングシステムは、ＨＰＡにインストールされたオペレーティングシステムの動作による悪意の、または不測のダメージまたはデータ窃盗に対して脆弱になる。
【０００８】
上述した議論から、マルチオペレーティングシステムの環境でハードディスクのデータを保護する装置、システム、および方法が必要とされていることが分かる。そのような装置、システム、および方法は、利点として、ハードディスクドライブの２つ以上の領域を保護できる。
【０００９】
本発明は、当該技術分野の現状に応じて、特に、現在利用可能なハードディスクデータ保護方式では完全には解決されていない、当該技術分野における問題および必要性に応じてなされたものである。したがって、本発明は、当該技術分野における上述の欠点の多くまたは全てを克服する、ハードディスクのデータを保護する装置、システム、および方法を提供するためになされたものである。
【課題を解決するための手段】
【００１０】
本装置は、ハードファイルへのアクセスを一定の論理アドレス範囲に制限するものであり、ハードファイルへのアクセスを一定の論理アドレス範囲に制限するのに必要なステップを実行するように構成された複数のモジュールを備える。記載する複数の実施態様においては、それらのモジュールとして、論理アドレスへのリクエストに応じてハードファイルにアクセスするように構成されたコントローラモジュールと、ハードファイル上の論理アドレスに対する各リクエストにオフセット値を追加するように構成されたゼロ設定モジュールと、ハードファイル上にアクセス可能な最大論理アドレスを設定するように構成された最大設定モジュールと、を挙げる。
【００１１】
本装置は、一実施態様において、さらに、複数のハードファイル領域の中から１つを選択することによって、選択された領域の論理アドレス範囲が上位であるほどオフセット値が大きくなるように、オフセット値を決めるように構成されている。他の実施態様では、本装置は、ハードファイル上の複数のハードファイル領域をジオメトリテーブルに規定する。このジオメトリテーブルは、複数のオフセット値と複数の最大論理アドレスとを有しており、各オフセット値は、複数のハードディスクドライブ領域のうちの１つの領域の最下位論理アドレスに対応し、各最大論理アドレスは、複数のハードファイル領域のうちの１つの領域の最上位論理アドレスに対応する。
【００１２】
他の実施態様では、最大設定モジュールは、最大論理アドレスを、ハードファイルに固有の論理アドレス方式に対して相対的に設定する。他の実施態様では、最大設定モジュールは、最大論理アドレスを、オフセット値に対して相対的に設定する。
【００１３】
さらに他の実施態様では、本装置は、ゼロ設定モジュールによるオフセット値の変更を禁止するようにゼロ設定モジュールをロックし、且つ、ゼロ設定モジュールによるオフセット値の変更を許可するようにゼロ設定モジュールのロックを解除するように構成されたロックモジュールをさらに備える。このロックモジュールは、一実施態様において、さらに、ゼロ設定モジュールのロックをパスワードに応じて解除するように構成される。他の実施態様では、このロックモジュールは、さらに、ゼロ設定コマンドに応答して、ゼロ設定モジュールをロックするように構成される。
【００１４】
また、マルチオペレーティングシステムの環境においてハードディスクのデータを保護するシステムも提供する。一実施態様において、本システムは、ハードディスクドライブ上の論理アドレスに存在するデータをリクエストするように構成されたマザーボードと、ハードディスクドライブを制御するように構成されたコントローラモジュールと、データを論理アドレスに格納するように構成されたハードディスクドライブと、を備える。ここで、コントローラモジュールは、ハードディスクドライブ上の論理アドレスに対する各リクエストにオフセット値を追加するように構成されたゼロ設定モジュールと、ハードディスクドライブ上でアクセス可能な最大アドレスを設定するように構成された最大設定モジュールと、を備える。
【００１５】
本システムのさらに他の実施態様では、ゼロ設定モジュールは、マザーボードに組み込まれたコントローラモジュールの構成要素である。他の実施態様では、ゼロ設定モジュールは、スタンドアロン型のコントローラモジュールの構成要素である。他の実施態様では、ゼロ設定モジュールはハードディスクドライブの構成要素である。
【００１６】
本システムの一実施態様では、オフセット値は、対応する複数のハードディスクドライブ領域を占有する複数のオペレーティングシステムの中から１つを選択することによって決定される。具体的には、選択されたオペレーティングシステムに対応する領域が占有する論理アドレス範囲が上位であるほど、オフセット値が大きくなるように決められる。他の実施態様では、そのオペレーティングシステムの選択は、パスワードによって制限される。
【００１７】
本システムの他の実施態様では、ハードディスクドライブ上の複数のハードディスクドライブ領域がジオメトリテーブルに規定される。このジオメトリテーブルは、複数のオフセット値と複数の最大論理アドレスと、を有しており、各オフセット値は、複数のハードディスクドライブ領域のうちの１つの領域の最下位論理アドレスに対応し、各最大論理アドレスは、複数のハードディスクドライブ領域のうちの１つの領域の最上位論理アドレスに対応する。さらに他の実施態様では、ジオメトリテーブルは、コントローラモジュールと通信するＢＩＯＳ(basic input/output system)と共に格納されている。他の実施態様では、ジオメトリテーブルはハードディスクドライブ上に格納されている。
【００１８】
また、ハードファイルへのアクセスを一定の論理アドレス範囲に制限するようにプログラムされた、コンピュータが利用可能なプログラムコードを有する、コンピュータが読み取り可能な媒体を有するコンピュータプログラムプロダクトも提供する。このコンピュータプログラムプロダクトのプログラムの動作は、ハードファイル上の複数のハードファイル領域のうちの１つの選択を受け付けることと、複数のハードディスクドライブ領域のうちの１つの領域の最下位論理アドレスにそれぞれ対応する複数のオフセット値と複数のハードディスクドライブ領域のうちの１つの領域の最上位論理アドレスにそれぞれ対応する複数の最大論理アドレスとを有するジオメトリテーブルにアクセスすることと、ハードファイル上の論理アドレスに対する各リクエストにオフセット値を追加することと、最大論理アドレスよりも上位の論理アドレスへのアクセスを拒否することと、を含む。
【００１９】
他の実施態様では、ジオメトリテーブルへのアクセスは、ＢＩＯＳによる不揮発性ＢＩＯＳメモリの読み取りを含む。他の実施態様では、ジオメトリテーブルへのアクセスは、ブートローダによるハードファイル上のデータの読み取りを含む。
【００２０】
また、ハードディスクドライブへのアクセスを一定の論理アドレス範囲に制限する方法も提供する。この方法は、一実施態様において、ハードディスクドライブ上の複数のハードディスクドライブ領域のうちの１つの選択を受け付け、複数のハードディスクドライブ領域のうちの１つの領域の最下位論理アドレスにそれぞれ対応する複数のオフセット値と複数のハードディスクドライブ領域のうちの１つの領域の最上位論理アドレスにそれぞれ対応する複数の最大論理アドレスとを有するジオメトリテーブルにアクセスすることと、ハードディスクドライブ上の論理アドレスに対する各リクエストにオフセット値を追加することと、最大論理アドレスよりも上位の論理アドレスへのアクセスを拒否することと、を含む。
【００２１】
本明細書にわたって特徴、利点、またはそれらと同等な内容を説明しているが、本発明によって実現可能なそれらの特徴および利点の全てが、本発明のいずれか１つの実施態様において得られるべきである、または得られるということを意味しているというわけではない。特徴および利点を表す文言は、実施態様に関して説明される具体的な特徴、利点、または特性が本発明の少なくとも１つの実施態様に含まれているという意味で理解されるものである。したがって、本明細書にわたって、特徴、利点、およびそれらと同等な内容の説明は、必ずしもそうではないが、該当する同一の実施態様について述べている場合がある。
【００２２】
さらに、本発明の、記載する特徴、利点、および特性は、適切な任意のやり方で１つ以上の実施態様において組み合わせることができる。当業者であれば、本発明を、特定の実施態様の１つ以上の具体的な特徴または利点を伴うことなく実施できることが理解できる。また、本発明の全ての実施態様に存在していなくてもよい付加的な特徴および利点が、特定の実施態様にあってもよいことが理解される。
【００２３】
本発明のこれらの特徴および利点は、以下の説明と添付の特許請求項から十分に明らかになるし、または以下に説明する本発明の実施によって理解できる。
【発明を実施するための最良の形態】
【００２４】
本発明の利点を容易に理解できるように、簡潔に説明した上述の本発明を、添付の図面に示す具体的な実施形態を参照することによってより具体的に説明する。それらの図面は、本発明の代表的な実施形態を示しているにすぎず、本発明の範囲を制限するものではないということが理解できる。本発明を、添付の図面を用いることによってより具体的かつ詳細に説明する。
【００２５】
本明細書において、多くの機能ユニットは、それらが独立して実装されるという点を特に強調するためにモジュールと呼ぶ。例えば、モジュールは、カスタムＶＬＳＩ回路やゲートアレイ、または、論理チップやトランジスタや他のディスクリート素子のような既製の半導体を有するハードウェア回路として実装してもよい。モジュールは、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、プログラマブル・アレイ・ロジック（ＰＡＬ）、プログラマブル・ロジック・デバイス（ＰＬＤ）などのプログラマブル・ハードウェア・デバイスに実装してもよい。
【００２６】
モジュールは、様々な種類のプロセッサによって実行するためのソフトウェアとして実現してもよい。実行コードによって特定されるモジュールは、例えば、オブジェクト、プロシジャー、または関数として構築されたコンピュータの命令からなる１つ以上の物理ブロックまたは論理ブロックを有してもよい。さらに、特定モジュールの複数の実行ファイルは、物理的に一緒に配置されている必要はなく、論理的に一つに結合された際に目的とするモジュールを構成できるのであれば互いに異なる位置に格納されたバラバラの複数の命令で構成されていてもよい。
【００２７】
もちろん、実行コードからなるモジュールは、単一の命令、または複数の命令であってよく、互いに異なる複数のプログラム間において互いに異なる幾つかのコードセグメントにわたって、且つ幾つかのメモリデバイスを横断して分散されてもよい。同様に、本明細書では、オペレーショナル・データがモジュール内にあると説明する場合があり、また、そのオペレーショナル・データは、任意の適切な形態で実現されてもよく、任意の適切な種類のデータ構造内に準備されてもよい。オペレーショナル・データは、単一のデータ・セットとしてまとめられていてもよく、あるいは、互いに異なる複数の位置（互いに異なる複数の記憶デバイスにわたるという意味も含む）にわたって分散されていてもよく、また、少なくとも部分的に、単に、システムまたはネットワーク上の電気信号として存在してもよい。
【００２８】
本明細書において、「ある実施形態」、「一実施形態」、またはそれらと同等な表現の使用は、その実施形態に関して記述される具体的な特徴、構造、または特性が、本発明の少なくとも１つの実施形態に含まれていることを意味している。したがって、本明細書において、「ある実施形態において」、「一実施形態において」、または、それらと同等な内容のフレーズの使用は、必ずしもそうではないが、該当する同一の実施形態のことを述べている場合がある。
【００２９】
ここで参照する信号伝達媒体は、信号を生成し、信号を発生させ、または、デジタル処理装置に対する機械読み取り可能な命令からなるプログラムを実行させることができる任意の形態を取ることができる。信号伝達媒体は、伝送回線、コンパクトディスク、デジタルビデオディスク、磁気テープ、ベルヌーイドライブ、磁気ディスク、パンチカード、フラッシュメモリ、集積回路、または、他のデジタル処理装置メモリデバイスによって実現してもよい。
【００３０】
さらに、記載された本発明の特徴、構造、または特性は、１つ以上の実施形態において任意の適切なやり方で組み合わされてもよい。以下の説明では、本発明の実施形態のよりよい理解のために、プログラミング、ソフトウェアモジュール、ユーザの選択、ネットワーク・トランザクション、データベースクエリ、データベースストラクチャ、ハードウェアモジュール、ハードウェア回路、ハードウェアチップなどの例のような多くの具体的な詳細を示す。しかしながら、当業者であれば、本発明を、１つ以上の具体的な詳細の範囲外で、他の方法、他の構成要素、他の部材などを用いて実施できることが理解できる。また、本発明の特徴が分かりにくくなるのを避けるために、よく知られた構造、部材、または動作については詳細に示さない。
【００３１】
ここで、「ハードディスクドライブ」、「ハードドライブ」、「ハードディスク」、「ハードファイル」、またはそれらと同等な文言は、デジタル符号が施された任意の不揮発性記憶装置を指している。そのような記憶装置の例として、磁気面を有する回転ディスクプラッタを用いたハードディスクドライブ、磁気テープ、ＣＤまたはＤＶＤ−ＲＯＭのような光ディスク、ＲＯＭ、ユニバーサル・シリアル・バス（ＵＳＢ）キーを含むフラッシュメモリ、およびフラシュカードなどが挙げられる。統合論理アドレス方式（ｕｎｉｆｉｅｄ  ｌｏｇｉｃａｌ  ａｄｄｒｅｓｓｉｎｇ  ｓｃｈｅｍｅ）を用いたマルチディスクＲＡＩＤサブシステムのような上記の例の組み合わせも、本発明の目的を達成する上で、ハードディスクドライブと見なされるべきものである。
【００３２】
また、ハードディスクドライブの「領域」とは、ハードディスクドライブ上の格納位置のグループを指している。グループ内の格納位置は、必須ではないが、連続していてよい。ハードディスクドライブ上の格納位置は、物理的な格納位置を論理アドレスにマッピングする論理アドレス方式で表してもよい。例えば、シリンダ、ヘッド、およびセクタの物理的な格納位置を有するハードディスクドライブは、論理ブロックアドレス（ＬＢＡ）によって表されてよい。論理ブロックアドレスでは、最初のまたは最下位のアドレスを０のＬＢＡに割り当て、次に１のＬＢＡに割り当てられるというように、アドレスをハードディスクドライブ上の物理的な位置に割り当てる。
【００３３】
図１は、ホスト保護領域（ＨＰＡ）１０２および下位領域１０４を有する一実施形態のハードディスクドライブ１００を示している。ハードディスクドライブ１００は、一実施形態において、論理アドレス方式でアクセスされる。この論理アドレス方式によって、ある範囲のアドレスは、ハードディスクドライブ１００内のゼロの論理アドレス１０６から上限の論理アドレス１０８までの範囲の物理的な格納位置に割り当てられる。パーソナルコンピュータ（ＰＣ）上でハードファイルを使用する上での現在の標準である、ＩＤＥ(Ｉｎｔｅｇｒａｔｅｄ  Ｄｅｖｉｃｅ  Ｅｌｅｃｒｏｎｉｃｓ）／ＡＴＡＰＩ(Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ  Ｐａｃｋｅｔ  Ｉｎｔｅｒｆａｃｅ）標準には、「最大設定（Ｓｅｔ  Ｍａｘ)」コマンドの仕様が含まれている。最大設定コマンドが、それに関連づけられた新たな上限論理アドレス１１０と共にハードディスクドライブ１００に送られると、この新たな上限論理アドレス１１０より上の論理アドレス、およびハードディスクドライブ１００の固有アドレス方式での上限論理アドレス１０８はアクセス不可能になる。最大設定コマンドを送ることによって、オペレーティングシステムは、新たな上限論理アドレス１１０より上の論理アドレスにアクセスすることができなくなるので、ハードディスクドライブ１００のＨＰＡ１０２は、下位領域１０４を利用するオペレーティングシステムから効果的に保護される。
【００３４】
しかしながら、オペレーティングシステムがＨＰＡ１０２内にインストールされている場合、このオペレーティングシステムは、最大設定コマンドが発行されていない場合にしか機能できない。したがって、ＨＰＡ１０２内のオペレーティングシステムは、下位領域１０４内に格納されたどのデータにもアクセスすることができる。その結果、ＨＰＡ１０２内にインストールされたオペレーティングシステムのみが、最大設定コマンドによって保護され、下位領域１０４内にインストールされた第２のオペレーティングシステムは、そのような保護を受けない。
【００３５】
図２は、ハードディスクドライブの１つ以上の領域を保護する本発明にかかる一実施形態のシステム２００を示している。システム２００は、マザーボード２０２、コントローラモジュール２０４、最大設定モジュール２０６、ゼロ設定モジュール２０８、およびハードディスクドライブ２１０を備える。システム２００によって、ハードディスクドライブ２１０へのアクセスが一定の論理アドレス範囲に制限される。
【００３６】
マザーボード２０２は、一実施形態において、コンピュータのような複雑な電子システムの主回路基板である。マザーボード２０２は、計算タスクを実行するために幾つかの構成要素と接続されており、それらをコントロールする。マザーボード２０２に、コントローラモジュール２０４が含まれてもよい。他の実施形態として、マザーボード２０２はコントローラモジュール２０４用のコネクタを含んでいてもよい。コントローラモジュール２０４用のコネクタの一例としては、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）スロットがある。
【００３７】
コントローラモジュール２０４は、一実施形態において、マザーボード２０２とハードディスクドライブ２１０との間の通信を管理する。コントローラモジュール２０４に、最大設定モジュール２０６とゼロ設定モジュール２０８が含まれてもよい。コントローラモジュール２０４は、ハードディスクドライブ２１０にコマンドを送って、ある格納アドレスにおいてデータの読み出しまたは書き込みを行ってもよい。一実施形態において、コントローラモジュール２０４は、論理アドレス方式と物理アドレス方式との間の変換を行ってもよい。他の実施形態として、コントローラモジュール２０４は論理アドレスのリクエストを行ってよく、この論理アドレスは、ハードディスクドライブ２１０によって変換される。
【００３８】
当業者であればわかるように、コントローラモジュール２０４には、いくつかの実装形態があり、これらは本発明の範囲内であると考えられるべきである。例えば、コントローラモジュール２０４は、マザーボード２０２に組み込まれていてもよい。他の実施形態では、コントローラモジュール２０４は、マザーボード２０２およびハードディスクドライブ２１０とは別個のアドオン式の周辺機器であってよい。さらに他の実施形態では、コントローラモジュール２０４は、ハードディスクドライブ２１０に組み込まれていてもよい。さらに他の実施形態では、コントローラモジュール２０４は、システム２００の複数のコンポーネントに分散された複数の機能モジュールを有していてもよい。
【００３９】
一実施形態において、最大設定モジュール２０６は最大設定コマンドをハードディスクドライブ２１０に送る。最大設定コマンドによって、ハードディスクドライブ２１０上の、利用可能な上限論理アドレスが下げられる。その結果、最大設定コマンドが有効である間、新たな上限論理アドレスより上に格納されたデータはアクセスから保護される。
【００４０】
ゼロ設定モジュール２０８は、一実施形態において、「ゼロ設定（ｓｅｔ  ｚｅｒｏ）」コマンドをハードディスクドライブ２１０に送る。ゼロ設定コマンドによって、ハードディスクドライブ２１０で利用可能なゼロアドレスが、新たなゼロアドレスに引き上げられる。その結果、ゼロ設定コマンドが有効である間、新たなゼロアドレスより下に格納されたデータはアクセスから保護される。
【００４１】
一実施形態において、ゼロ設定コマンドによって、コントローラモジュール２０４は、ハードディスクドライブ２１０上の論理アドレスに対する全てのリクエストにオフセット値を追加してもよい。例えば、ゼロ設定モジュール２０８によって、コントローラモジュール２０４は、ハードディスクドライブ２１０上の論理アドレスに対する全てのリクエストに２０，０００のオフセットを追加してよい。この例に従うと、論理アドレス１０に対するリクエストは、そのアドレスに加算される２０，０００のオフセットを含み、コントローラモジュール２０４は、ハードディスクドライブ２１０の固有アドレス方式での論理アドレス２０，０１０にアクセスする。
【００４２】
ハードディスクドライブ２１０は、一実施形態において、デジタル符号が施された不揮発性記憶装置である。ハードディスクドライブ２１０には、論理アドレスと物理格納位置との間の変換を行うＬＢＡのような論理アドレス方式でアクセスしてもよい。例えば、ハードディスクドライブ２１０上のある物理領域に、ゼロの論理アドレスを割り当てることができる。ハードディスクドライブ２１０の他の物理領域は、例えば、１の論理アドレスを割り当てることができる。
【００４３】
図３は、ハードディスクドライブ３０６の１つ以上の領域を保護する本発明にかかる一実施形態の装置３００を示している。装置３００は、最大設定モジュール３０２、ゼロ設定モジュール３０４、およびハードディスクドライブ３０６を備えることができる。装置３００は、ハードディスクドライブ３０６の１つ以上の領域に格納されたデータを保護し、一方、ハードディスクドライブ３０６の他の領域は、保護された１つ以上の領域に対するアクセスを制限することによってアクセス可能になっている。
【００４４】
一実施形態において、ハードディスクドライブ３０６は、論理アドレスによってアクセスされる物理格納位置を含んでいる。論理アドレスは、ハードディスクドライブ３０６のゼロ論理アドレス３２０から上限論理アドレス３１４までの範囲とすることができる。データは、アクセスのためにハードディスクドライブ３０６上に格納できる。
【００４５】
ゼロ設定モジュール３０４は、一実施形態において、ゼロ設定コマンドをハードディスクドライブ３０６に送るように構成される。ゼロ設定コマンドによって、ハードディスクドライブ３０６に新たなゼロ論理アドレス３１８が設定される。一実施形態では、ゼロ設定コマンドによって、ハードディスクドライブ３０６上の論理アドレスに対するリクエストにオフセット値が追加される。この実施形態におけるオフセット値は、新たなゼロ論理アドレス３１８の論理アドレスに等しい。オフセット値が加算された結果、論理アドレスゼロに対するリクエストは、新たなゼロ論理アドレス３１８にマッピングされる。同様に、論理アドレス１に対するリクエストは、新たなゼロ論理アドレス３１８に１を加えた論理アドレスにマッピングされる。オフセット値の加算のために、ゼロ論理アドレス３２０と新たなゼロ論理アドレス３１８との間に位置するハードディスクドライブ３０６の固有論理アドレスは、アクセスが不可能となり、下位保護領域（ＬＰＡ）３１２が形成される。
【００４６】
最大設定モジュール３０２は、一実施形態において、ハードディスクドライブ３０６に最大設定コマンドを送るように構成されている。最大設定コマンドによって、ハードディスクドライブ３０６上で利用可能な上限論理アドレスが引き下げられる。その結果、最大設定コマンドが有効である間、新たな上限論理アドレス３１６より上に格納されたデータはアクセスから保護され、ホスト保護領域（ＨＰＡ）３０８が形成される。
【００４７】
最大設定モジュール３０２は、一実施形態において、ハードディスクドライブ３０６の、固有論理アドレス方式に対して相対的に新たな上限論理アドレス３１６を示す最大設定コマンドを発行する。例えば、最大設定モジュール３０２は、ハードディスクドライブ３０６の新たな上限論理アドレス３１６となる論理アドレスを示す最大設定コマンドを出力することができる。この例では、新たなゼロ論理アドレス３１８が形成されると、論理アドレスに対するリクエストが発行された時に、その論理アドレスが、新たな上限論理アドレス３１６より下にあるかどうかを判定するために、新たなゼロ論理アドレス３１８に等しいオフセット値が新たな上限論理アドレス３１６から減算される。
【００４８】
他の実施形態として、最大設定モジュール３０２は、新たなゼロ論理アドレス３１８に対して相対的に新たな上限論理アドレス３１６を示す最大設定コマンドを発行してもよい。例えば、最大設定モジュール３０２は、新たなゼロ論理アドレス３１８と新たな上限論理アドレス３１６との間に位置するアクセス可能領域３１０内にあることが許される複数の論理アドレスを示す最大設定コマンドを発行することができる。この例では、論理アドレスに対するリクエストが発行された時に、その論理アドレスが新たな上限論理アドレス３１６より下にあるかどうかを判定するために、新たな上限論理アドレス３１６からオフセット値が減算されることはない。
【００４９】
一実施形態において、ハードディスクドライブ３０６は、最大設定モジュール３０２とゼロ設定モジュール３０４とのそれぞれによって送られた最大設定コマンドとゼロ設定コマンドの影響下にあってよい。最大設定コマンドによって、アクセス可能な最上位の論理アドレスが、ハードディスクドライブ３０６の上限論理アドレス３１４から新たな上限論理アドレス３１６に引き下げられてもよい。最大設定コマンドの結果、ＨＰＡ３０８が、論理アドレスにおいて新たな上限論理アドレス３１６とハードディスクドライブ３０６の上限論理アドレス３１４との間に形成される。ＨＰＡ３０８内のデータはアクセスすることができなくなり、保護される。
【００５０】
ゼロ設定モジュール３０４によって発行されたゼロ設定コマンドによって、一実施形態では、ハードディスクドライブ３０６上の論理アドレスに対するリクエストにオフセット値が追加されることになる。ゼロ設定コマンドの影響下では、論理アドレスゼロへのアクセスのリクエストによって、新たなゼロ論理アドレス３１８へのアクセスが行われる。新たなゼロ論理アドレス３１８はハードディスクドライブ３０６の固有論理アドレス方式での、オフセット値に等しい論理アドレスに位置している。ゼロ設定コマンドの結果として、ＬＰＡ３１２が、ハードディスクドライブ３０６のゼロ論理アドレス３２０と新たなゼロ論理アドレス３１８との間に位置する論理アドレスに形成される。ＬＰＡ３１２内のデータはアクセスすることができなくなり、保護される。新たなゼロ論理アドレス３１８と新たな上限論理アドレス３１６との間に格納されたデータによってアクセス可能領域３１０が形成され、アクセス可能領域３１０では、ハードディスクドライブ３０６上に格納されたデータにアクセスすることができる。
【００５１】
図４は、ハードファイル４１０の１つまたは複数の領域を保護するための本発明による一実施形態のジオメトリテーブル４０２を示している。ジオメトリテーブル４０２には、１つ以上のハードファイル領域４１２−１〜４１２−ｎの論理アドレスに関するデータが格納されている。ジオメトリテーブル４０２は、領域インデックス４０４、オフセット値４０６、および最大値アドレス４０８の項目を含んでいる。
【００５２】
ハードファイル４１０は、一実施形態において、デジタル符号が施された任意の不揮発性記憶装置であってもよく、ＬＢＡのような論理アドレス方式でアクセスされてよい。ハードファイル４１０は、１つ以上のハードファイル領域４１２−１〜４１２−ｎを含んでいてよい。ハードファイル４１０上の個々のハードファイル領域４１２は、他のいずれのハードファイル領域４１２が、図３に関連して説明したような最大設定モジュール３０２とゼロ設定モジュール３０４の使用によって機能している間でも、アクセスから保護することができる。
【００５３】
例えば、ハードファイル領域４１２−２が機能している間、ゼロ設定モジュール３０４は、ハードファイル４１０の、ハードファイル領域２を示す４１２−２の最下位の論理アドレスに位置する新たなゼロ論理アドレス３１８より下のアドレスへのアクセスを防ぐゼロ設定コマンドを発行する。最大設定モジュール３０２は、ハードファイル４１０の、新たな上限論理アドレス３１６より上の論理アドレスへのアクセスを防ぐ最大設定コマンドを発行する。ゼロ設定コマンドと最大設定コマンドの結果として、ハードファイル領域２を示す４１２−２からなる論理アドレスのみがアクセス可能となる。
【００５４】
ジオメトリテーブル４０２は、一実施形態において、最大設定モジュール３０２とゼロ設定モジュール３０４に、新たな上限論理アドレス３１６と新たなゼロ論理アドレス３１８についての真のアドレスを示す情報を供給する。ジオメトリテーブル４０２は、領域インデックス４０４、各領域についてのオフセット値４０６、および各領域についての最大アドレス４０８を有してよい。
【００５５】
一実施形態において、領域インデックス４０４は、１つ以上のハードファイル領域４１２−１〜４１２−ｎのそれぞれについてのインデックスを含んでいる。例えば、領域インデックス４０４は、各ハードファイル領域４１２−１〜４１２−ｎのそれぞれについての番号を有していてよい。他の例では、領域インデックス４０４は、各ハードファイル領域４１２−１〜４１２−ｎのそれぞれについてテキスト列を有していてよい。
【００５６】
各領域についてのオフセット値４０６は、一実施形態において、各ハードファイル領域４１２−１〜４１２−ｎに関連づけられた新たなゼロ論理アドレス３１８に対応する値を含んでいる。例えば、各領域についてのオフセット値４０６は、領域インデックス４０４の各値に関連づけられた新たなゼロ論理アドレス３１８の、ハードファイル４１０での論理アドレスからなっていてよい。各領域についてのオフセット値４０６は、各ハードファイル領域４１２−１〜４１２−ｎが機能している時に、論理アドレスへのリクエストに追加されてよい。
【００５７】
各領域についての最大アドレス４０８は、一実施形態において、各ハードファイル領域４１２−１〜４１２−ｎに関連づけられた新たな上限論理アドレス３１６に対応する値を含んでいる。例えば、各領域についての最大アドレス４０８は、領域インデックス４０４の各値に関連づけられた新たな上限論理アドレス３１６の、ハードファイル４１０での論理アドレスからなっていてよい。他の実施形態では、各領域についての最大アドレス４０８は、新たなゼロ論理アドレス３１８と新たな上限論理アドレス３１６との間に位置する論理アドレスの数を示す値からなっていてよい。
【００５８】
当業者であればわかるように、本発明の範囲を逸脱することなく、様々な構成のジオメトリテーブル４０２を実装することができる。例えば、一実施形態において、各領域についてのオフセット値４０６のみが格納され、各領域についての最大アドレス４０８は、次のハードファイル領域４１２−１〜４１２−ｎ−１のオフセット値４０６より小さい論理アドレスの１つであると推測され、一方、ハードファイル領域４１２−ｎの最大アドレス４０８は、ハードファイル４１０の最大アドレスであると推測されるように、ジオメトリテーブル４０２が機能してもよい。同様に、他の実施形態では、各領域についての最大アドレス４０８のみが格納され、各領域についてのオフセット値４０６は、前のハードファイル領域４１２−２〜４１２−ｎの最大アドレス４０８より小さい論理アドレスの１つであると推測され、一方、ハードファイル領域４１２−１のオフセット値はゼロであると推測されるように、ジオメトリテーブル４０２が機能してもよい。
【００５９】
一実施形態では、ハードファイル４１０の、１つまたは複数のハードファイル領域４１２−１〜４１２−ｎを保護するためのジオメトリテーブル４０２の使用によって、複数のオペレーティングシステムを、それら複数のオペレーティングシステムのそれぞれが、他のいずれのオペレーティングによって使用されるデータにアクセスするのを防止しながら、同じハードファイル４１０上にインストールすることが可能になる。例えば、オペレーティングシステムが、１つ以上のハードファイル領域４１２−１〜４１２−ｎにインストールされてもよい。この例では、ハードファイル領域４１２−２にインストールされたオペレーティングシステムは、ハードファイル領域２を示す４１２−２内のデータにアクセスすることができるが、最大設定モジュール３０２によって発行された最大設定コマンドのために、このオペレーティングシステムは、ハードファイル領域３を示す４１２−３〜４１２−ｎ上にインストールされたオペレーティングシステムによって使用されるデータにはアクセスすることができない。同様に、ハードファイル領域２を示す４１２−２内のこのオペレーティングシステムは、ゼロ設定モジュール３０４によって発行されたゼロ設定コマンドのために、ハードファイル領域１を示す４１２−１上にインストールされたオペレーティングシステムによって使用されるデータにはアクセスすることができない。一実施形態では、ユーザが、複数のオペレーティングシステムの中から１つを選択してよい。その選択に応じて、最大設定モジュール３０２とゼロ設定モジュール３０４が、最大設定コマンドとゼロ設定コマンドを発行して、選択されたオペレーティングシステムに対応するハードファイル領域４１２を規定する。他の実施形態では、オペレーティングシステムの選択にはパスワードが要求される。
【００６０】
図５は、ハードファイル４１０の、１つ以上の領域を保護するための本発明にかかる一実施形態のロックモジュール５０２を示している。ロックモジュール５０２は、一実施形態において、コントローラモジュール５０４と協働してハードファイル４１０の複数の領域をアクセスから保護する。
【００６１】
一実施形態において、コントローラモジュール５０４はハードファイル４１０へのアクセスをコントロールする。コントローラモジュール５０４は、最大設定モジュール３０２、ゼロ設定モジュール３０４、およびジオメトリテーブル４０２を含んでいてよい。ハードファイル４１０は、１つ以上のハードファイル領域４１２−１〜４１２−ｎを含んでいてよい。最大設定モジュール３０２、ゼロ設定モジュール３０４、およびジオメトリテーブル４０２は、図４に関連して説明した、同様の符号を付したコンポーネントと同様に、ハードファイル４１０上の１つ以上のハードファイル領域４１２−１〜４１２−ｎへのアクセスをコントロールするように構成されているのが好ましい。
【００６２】
ロックモジュール５０２は、一実施形態において、コントローラモジュール５０４と共同してゼロ設定モジュール３０４の動作を制御する。ロックモジュール５０２は、ゼロ設定モジュール３０４によるオフセット値の変更を制限するように、ゼロ設定モジュール３０４をロックしてもよい。例えば、ハードファイル領域２を示す４１２−２上のオペレーティングシステムは、ゼロ設定モジュール３０４によって前に発行されたゼロ設定コマンドの下で動作してよい。この例では、新たなゼロ論理アドレス３１８より下の領域がアクセスから保護される。ゼロ設定モジュール３０４がロックモジュール５０２によって制限されると、新たなゼロ論理アドレス３１８を変更しようとする悪意のまたは不正な動作は拒否される。
【００６３】
一実施形態において、ロックモジュール５０２は、パスワードに応じてゼロ設定モジュールのロックを解除する。ロックモジュール５０２は、正しいパスワードに応じて、ゼロ設定モジュール３０４によるゼロ設定コマンドの発行を許可する。例えば、ゼロ設定コマンドは、オフセット値とパスワードによってリクエストされてよい。ロックモジュール５０２は、この例では、ゼロ設定モジュール３０４によるゼロ設定コマンドの発行を、パスワードに応じて許可し、ゼロ設定モジュール３０４は、供給されたオフセット値を利用して、新たなゼロ論理アドレス３１４を生成するゼロ設定コマンドを発行する。
【００６４】
他の実施形態では、ロックモジュール５０２は、ゼロ設定コマンドの発行に応答して、ゼロ設定モジュール３０２を自動的にロックするように構成される。例えば、ゼロ設定コマンドは、新たなゼロ論理アドレス３１８を設定するためにゼロ設定モジュール３０４によって発行されてよい。ゼロ設定コマンドの発行に応答して、ロックモジュール５０２はゼロ設定モジュール３０４をロックする。この例では、ゼロ設定コマンドの発行を示す新たなリクエストは拒否される。
【００６５】
当業者であればわかるように、本発明の範囲を逸脱することなく、様々な種類および構成のロックモジュール５０２を用いることができる。例えば、ロックモジュール５０２は、コントローラモジュール５０４から分離されていてもよい。他の実施形態では、ロックモジュール５０２は、コントローラモジュール５０４に組み込まれていてよい。さらに他の実施形態では、ロックモジュール５０２はゼロ設定モジュール３０４に組み込まれていてよい。さらに他の実施形態では、ロックモジュール５０２は、ハードファイル４１０の構成要素であってよい。
【００６６】
図６は、ＢＩＯＳ６０４によってアクセスされるジオメトリテーブル４０２を用いてハードディスクドライブ６０８の１つ以上の領域を保護する本発明にかかる一実施形態の装置６００を示している。装置６００は、コントローラモジュール６０２とＢＩＯＳ６０４を含んでいる。装置６００は、ハードディスクドライブ６０８のある領域について新たなゼロ論理アドレスおよび新たな上限論理アドレスを設定することによってハードディスクドライブ６０８の１つ以上の領域を保護する。
【００６７】
コントローラモジュール６０２は、一実施形態において、ハードディスクドライブ６０８へのアクセスをコントロールする。コントローラモジュール６０２は、最大設定モジュール３０２およびゼロ設定モジュール３０４を含んでいてよい。最大設定モジュール３０２とゼロ設定モジュール３０４は、図３に関連して説明した、同様の符号を付したコンポーネントと同様に構成されているのが好ましい。
【００６８】
ＢＩＯＳ６０４は、一実施形態において、コンピュータを、オペレーティングシステムのような他のソフトウェアが当該コンピュータのハードウェアにアクセスする状態にするように構成されたソフトウェアコードである。ＢＩＯＳ６０４は、不揮発性ＢＩＯＳメモリ（永久記憶部）６０６を含んでいてよい。ＢＩＯＳ６０４は、永久記憶部６０６によって格納されたジオメトリテーブル４０２にアクセスしてよい。ジオメトリテーブル４０２は、図４に関連して説明した、同様の符号を付した構成要素と同様に構成さているのが好ましい。ＢＩＯＳ６０４は、コントローラモジュール６０２と通信してよい。
【００６９】
一実施形態において、ＢＩＯＳ６０４は、永久記憶部６０６を読み取ることによってジオメトリテーブル４０２にアクセスし、ハードディスクドライブ６０８上のハードディスクドライブ領域についての情報を読み出す。ＢＩＯＳ６０４は、アクセス用のハードディスクドライブ領域を選択し、コントローラモジュール６０２と通信して、コントローラモジュール６０２に、ハードディスク６０８へのアクセスをハードディスクドライブ６０８の、選択された領域に制限するゼロ設定コマンドおよび／または最大設定コマンドを発行させる。例えば、ＢＩＯＳ６０４は、永久記憶部６０６を読み取ることによってジオメトリテーブル４０２にアクセスして、ハードディスクドライブ６０８上のハードディスクドライブ領域についてのオフセット値および新たな上限論理アドレスを決めてよい。ＢＩＯＳ６０４は、このオフセット値と新たな上限論理アドレスを用いて、コントローラモジュール６０２に、ゼロ設定コマンドと最大アドレス設定コマンドをハードディスクドライブ６０８へ送らせてもよい。ハードディスクドライブ６０８に送られたコマンドに応じて、ハードディスクドライブ６０８へのアクセスが、選択されたハードディスク領域に制限される。
【００７０】
当業者であればわかるように、本発明の範囲を逸脱することなく、様々な構成のＢＩＯＳ６０４がインストールされてよい。例えば、ＢＩＯＳ６０４は、ＢＩＯＳ６０４とは別に格納されたジオメトリテーブル４０２にアクセスしてもよい。一実施形態において、ジオメトリテーブル４０２はコントローラモジュール６０２と共に格納されていてよい。他の実施形態では、ジオメトリテーブル４０２はハードディスクドライブ６０８上に格納されていてよい。
【００７１】
図７は、ハードディスク７０２上に格納されたジオメトリテーブル４０２を用いてハードディスクドライブ７０２の、１つ以上の領域を保護するように構成された本発明にかかる一実施形態のハードディスクドライブ７０２を示している。ハードディスクドライブ７０２は、ジオメトリテーブル４０２、ブートローダ７０４、最大設定モジュール３０２、およびゼロ設定モジュール３０４を備えることができる。ジオメトリテーブル４０２は、図４に関連して説明した、同様の符号を付した構成要素と同様に構成されているのが好ましい。最大設定モジュール３０２およびゼロ設定モジュール３０４は、図３に関連して説明した、同様の符号を付した構成要素と同様に構成されているのが好ましい。ハードディスクドライブ７０２は、ハードディスクドライブ７０２の、１つ以上の領域へのアクセスを選択的に防止する。
【００７２】
ブートローダ７０４は、一実施形態において、コンピュータに、次のブートローダまたはオペレーティングシステムのような他のプログラムを実行させるように構成され、ハードディスク７０２上に格納されたソフトウェアコードである。ブートローダ７０４は、ジオメトリテーブル４０２にアクセスして、ハードディスクドライブ７０２上のハードディスクドライブ領域に関する情報を読み出す。ブートローダ７０４は、図４に関連して説明したように、アクセス用のハードディスクドライブ領域を選択し、最大設定モジュール３０２およびゼロ設定モジュール３０４と通信して、ハードディスクドライブ７０２へのアクセスを制限してよい。例えば、ブートローダ７０４は、ユーザに、ハードディスクドライブ７０２上に格納された複数のオペレーティングシステムの中から１つを選択させてもよい。選択に応じて、ブートローダ７０４は、ジオメトリテーブル４０２にアクセスして、選択されたオペレーティングシステムによって用いられるハードディスクドライブ領域を判定する。ブートローダ７０４は、さらに、最大設定モジュール３０２およびゼロ設定モジュール３０４に、最大設定コマンドおよびゼロ設定コマンドをそれぞれ発行させて、選択された領域へのアクセスを許可し、ハードディスクドライブ７０２の、残りの領域をアクセスから保護してもよい。加えて、ブートローダ７０４は、選択されたオペレーティングシステムを始動させてもよい。他の実施形態において、オペレーティングシステムの選択には、正しいパスワードの入力が求められる。
【００７３】
一実施形態において、ブートローダ７０４は、ハードディスクドライブ７０２上に位置するゼロ設定モジュール３０４と通信する。当業者であればわかるように、本発明の範囲を逸脱することなく、様々な種類および構成のブートローダ７０４およびゼロ設定モジュール３０４が用いられてよい。例えば、一実施形態において、ブートローダ７０４は、ハードディスクドライブ７０２から分離されたゼロ設定モジュール３０４と通信してもよい。他の実施形態では、ブートローダ７０４は、コントローラモジュールに組み込まれたゼロ設定モジュール３０４と通信してもよい。
【００７４】
以下に説明する模式的なフローチャートは論理フローチャートを概略的に示したものであり、そこに示されている順番および記載されているステップは、本発明にかかる方法の一実施形態を示す。例示する方法のステップ、またはその一部と機能、理論、または効果において等価な他のステップおよび方法を構想してもよい。また、そこで用いられているフォーマットおよび記号は、論理ステップを説明するためのものであり、本発明の範囲を制限するものではないと理解されたい。フローチャートにおいて様々な種類の矢印および線を用いている場合があるが、それらは、対応する方法の範囲を制限しないものと理解されたい。もちろん、幾つかの矢印または他のコネクタを、方法の理論的な流れのみを示すのに用いている場合もある。例えば、矢印は、記載する方法の、列挙された複数のステップ間の不特定の長さの待機期間または監視期間を示している場合がある。さらに、特定の方法が実行される順番は、図示の、対応するステップの順番に完全に忠実である場合もあれば、そうでない場合もある。
【００７５】
図８は、ハードファイルの１つ以上の領域を保護する一実施形態の方法８００の様々なステップを示す模式的なフローチャートである。方法８００は、ある実施形態において、図２〜７のシステムおよび装置を用いる方法であり、それらの図を参照して説明される。それでもなお、方法８００は、それ自体で独立しても実施可能であり、図２〜７に関連して上述した実施形態に特別に制限することを意図しているものではない。
【００７６】
図８に示すように、方法８００では、ハードファイル上の複数の領域のうちの１つの選択を受け付ける（８０２）。この選択は、どのハードファイル領域をアクセス可能にすべきかを示している。ハードファイルは、ハードディスクドライブ、フラッシュメモリ、光ディスクなどのような、デジタル符号が施された任意の不揮発性記憶装置からなっていてもよい。ハードファイル上の各領域は、ハードファイル上の論理アドレスの各グループによって規定されてよい。ハードファイル上の複数の領域は、ある実施形態において、複数のオペレーティングシステムを含んでいる。例えば、ハードファイルは、複数のディスクドライブ領域を有し、各ディスクドライブ領域にオペレーティングシステムが含まれているハードディスクドライブであってよい。
【００７７】
次に、方法８００では、ジオメトリテーブル４０２へのアクセスを行う（８０４）。ジオメトリテーブル４０２へのアクセス（８０４）は、一実施形態では、永久記憶メモリの読み取りを含んでいてよい。他の実施形態では、ジオメトリテーブル４０２へのアクセス（８０４）は、ハードファイル上に格納されたデータの読み込みを含んでいてよい。ジオメトリテーブル４０２は、ハードファイルの複数の領域に関係する論理アドレスに関する情報を有している。例えば、ジオメトリテーブル４０２は、ハードファイルの各領域についてのオフセットアドレスを含んでいてよい。この例では、ジオメトリテーブル４０２へのアクセス（８０４）は、ハードファイルの、選択された領域についてのオフセット値の読み出しを含んでいてよい。
【００７８】
次に、方法８００では、論理アドレスへのリクエストにオフセット値が追加される（８０６）。論理アドレスへのリクエストにオフセット値を追加することによって（８０６）、ハードファイルの固有アドレス方式での、オフセット値より下の論理アドレスはアクセスできなくなる。オフセット値は、ジオメトリテーブル４０２へのアクセス８０４によって得られ、ハードファイルの、選択された領域についての新たなゼロ論理アドレスを規定する。例えば、論理アドレスゼロへのリクエストは、そのリクエストにオフセット値を追加し（８０６）、方法８００では、ハードファイルの固有アドレス方式での、オフセット値に等しい論理アドレスへのアクセスを行う。一実施形態において、論理アドレスへのリクエストへのオフセット値の追加（８０６）は、ゼロ設定コマンドを用いることによって行う。
【００７９】
次に、方法８００では、最大論理アドレスより上の論理アドレスへのアクセスを拒否する（８０８）。一実施形態において、論理アドレスへのアクセスの拒否（８０８）は、新たな最大論理アドレスより上のアドレスをアクセス不可能にする最大設定コマンドを用いることによって行う。
【００８０】
本発明は、その精神、すなわち不可欠な特性から逸脱することなく、他の具体的な形態で実現してもよい。記載した実施形態は、あらゆる点で、例示であって制限を伴うものではないと考えられるべきものである。したがって、本発明の範囲は、上述した説明によってではなく添付の特許請求項によって示される。特許請求項と同等の意図および範囲内の全ての変更は、特許請求項の範囲内に含まれる。
【図面の簡単な説明】
【００８１】
【図１】ホスト保護領域を有するハードディスクドライブの一例を示す模式的なブロック図である。
【図２】ハードディスクドライブの１つ以上の領域を保護するための、本発明にかかる一実施形態のシステムを示す模式的なブロック図である。
【図３】ハードディスクドライブの１つ以上の領域を保護するための、本発明にかかる一実施形態の装置を示す模式的なブロック図である。
【図４】ハードファイルの１つ以上の領域を保護するための、本発明にかかる一実施形態のジオメトリテーブルを示す模式的なブロック図である。
【図５】ハードファイルの１つ以上の領域を保護するための、本発明にかかる一実施形態のロックモジュールを示す模式的なブロック図である。
【図６】ＢＩＯＳによってアクセスされるジオメトリテーブルを用いてハードディスクドライブの１つ以上の領域を保護するための、本発明にかかる一実施形態の装置を示す模式的なブロック図である。
【図７】ハードディスクドライブ上に格納されたジオメトリテーブルを用いてハードディスクドライブの１つ以上の領域を保護するように構成された、本発明にかかる一実施形態のハードディスクドライブを示す模式的なブロック図である。
【図８】ハードファイルの１つ以上の領域を保護するための、本発明にかかる一実施形態の方法を示す模式的なフローチャートである。
【符号の説明】
【００８２】
１００，２１０，３０６，６０８，７０２    ハードディスクドライブ
１０２，３０８    ホスト保護領域
１０４    下位領域
１０６    ゼロ論理アドレス
１０８，３１４    上限論理アドレス
１１０，３１６    新たな上限論理アドレス
２００    システム
２０２    マザーボード
２０４，５０４，６０２    コントローラモジュール
２０６，３０２    最大設定モジュール
２０８，３０４    ゼロ設定モジュール
３００    装置
３１０    アクセス可能領域
３１２    下位保護領域
３１８    新たなゼロ論理アドレス
４０２    ジオメトリテーブル
４０４    領域
４０６    オフセット値
４０８    最大アドレス
４１２−１〜ｎ    ハードファイル領域
５０２    ロックモジュール
６０４    ＢＩＯＳ
６０６    永久記憶部
７０４    ブートローダ
８００    方法
【図１】
2008146642.tif 000003
【図２】
2008146642.tif 000004
【図３】
2008146642.tif 000005
【図４】
2008146642.tif 000006
【図５】
2008146642.tif 000007
【図６】
2008146642.tif 000008
【図７】
2008146642.tif 000009
【図８】
2008146642.tif 000010