(57)【特許請求の範囲】
【請求項１】
ＧＰＴ（GUID Partition Table）方式のパーティションが作成されたストレージデバイスが接続されるとともに、プログラムに従った処理を実行する制御部を備え、前記制御部において機能するオペレーティングシステムによって前記ストレージデバイスが制御される情報処理装置であって、
前記制御部は、
前記ストレージデバイスがリムーバブルメディアデバイスであると前記オペレーティングシステムに認識させるためのデバイス種別情報を、前記オペレーティングシステムに伝達するデバイス種別情報伝達手段と、
前記ストレージデバイス上にある所定の記憶領域からデータを読み出し、当該読み出したデータ中に、前記ストレージデバイスに対してあらかじめ設定されて前記所定の記憶領域に記憶させてある「前記オペレーティングシステムに認識させたい前記ストレージデバイスの記憶容量である第一記憶容量」が含まれていると判定された場合に、前記読み出したデータ中から前記第一記憶容量を取得する第一記憶容量取得手段と、
前記デバイス種別伝達手段によって前記リムーバブルメディアデバイスであると前記オペレーティングシステムに認識された前記ストレージデバイスにおいて、メディアが交換されたと前記オペレーティングシステムに認識させるためのメディア交換情報を、前記オペレーティングシステムに伝達するメディア交換情報伝達手段と、
前記メディア交換情報伝達手段によって前記メディアが交換されたと前記オペレーティングシステムが認識するのに伴って、前記オペレーティングシステムが前記ストレージデバイスの記憶容量を再認識しようとしたときに、前記第一記憶容量取得手段によって取得された前記第一記憶容量が前記ストレージデバイスの記憶容量であると前記オペレーティングシステムに認識させるための記憶容量情報を、前記オペレーティングシステムに伝達する記憶容量情報伝達手段と、
前記記憶容量情報伝達手段により、記憶容量が前記第一記憶容量であると前記オペレーティングシステムに認識された前記ストレージデバイスにおいて、当該ストレージデバイスが備える記憶領域の始端側に作成される第一管理領域及び前記記憶領域の終端側に作成される第二管理領域のうち、前記第二管理領域の前記記憶領域内における記録位置を、前記第一記憶容量に基づいて特定して、前記第二管理領域に対するアクセスを行うデータ処理手段と
を備える情報処理装置。
【請求項２】
前記制御部は、
前記第一記憶容量取得手段によって前記所定の記憶領域から前記第一記憶容量を読み出すことができるようになる前の時点において、前記第一記憶容量取得手段とは異なる手順で、前記ストレージデバイスの実記憶容量に応じて設定される有効記憶容量である第二記憶容量を取得する第二記憶容量取得手段と、
前記第一記憶容量取得手段によって前記所定の記憶領域から前記第一記憶容量を読み出した後の時点で、前記第一記憶容量と前記第二記憶容量が一致するか否かを判定する判定手段と
を備え、
前記メディア交換情報伝達手段は、前記判定手段によって一致しないとの判定がなされた場合に、前記メディア交換情報を前記オペレーティングシステムに伝達する
請求項１に記載の情報処理装置。
【請求項３】
前記メディア交換情報伝達手段は、前記判定手段によって一致しないとの判定がなされた後、所定時間が経過するまで待機した後に、前記メディア交換情報を前記オペレーティングシステムに伝達する
請求項２に記載の情報処理装置。
【請求項４】
前記第一記憶容量取得手段は、前記ストレージデバイスの先頭ブロックにあるＭＢＲ（Master Boot Record）から、前記第一記憶容量を読み出す
請求項１〜請求項３のいずれか一項に記載の情報処理装置。
【請求項５】
ＧＰＴ（GUID Partition Table）方式のパーティションが作成されたストレージデバイスが接続されるとともに、プログラムに従った処理を実行する制御部を備え、前記制御部において機能するオペレーティングシステムによって前記ストレージデバイスが制御される情報処理装置において、前記制御部を、
前記ストレージデバイスがリムーバブルメディアデバイスであると前記オペレーティングシステムに認識させるためのデバイス種別情報を、前記オペレーティングシステムに伝達するデバイス種別情報伝達手段、
前記ストレージデバイス上にある所定の記憶領域からデータを読み出し、当該読み出したデータ中に、前記ストレージデバイスに対してあらかじめ設定されて前記所定の記憶領域に記憶させてある「前記オペレーティングシステムに認識させたい前記ストレージデバイスの記憶容量である第一記憶容量」が含まれていると判定された場合に、前記読み出したデータ中から前記第一記憶容量を取得する第一記憶容量取得手段、
前記デバイス種別伝達手段によって前記リムーバブルメディアデバイスであると前記オペレーティングシステムに認識された前記ストレージデバイスにおいて、メディアが交換されたと前記オペレーティングシステムに認識させるためのメディア交換情報を、前記オペレーティングシステムに伝達するメディア交換情報伝達手段、
前記メディア交換情報伝達手段によって前記メディアが交換されたと前記オペレーティングシステムが認識するのに伴って、前記オペレーティングシステムが前記ストレージデバイスの記憶容量を再認識しようとしたときに、前記第一記憶容量取得手段によって取得された前記第一記憶容量が前記ストレージデバイスの記憶容量であると前記オペレーティングシステムに認識させるための記憶容量情報を、前記オペレーティングシステムに伝達する記憶容量情報伝達手段、及び
前記記憶容量情報伝達手段により、記憶容量が前記第一記憶容量であると前記オペレーティングシステムに認識された前記ストレージデバイスにおいて、当該ストレージデバイスが備える記憶領域の始端側に作成される第一管理領域及び前記記憶領域の終端側に作成される第二管理領域のうち、前記第二管理領域の前記記憶領域内における記録位置を、前記第一記憶容量に基づいて特定して、前記第二管理領域に対するアクセスを行うデータ処理手段
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
従来、ストレージデバイスの記憶領域に作成されるパーティションの管理方式としては、ＭＢＲ（Master Boot Record）方式が広く用いられてきた。しかし、近年、ストレージデバイスの大容量化が進み、２ＴｉＢ（２×２40バイト）を超える記憶容量のストレージデバイスが登場したため、ＭＢＲ方式では適正なパーティション管理ができない状況に至っている。
【０００３】
そのため、大容量ストレージデバイスにも対応したパーティション管理方式として、既にＧＰＴ（GUID Partition Table）方式と呼ばれる管理方式が提案され、事実上の標準的な規格として普及しつつある（例えば、特許文献１の段落［００３２］及び［図１０］参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−９８８９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、ストレージデバイスの故障時に備えてストレージデバイスのバックアップを作成したい場合や、全く同一のデータが記録されたストレージデバイスを工業的に量産したい場合に、複製元のストレージデバイスから複製先のストレージデバイスへ記憶領域の内容を丸ごと複製することがある。
【０００６】
しかし、このような複製を行う際、ストレージデバイスの記憶領域にＧＰＴ方式でパーティションが作成されていると、以下のような問題が発生する。
まず、ストレージデバイスの記憶領域にＧＰＴ方式でパーティションが作成されている場合（図５中の複製元ストレージデバイス参照。）、記憶領域の先頭側には、プライマリパーティションテーブルと呼ばれる管理領域（以下、第一管理領域とも称する。）が確保される。また、記憶領域の末尾側には、バックアップパーティションテーブルと呼ばれる管理領域（以下、第二管理領域とも称する。）が確保される。
【０００７】
第二管理領域は、第一管理領域のバックアップとして利用され、例えば、第一管理領域内に不整合が見つかった場合には、第二管理領域が参照される。このとき、第二管理領域内に不整合が見つからなければ、第二管理領域のデータを利用して第一管理領域の修復を行うことができる。また、第二管理領域内にも不整合が見つかれば、データの信頼性が保証できないものと判断して、パーティションへのアクセスを禁止するなどの対処ができる。
【０００８】
このような前提のもと、ストレージデバイスの記憶領域を丸ごと複製する際には、複製先のストレージデバイスの実際の記憶容量（以下、実記憶容量とも称する。）が、複製元のストレージデバイスの実記憶容量以上であれば、複製を行うこと自体は可能である。
【０００９】
しかし、実記憶容量が異なるストレージデバイス間で複製を行うと、図５に例示するように、複製先のストレージデバイスにおいて「本来第二管理領域があるべき領域（図５参照）」には、複製元の第二管理領域と同等なデータが複製されないことになる。また、「複製元の第二管理領域と同等なデータが複製された領域（図５参照）」は存在するものの、その領域は本来第二管理領域があるべき領域とは別の記録位置（別の論理ブロック番号が付与された論理ブロック群）になる。
【００１０】
そのため、ＰＣ（Personal Computer）などの情報処理装置は、複製先のストレージデバイスにＧＰＴ方式でパーティションが作成されていると想定される場合、「本来第二管理領域があるべき領域」から所期のデータを読み込もうとするものの、不正なデータが読み込まれることになる。その結果、第一管理領域と第二管理領域との間でデータの不整合が生じ、ストレージデバイス上のパーティションに対して適正なアクセスができなくなるなどの問題を招くことになる。
【００１１】
こうした問題を回避する方法として、理想的には、複製元のストレージデバイスと複製先のストレージデバイスとで、実記憶容量が一致するものを使用すればよい。この場合、第二管理領域が記憶領域の末尾に複製されるので、上述のような問題は発生しない。
【００１２】
しかし、現実的には、実記憶容量が一致するストレージデバイスを用意するのは、必ずしも容易ではない、という問題がある。
例えば、市販されているストレージデバイスの記憶容量は、近年、２ＴＢ、２．５ＴＢ、３ＴＢ…といった具合に、概ね０．５ＴＢ区切りで容量の表記がなされているが、これらの表記は、厳密な意味で正確な実記憶容量を表す表記ではないことが多い。
【００１３】
一例を挙げると、２．５ＴＢと表記されているハードディスク装置の場合、業界の慣例として、少なくとも２．５×１０12バイトの記憶容量は確保されているが、更にいくらか端数分の記憶容量が上乗せされた実記憶容量となっていることが多い。
【００１４】
この端数分の記憶容量は、ハードディスク装置において採用されているプラッタ当たりの記憶容量や、エラー訂正用に確保される記憶容量などが一律ではないため、メーカーごとに異なっていたり、メーカーは同じでも型番違いの機種ごとに異なっていたりする。あるいは、メーカー及び型番まで同一の機種であっても、仕様変更の前後で実記憶容量が異なっていることもある。さらに、２．５ＴＢと表記されているストレージデバイスであっても、それが２．５ＴｉＢを意味する表記であれば、その記憶容量は２．５×２40バイトとなるので、この場合も、実記憶容量は２．５×１０12バイトより大きくなる。
【００１５】
つまり、表記上は２．５ＴＢとの表記がなされている製品であっても、厳密な意味では実記憶容量が若干異なる可能性があり、その場合、記憶領域中のセクタ数も変わり得るため、記憶領域の末尾（最終セクタ）の記録位置（最終セクタの論理ブロック番号）は同一にはならないことがある。
【００１６】
そのため、このような表記に頼って同一表記の製品を入手したとしても、厳密な意味で実記憶容量が一致するストレージデバイスであるかどうかの保証はなく、特に型番まで同一の機種であっても仕様変更の前後で実記憶容量が異なることがある状況下では、実記憶容量が一致するストレージデバイスを入手することは困難であった。
【００１７】
したがって、例えばバックアップを作成したくても、実記憶容量がぴったり一致するデバイスが見つからない以上、複製によるバックアップの作成を断念せざるを得なかった。また、ストレージデバイスを複製して工業的に同じデータが記憶された製品を量産する場合にも、実記憶容量がぴったり一致するデバイスが見つからない限り、複製による量産をすることはできなかった。
【００１８】
本発明は、上記問題を解決するためになされたものであり、その目的は、実記憶容量に若干の違いがあるストレージデバイス間で複製を行った場合であっても、ＧＰＴ方式で作成されたパーティションに適切にアクセス可能な情報処理装置と、そのような情報処理装置を構成するためのプログラムを提供することにある。
【課題を解決するための手段】
【００１９】
以下、本発明において採用した構成について説明する。
本発明の情報処理装置は、ＧＰＴ（GUID Partition Table）方式のパーティションが作成されたストレージデバイスが接続されるとともに、プログラムに従った処理を実行する制御部を備え、前記制御部において機能するオペレーティングシステムによって前記ストレージデバイスが制御される情報処理装置であって、前記制御部は、前記ストレージデバイスがリムーバブルメディアデバイスであると前記オペレーティングシステムに認識させるためのデバイス種別情報を、前記オペレーティングシステムに伝達するデバイス種別情報伝達手段と、前記ストレージデバイス上にある所定の記憶領域からデータを読み出し、当該読み出したデータ中に、前記ストレージデバイスに対してあらかじめ設定されて前記所定の記憶領域に記憶させてある「前記オペレーティングシステムに認識させたい前記ストレージデバイスの記憶容量である第一記憶容量」が含まれていると判定された場合に、前記読み出したデータ中から前記第一記憶容量を取得する第一記憶容量取得手段と、前記デバイス種別伝達手段によって前記リムーバブルメディアデバイスであると前記オペレーティングシステムに認識された前記ストレージデバイスにおいて、メディアが交換されたと前記オペレーティングシステムに認識させるためのメディア交換情報を、前記オペレーティングシステムに伝達するメディア交換情報伝達手段と、前記メディア交換情報伝達手段によって前記メディアが交換されたと前記オペレーティングシステムが認識するのに伴って、前記オペレーティングシステムが前記ストレージデバイスの記憶容量を再認識しようとしたときに、前記第一記憶容量取得手段によって取得された前記第一記憶容量が前記ストレージデバイスの記憶容量であると前記オペレーティングシステムに認識させるための記憶容量情報を、前記オペレーティングシステムに伝達する記憶容量情報伝達手段と、前記記憶容量情報伝達手段により、記憶容量が前記第一記憶容量であると前記オペレーティングシステムに認識された前記ストレージデバイスにおいて、当該ストレージデバイスが備える記憶領域の始端側に作成される第一管理領域及び前記記憶領域の終端側に作成される第二管理領域のうち、前記第二管理領域の前記記憶領域内における記録位置を、前記第一記憶容量に基づいて特定して、前記第二管理領域に対するアクセスを行うデータ処理手段とを備える。
【００２０】
このように構成された情報処理装置において、デバイス種別情報伝達手段は、ストレージデバイスがリムーバブルメディアデバイスか否かを問わず、ストレージデバイスがリムーバブルメディアデバイスである旨のデバイス種別情報をオペレーティングシステムに伝達する。これにより、オペレーティングシステムは、ストレージデバイスがリムーバブルメディアデバイスであると認識する。
【００２１】
そして、メディア交換情報伝達手段は、メディアが交換された旨のメディア交換情報をオペレーティングシステムに伝達する。これにより、オペレーティングシステムは、リムーバブルメディアデバイスであると認識しているストレージデバイスにおいて、メディアが交換されたと認識し、ストレージデバイスの記憶容量を再認識しようとする。
【００２２】
このときに、記憶容量情報伝達手段は、第一記憶容量取得手段によってストレージデバイス上にある所定の記憶領域から読み出された第一記憶容量がストレージデバイスの記憶容量である旨の記憶容量情報をオペレーティングシステムに伝達する。その結果、ストレージデバイスの実際の記憶容量がどのような値であるかにかかわらず、ストレージデバイス上にある所定の記憶領域から読み出された第一記憶容量が、ストレージデバイスの記憶容量としてオペレーティングシステムに認識されることになる。
【００２３】
データ処理手段は、記憶領域の終端側にある第二管理領域に対するアクセスを行う際には、オペレーティングシステムに再認識されたストレージデバイス記憶容量に基づいて、第二管理領域の記憶領域内における記録位置を特定して、第二管理領域に対するアクセスを行う。
【００２４】
そのため、実際の記憶容量に多少の違いがあるストレージデバイスであっても、上記第一記憶容量として同じ値を記憶させておけば、同じ第一記憶容量に基づいて同じ記録位置に第二管理領域が存在するものと認識することになる。
【００２５】
したがって、このような情報処理装置によれば、ストレージデバイスの実際の記憶容量が異なっていても、同じ第一記憶容量が設定されるストレージデバイス同士であれば、一方のストレージデバイスの記憶内容を他方のストレージデバイスへそのまま複製して利用することが可能となる。
【００２６】
より詳しく説明すると、実際の記憶容量に基づいて第二管理領域の記録位置（論理ブロック番号；以下同様。）を特定する一般的なＧＰＴ方式対応の情報処理装置の場合、実際の記憶容量が異なれば第二記憶領域も異なる記録位置にあると認識する。そのため、実際の記憶容量が異なるストレージデバイス間で一方の記憶内容を他方へそのまま複製しても、複製先で第二記憶領域と認識される記録位置には、複製元の第二記憶領域が存在しないことになり、そのままでは、第二管理領域に対するアクセスを正常に実施することはできなくなる。
【００２７】
これに対し、本発明においては、上述した第一記憶容量に基づいて第二管理領域の記録位置を特定するので、実際の記憶容量が異なっていても、第一記憶容量が同じであれば第二記憶領域は同じ記録位置にあると認識する。そのため、第一記憶容量として同じ値が設定されたストレージデバイス間で一方の記憶内容を他方へそのまま複製すれば、複製先で第二記憶領域と認識される記録位置には、複製元の第二記憶領域が存在することになり、第二管理領域に対するアクセスを正常に実施することができる。
【００２８】
よって、このような本発明の情報処理装置であれば、ストレージデバイスの実際の記憶容量に若干の違いがあっても、複製されたストレージデバイスを適正に利用することができ、これにより、例えばバックアップを作成する際に、実際の記憶容量がぴったり一致するデバイスを利用しなくても済むようになる。また、ストレージデバイスを複製して工業的に同じ製品を量産する場合にも、実際の記憶容量がぴったり一致するデバイスを利用することなく、所期の製品を量産することができるようになる。
【００２９】
ところで、本発明の情報処理装置において、前記制御部は、前記第一記憶容量取得手段によって前記所定の記憶領域から前記第一記憶容量を読み出すことができるようになる前の時点において、前記第一記憶容量取得手段とは異なる手順で、前記ストレージデバイスの実記憶容量に応じて設定される有効記憶容量である第二記憶容量を取得する第二記憶容量取得手段と、前記第一記憶容量取得手段によって前記所定の記憶領域から前記第一記憶容量を読み出した後の時点で、前記第一記憶容量と前記第二記憶容量が一致するか否かを判定する判定手段とを備え、前記メディア交換情報伝達手段は、前記判定手段によって一致しないとの判定がなされた場合に、前記メディア交換情報を前記オペレーティングシステムに伝達することが好ましい。
【００３０】
このように構成された情報処理装置によれば、ストレージデバイスから第一記憶容量を読み出すことができるようになる前の時点において、第二記憶容量取得手段が、第一記憶容量取得手段とは異なる手順で、ストレージデバイスの実記憶容量に応じて設定される有効記憶容量である第二記憶容量を取得する。この第二記憶容量は、オペレーティングシステム側の都合、あるいはその他の事情で、上記第一記憶容量を取得する前の時点で認識されてしまう記憶容量である。
【００３１】
このような第二記憶容量が取得された場合でも、判定手段は、第一記憶容量取得手段によって所定の記憶領域から第一記憶容量を読み出した後の時点で、第一記憶容量と第二記憶容量が一致するか否かを判定する。そして、メディア交換情報伝達手段は、判定手段によって一致しないとの判定がなされた場合に、上述のメディア交換情報をオペレーティングシステムに伝達する。
【００３２】
したがって、第一記憶容量と第二記憶容量が不一致となった場合でも、それが判明したらメディア交換が行われた旨のメディア交換情報がオペレーティングシステムに伝達され、これにより、オペレーティングシステムは、リムーバブルメディアデバイスであると認識しているストレージデバイスにおいて、メディアが交換されたと認識し、ストレージデバイスの記憶容量を再認識しようとする。
【００３３】
よって、以降は、記憶容量情報伝達手段が、第一記憶容量がストレージデバイスの記憶容量である旨の記憶容量情報をオペレーティングシステムに伝達し、その結果、ストレージデバイスの実際の記憶容量がどのような値であるかにかかわらず、第一記憶容量をストレージデバイスの記憶容量としてオペレーティングシステムに認識させることができる。
【００３４】
また、本発明の情報処理装置において、前記メディア交換情報伝達手段は、前記判定手段によって一致しないとの判定がなされた後、所定時間が経過するまで待機した後に、前記メディア交換情報を前記オペレーティングシステムに伝達することが好ましい。
【００３５】
このように構成された情報処理装置によれば、判定手段によって一致しないとの判定がなされた後、所定時間が経過してから、メディア交換情報がオペレーティングシステムに伝達される。この所定時間は、ストレージデバイスへのアクセスが続く時間を考慮して、それよりも十分に長い時間とされる。
【００３６】
このようなタイミングでメディア交換情報がオペレーティングシステムに伝達されれば、ストレージデバイスへのアクセスが続くときにメディア交換情報が伝達されてしまうのを回避することができる。したがって、ストレージデバイスへのアクセスが続いているにもかかわらず、メディア交換がなされてしまうという状況にはならず、このような状況となったことに起因するトラブルや不整合を防止ないし抑制することができる。
【００３７】
また、本発明の情報処理装置において、前記第一記憶容量取得手段は、前記ストレージデバイスの先頭ブロックにあるＭＢＲ（Master Boot Record）から、前記第一記憶容量を読み出すことが好ましい。
【００３８】
このように構成された情報処理装置によれば、ＭＢＲ方式でパーティションを管理しているストレージデバイスとの整合性を確保するために用意されているダミーのＭＢＲを有効に利用して、第一記憶容量を格納しておくことができる。
【００３９】
さらに、本発明のプログラムは、ＧＰＴ（GUID Partition Table）方式のパーティションが作成されたストレージデバイスが接続されるとともに、プログラムに従った処理を実行する制御部を備え、前記制御部において機能するオペレーティングシステムによって前記ストレージデバイスが制御される情報処理装置において、前記制御部を、前記ストレージデバイスがリムーバブルメディアデバイスであると前記オペレーティングシステムに認識させるためのデバイス種別情報を、前記オペレーティングシステムに伝達するデバイス種別情報伝達手段、前記ストレージデバイス上にある所定の記憶領域からデータを読み出し、当該読み出したデータ中に、前記ストレージデバイスに対してあらかじめ設定されて前記所定の記憶領域に記憶させてある「前記オペレーティングシステムに認識させたい前記ストレージデバイスの記憶容量である第一記憶容量」が含まれていると判定された場合に、前記読み出したデータ中から前記第一記憶容量を取得する第一記憶容量取得手段、前記デバイス種別伝達手段によって前記リムーバブルメディアデバイスであると前記オペレーティングシステムに認識された前記ストレージデバイスにおいて、メディアが交換されたと前記オペレーティングシステムに認識させるためのメディア交換情報を、前記オペレーティングシステムに伝達するメディア交換情報伝達手段、前記メディア交換情報伝達手段によって前記メディアが交換されたと前記オペレーティングシステムが認識するのに伴って、前記オペレーティングシステムが前記ストレージデバイスの記憶容量を再認識しようとしたときに、前記第一記憶容量取得手段によって取得された前記第一記憶容量が前記ストレージデバイスの記憶容量であると前記オペレーティングシステムに認識させるための記憶容量情報を、前記オペレーティングシステムに伝達する記憶容量情報伝達手段、及び前記記憶容量情報伝達手段により、記憶容量が前記第一記憶容量であると前記オペレーティングシステムに認識された前記ストレージデバイスにおいて、当該ストレージデバイスが備える記憶領域の始端側に作成される第一管理領域及び前記記憶領域の終端側に作成される第二管理領域のうち、前記第二管理領域の前記記憶領域内における記録位置を、前記第一記憶容量に基づいて特定して、前記第二管理領域に対するアクセスを行うデータ処理手段として機能させる。
【００４０】
このようなプログラムにより、情報処理装置が備える制御部を上記各手段として機能させれば、本発明の情報処理装置を構成することができる。
【図面の簡単な説明】
【００４１】
【図１】ストレージデバイスの一例として例示するハードディスク装置に対するアクセスを行うＰＣのブロック図。
【図２】ＰＣが実行する処理のフローチャート。
【図３】Ｓ１０３の処理の詳細を示すフローチャート。
【図４】設定された有効記憶容量と実記憶容量との関係を示す説明図。
【図５】複製元と複製先のストレージデバイスそれぞれの記憶領域におけるデータ構造を示す説明図。
【発明を実施するための形態】
【００４２】
次に、本発明の実施形態について一例を挙げて説明する。
［システム全体の構成］
図１は、パーソナルコンピュータ１（以下、ＰＣ１という）の概略的な構成を示すブロック図である。このＰＣ１は、図１に示すように、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ＨＤＤ１４（ハードディスク装置１４）、操作部１５、表示部１６、及び通信インターフェース１７など、この種のＰＣとして周知の各種構成を備えている。
【００４３】
これらのうち、ＣＰＵ１１、ＲＯＭ１２、及びＲＡＭ１３は、ＰＣ１の各部を制御する制御部１Ａを構成している。ＰＣ１には、ＯＳとしてＬｉｎｕｘ（登録商標；以下同様。）が搭載されており、制御部１Ａにおいて各種プログラムに従った処理がＣＰＵ１１によって実行されることにより、制御部１ＡがＯＳを機能させる。
【００４４】
また、このＰＣ１において、ＨＤＤ１４の記憶領域には、実記憶容量よりもいくらか小さい有効記憶容量が設定されていて、この有効記憶容量の記憶領域を対象にして、ＧＰＴ方式でパーティションが作成されている。ここで、実記憶容量とは、ＨＤＤ１４が本来備えている記憶容量のことである。また、有効記憶容量とは、ＰＣ１の備えるＯＳがＨＤＤ１４の記憶容量として認識する記憶容量のことである。
【００４５】
一般的なＰＣの場合、ここでいう実記憶容量と有効記憶容量は一致するのが普通である。しかし、本実施形態のＰＣ１は、２ＴｉＢを超える記憶容量を持つストレージデバイスについては、後述する処理により、実記憶容量よりもいくらか小さい記憶容量を有効記憶容量として認識する。そして、以降、ストレージデバイスは、有効記憶容量の記憶領域を備えるデバイスとして扱われ、実記憶容量と有効記憶容量との差分となる領域については、ＯＳに認識されない領域（空き領域）とされる。
【００４６】
［ＨＤＤの記憶容量の認識に関連する処理］
次に、ＰＣ１において実行されるＨＤＤ１４の記憶容量の認識に関連する処理について、図２及び図３に基づいて説明する。図２に示す処理は、ＰＣ１において電源スイッチがＯＮとされたときに実行される処理である。
【００４７】
この処理を開始すると、ＰＣ１は、電源を起動し（Ｓ１０１）、その後、ＨＤＤ１４のデバイス種別情報を取得したら、ＨＤＤ１４のデバイス種別をリムーバブルディスクとフェイク設定する（Ｓ１０２）。
【００４８】
より詳しくは、本実施形態の場合、ＨＤＤ１４としてはＳＣＳＩデバイスとして認識されるストレージデバイスが利用されている。そのため、Ｓ１０２では、ＳＣＳＩコマンドの一つであるinquiryコマンドを発行することで、デバイス種別情報を含む様々な情報を取得する。ここで、ＨＤＤ１４は、本来はリムーバブルディスクではないので、inquiryコマンドによってデバイス種別情報を取得すると、デバイス種別情報としては、リムーバブルディスクではない旨の情報が得られる。しかし、Ｓ１０２では、取得したデバイス種別情報の一部を強制的に書き換える（具体的には、リムーバブルディスクであるか否かを示すビットをオンにする）ことにより、ＨＤＤ１４のデバイス種別をリムーバブルディスクとフェイク設定する。
【００４９】
続いて、ＰＣ１は、ＨＤＤ１４の有効記憶容量情報を取得して、結果を「データ＃１」に保存する（Ｓ１０３）。具体的には、本実施形態の場合、Ｓ１０３では図３に示すライブラリを呼び出す。図３に示すライブラリを呼び出すと、Ｓ２０１へと進むことになり、ＰＣ１は、ストレージデバイスの実記憶容量を取得する（Ｓ２０１）。この実記憶容量は、ＳＣＳＩコマンドの一つであるRead Capacityコマンドを発行することにより取得することができる。そして、実記憶容量を取得したら、ＰＣ１は、その実記憶容量に応じた有効記憶容量を設定する（Ｓ２０２）。
【００５０】
具体的には、本実施形態の場合、実記憶容量Ｘ、余裕分容量Ｙ＝１ＧＢ（１×１０9バイト）、セクタサイズＺ＝５１２バイトに基づいて、以下のルール（※１）〜（※３）で有効記憶容量を設定する。
【００５１】
まず、（※１）実記憶容量が「２ＴｉＢ（２×２40バイト）」以下であれば、その実記憶容量と同一値を有効記憶容量として設定する。また、（※２）実記憶容量が「２ＴｉＢ（２×２40バイト）」を超え「ＩＮＴ（（２．５ＴＢ（２．５×１０12バイト）−余裕分容量Ｙ）／セクタサイズＺ）＊セクタサイズＺ」未満であれば、２ＴｉＢ（２×２40バイト）を有効記憶容量として設定する。なお、上記数式中、ＩＮＴ（α）は、αの小数点以下を切り捨てて整数化した値を意味する（以下同様。）。
【００５２】
さらに、（※３）実記憶容量が「ＩＮＴ（（ｎＴＢ（ｎ×１０12バイト）−余裕分容量Ｙ）／セクタサイズＺ）＊セクタサイズＺ」以上で「ＩＮＴ（（（ｎ＋０．５）ＴＢ（（ｎ＋０．５）×１０12バイト）−余裕分容量Ｙ）／セクタサイズＺ）＊セクタサイズＺ」未満であれば、「ＩＮＴ（（ｎＴＢ（ｎ×１０12バイト）−余裕分容量Ｙ）／セクタサイズＺ）＊セクタサイズＺ」を有効記憶容量として設定する（ｎは、初期値２．５，増分０．５として、２．５，３．０，３．５，４．０，４．５…と０．５ずつ増える値。）。
【００５３】
例えば、実記憶容量が「ＩＮＴ（（２．５ＴＢ（２．５×１０12バイト）−余裕分容量Ｙ）／セクタサイズＺ）＊セクタサイズＺ」以上で「ＩＮＴ（（３．０ＴＢ（３．０×１０12バイト）−余裕分容量Ｙ）／セクタサイズＺ）＊セクタサイズＺ」未満であれば、「ＩＮＴ（（２．５ＴＢ（２．５×１０12バイト）−余裕分容量Ｙ）／セクタサイズＺ）＊セクタサイズＺ」が有効記憶容量として設定される。
【００５４】
以上のようなルール（※１）〜（※３）で有効記憶容量を設定することにより、実記憶容量が２．０ＴｉＢを超えている場合、実記憶容量が様々な値となっていても、一定のルールに従って端数分の記憶容量が切り捨てられ、その切り捨て後の記憶容量が有効記憶容量として設定される。
【００５５】
なお、本実施形態において、余裕分容量Ｙは１ＧＢとしてあるが、これはｎＴＢと表記されているストレージデバイスであっても、１ＧＢ未満の範囲内で記憶容量が不足している可能性を想定し、その想定の範囲内で最も容量が少ないデバイスを基準にして、記憶容量の切り捨てを行うために設定した値である。したがって、ｎＴＢと表記されているストレージデバイスであれば、必ず少なくともｎＴＢの記憶容量が保証されるのであれば、余裕分容量Ｙを０（ゼロ）としてもよいし、逆に１ＧＢを超える記憶容量が不足する可能性があるなら、余裕分容量Ｙとして１ＧＢを超える値を設定してもよい。
【００５６】
また、セクタサイズＺは５１２バイトとしてあるが、これも実際に採用されているセクタサイズに応じて任意に変更してもよく、例えば４ＫｉＢ（４×２10バイト）セクタを採用していれば、セクタサイズＺは４ＫｉＢ（４×２10バイト）とすればよい。
【００５７】
以上のような手法で有効記憶容量を設定すると、図４に例示するように、実記憶容量に若干のばらつきがあるストレージデバイスであっても、その有効記憶容量としては同一値が設定されることになる。また、本実施形態の場合、実記憶容量が０．５ＴＢ増えるごとに、設定される有効記憶容量が変わるので、有効記憶容量の設定に伴って切り捨てられることになる記憶容量（図４中の斜線部の領域）は、最大でも概ね０．５ＴＢであり、それ以上の記憶容量をいたずらに切り捨ててしまうことはない。
【００５８】
さて、以上のようなＳ２０２を終えたら、続いて、ＰＣ１は、設定した有効記憶容量を上位モジュールに返して（Ｓ２０３）、この処理を終える。上位モジュールにおいて有効記憶容量を取得したＰＣ１は、Ｓ１０３において、その結果をデータ＃１に保存する。
【００５９】
こうしてＳ１０３を終えたら、続いてＰＣ１は、「容量チェンジフラグ」がセットされているか否かを判断する（Ｓ１０４）。この「容量チェンジフラグ」は、後述する処理の中でセットされるフラグであり、Ｓ１０４を初めて実行する段階ではセットされていないので（Ｓ１０４：リセット）、この場合はＳ１０５へ進む。
【００６０】
Ｓ１０５では、ＰＣ１は、ＭＢＲを読み出し、データ＃２に保存する（Ｓ１０５）。ここでいうＭＢＲは、図１中に示したダミーＭＢＲ領域のことであり、本実施形態においては、ダミーＭＢＲ領域内にフェイク情報領域が確保されている。
【００６１】
より詳しくは、本実施形態の場合、ＨＤＤ１４にはＧＰＴ方式でパーティションが作成されているため、ダミーＭＢＲ領域には、ＭＢＲ方式に準じた形式でデータ領域が確保されているものの、実際には利用されていない未使用領域が残されている。そこで、本実施形態においては、その未使用領域を活用して、フェイク情報領域が確保されている。フェイク情報領域には、フェイク情報領域である旨を示すチャンクデータ、ＨＤＤ１４の有効記憶容量（フェイク容量）を示すセクタ数などが格納されている（図１参照。）。Ｓ１０５では、このようなＭＢＲを読み出して、それをデータ＃２に保存する。
【００６２】
続いて、ＰＣ１は、データ＃２中に記憶容量情報が含まれているか否かを判断する（Ｓ１０６）。具体的には、フェイク情報領域である旨を示すチャンクデータとして有効な情報が格納されており、かつ、ＨＤＤ１４の有効記憶容量（フェイク容量）を示すセクタ数が格納されているか否かを判断する。
【００６３】
ここで、データ＃２中に記憶容量情報が含まれていなければ（Ｓ１０６：なし）、本処理を終了する。この場合、Ｓ１０３で取得された有効記憶容量情報の示す記憶容量が、ＨＤＤ１４の記憶容量としてＰＣ１に認識されることになる。
【００６４】
一方、Ｓ１０６において、データ＃２中に記憶容量情報が含まれていた場合（Ｓ１０６：あり）、ＰＣ１は、データ＃１とデータ＃２とで記憶容量情報が一致するか否かを判断する（Ｓ１０７）。
【００６５】
ここで、データ＃１とデータ＃２とで記憶容量情報が一致する場合は（Ｓ１０７：一致）、本処理を終了する。この場合は、記憶容量情報が一致しているので、詳しくは後述するが、後述する処理を実行する必要はなく、一致すると判断された記憶容量情報の示す記憶容量が、ＨＤＤ１４の記憶容量としてＰＣ１に認識されることになる。
【００６６】
一方、Ｓ１０７において、データ＃１とデータ＃２とで記憶容量情報が一致しない場合（Ｓ１０７：不一致）、ＰＣ１は、「容量チェンジフラグ」をセットする（Ｓ１０８）。この「容量チェンジフラグ」は、ＰＣ１がＳ１０３において既に認識したＨＤＤ１４の記憶容量と、ＰＣ１に認識させたいＨＤＤ１４の記憶容量とに違いがある場合に、セットされるフラグである。
【００６７】
ただし、このフラグをセットした段階では、パーティションシステム関連の様々な処理が実行されている状態にある。そのため、ＰＣ１にＨＤＤ１４の記憶容量を再認識させるための処理を直ちには実行せず、ＰＣ１は、パーティションシステムが定常状態になるまで所定時間待機する（Ｓ１０９）。なお、この所定時間は、ＣＰＵ１１やＨＤＤ１４の性能に応じて変わるので、試験的に実測値を求めるなどの手法で十分な長さの時間を設定すればよい。
【００６８】
さて、Ｓ１０９で所定時間の待機を終えたら、ＰＣ１は、inquiryコマンド・request sense以外の全ＳＣＳＩコマンドに対し、check conditionステータスを返し、request senseコマンドに対し、medium changedステータスを返す（Ｓ１１０）。
【００６９】
このＳ１１０の処理は、リムーバブルディスクにおいて、リムーバブルメディアが取り出された状態を擬似的に再現した処理である。ＨＤＤ１４は、本来はリムーバブルディスクではないので、当然ながら、実際にはリムーバブルメディアが取り出された状態にもならない。しかし、本実施形態では、Ｓ１０２においてフェイク設定を行ってあるため、Ｓ１１０の処理を実行することで、ＰＣ１にリムーバブルメディアが取り出されたと認識させることができる。
【００７０】
ＰＣ１にリムーバブルメディアが取り出されたと認識させると、ＰＣ１は、ＨＤＤ１４の記憶容量を再認識するため、Ｓ１０３へと戻る。このような処理は、ＰＣ１が備えるＯＳにおける既存の処理であるが、本実施形態では、ＨＤＤ１４がリムーバブルディスクであるとフェイク設定することで、上記既存の処理を利用してＨＤＤ１４の記憶容量を再認識させている。
【００７１】
このような手法を使ってあえてＨＤＤ１４の記憶容量を再認識させているのは、ＰＣ１が備えるＯＳにおける既存の処理において、Ｓ１０３とＳ１０５の処理順序が図２に示したような順序になっているためである。すなわち、ＰＣ１が備えるＯＳにおいては、ＨＤＤ１４のＭＢＲが読み出し可能となる段階（Ｓ１０５を実行する段階）よりも前の段階（Ｓ１０３を実行する段階）で、ＨＤＤ１４の記憶容量を取得する。そのため、Ｓ１０５において、ＭＢＲからフェイク容量を読み出したとしても、ＨＤＤ１４の記憶容量はＳ１０３の段階で認識済みとなっており、通常は、その認識済み記憶容量の変更を行うことができない。
【００７２】
これに対し、本実施形態においては、Ｓ１０２の段階で、ＨＤＤ１４のデバイス種別がリムーバブルディスクである旨のフェイク情報をあらかじめ設定しておくことで、ＨＤＤ１４の記憶容量が動的に変化し得る旨をＯＳに認識させている。そして、Ｓ１１０では、リムーバブルディスク交換された状況を擬似的に作り出すことで、Ｓ１０５を実行した後に、再びＳ１０３を実行させている。こうすることで、本来であれば、Ｓ１０３，Ｓ１０５の順序でしか実行されない処理を、更にＳ１０５，Ｓ１０３の順序で再実行させている。
【００７３】
さて、こうしてＳ１０３へ戻った後、Ｓ１０４へと進むと、このときは「容量チェンジフラグ」が、Ｓ１０８においてセットされた後の段階となるので（Ｓ１０４：セット）、この場合は、データ＃２の記憶容量情報をデータ＃１に保存して、「容量チェンジフラグ」をリセットする（Ｓ１１１）。このＳ１１１の処理により、データ＃１の記憶容量情報はデータ＃２の記憶容量情報と一致する情報に書き換えられる。
【００７４】
以降は、Ｓ１０５，Ｓ１０６：あり、と進むと、Ｓ１０７においては、Ｓ１１１を実行している結果、必ずデータ＃１とデータ＃２とで記憶容量情報が一致するので（Ｓ１０７：一致）、本処理を終了することになる。
【００７５】
以上説明したような処理を実行するＰＣ１では、ＨＤＤ１４にＧＰＴ方式でパーティションが作成されていると識別した場合に、記憶領域の先頭側にある第一管理領域と、記憶領域の末尾側にある第二管理領域からデータを読み出して、いずれか一方又は両方のデータが不正であった場合に、不正なデータを修復する処理や、不正なデータに基づくストレージデバイスへのアクセスを禁止する処理などを実行する。
【００７６】
その際、ＰＣ１は、上述した処理において設定される有効記憶容量に基づいて第二管理領域の記録位置を特定する。このとき、ダミーＭＢＲ領域内にＨＤＤ１４のフェイク容量が格納されていれば、実記憶容量がどのような値であるかにかかわらず、ＰＣ１はフェイク容量をＨＤＤ１４の有効記憶容量として認識する。また、ダミーＭＢＲ領域内にＨＤＤ１４のフェイク容量が格納されていない場合でも、Ｓ２０１〜Ｓ２０３によって設定される記憶容量をＨＤＤ１４の有効記憶容量として認識する。
【００７７】
そのため、図４に例示したように、実記憶容量に若干のばらつきがあるストレージデバイスであっても、ダミーＭＢＲ領域内に同一のフェイク容量が格納されていれば、ＰＣ１は、有効記憶領域の末尾に第二管理領域があるものと認識することになり、同一記録位置から第二管理領域を読み取ることになる。
【００７８】
また、ダミーＭＢＲ領域内にフェイク容量が格納されていない場合でも、Ｓ２０１〜Ｓ２０３によって設定される記憶容量をＨＤＤ１４の有効記憶容量として認識すれば、０．５ＴＢ未満の端数は丸められて、ＰＣ１は、有効記憶領域の末尾に第二管理領域があるものと認識することになり、同一記録位置から第二管理領域を読み取ることになる。
【００７９】
したがって、このＰＣ１の場合、図４に例示したようなストレージデバイスであれば、実記憶容量には違いがあるものの、これらのストレージデバイス間で記憶領域を丸ごと複写しても、適正な第二記憶領域を認識することができる。
【００８０】
なお、図２に示す処理を終了すると、識別したパーティション管理方式に従って、各パーティション内のデータにアクセスする処理などが行われるが、それらの具体的な処理については種々考えられ、それらの処理内容自体は本発明の要部とは直接関連しないので、これ以上の説明は省略する。
【００８１】
［効果］
以上説明したように、上記ＰＣ１によれば、実記憶容量に多少の違いがあっても、同じ有効記憶容量が設定されるストレージデバイスであれば、同じ記録位置に第二管理領域が存在するものと認識する。
【００８２】
したがって、ＧＰＴ方式でパーティションが作成されても、同じ有効記憶容量が設定されるストレージデバイス同士であれば、一方のストレージデバイスの記憶内容を他方のストレージデバイスへそのまま複製して利用することが可能となる。
【００８３】
よって、例えばバックアップを作成する際に、実記憶容量がぴったり一致するデバイスを利用しなくても済むようになる。また、ストレージデバイスを複製して工業的に同じデータが記憶された製品を量産する場合にも、実記憶容量がぴったり一致するデバイスを利用することなく、所期の製品を量産することができるようになる。
【００８４】
［その他の実施形態］
以上、本発明の実施形態について説明したが、本発明は上記の具体的な一実施形態に限定されず、この他にも種々の形態で実施することができる。
【００８５】
例えば、上記実施形態では、ＧＰＴ方式のパーティションが作成されることとなるストレージデバイスとして、ＨＤＤ１４を例示したが、ハードディスク装置以外のストレージデバイスを対象とする場合にも、本発明を適用できる。例えば、ハードディスク装置と同等な接続インターフェースを備えたＳＳＤ（Solid State Drive）、コンパクトフラッシュ（登録商標；以下同様。）、又はコンパクトフラッシュと同等な接続インターフェースを備えたハードディスク装置などを対象に、本発明を適用してもよい。
【００８６】
また、上記実施形態では、図３に示す処理を上位モジュールから呼び出されるライブラリとして構成してあったが、同等な処理を上位モジュールであるカーネルモジュールの処理として組み込んであってもよい。
【００８７】
さらに、上記実施形態では、ダミーＭＢＲ領域内にＨＤＤ１４のフェイク容量が格納されていない場合でも、Ｓ２０１〜Ｓ２０３によって設定される記憶容量をＨＤＤ１４の有効記憶容量として認識するように構成してあったが、Ｓ２０１〜Ｓ２０３のような処理を採用するか否かは任意である。
【００８８】
例えば、ダミーＭＢＲ領域内にＨＤＤ１４のフェイク容量が格納されていなければ、ＰＣ１がＨＤＤ１４の実記憶容量を認識してもよい。ただし、この場合、実記憶容量が異なるＨＤＤ同士では、記憶内容を複製してあっても適切に認識できなくなる。あるいは、ダミーＭＢＲ領域内にＨＤＤ１４のフェイク容量が格納されていなければ、ＰＣ１がＨＤＤ１４の有効記憶容量を所定の固定値であると認識してもよい。ただし、この場合、所定の固定値よりも大きい記憶容量を持つＨＤＤでは、ＯＳに認識されない記憶領域が増大してしまうことになる。この点、Ｓ２０１〜Ｓ２０３によって設定される記憶容量をＨＤＤ１４の有効記憶容量として認識するように構成してあれば、ＯＳに認識されない記憶領域のサイズを概ね０．５ＴＢ未満に収めつつ、複製された内容を適切に認識することが可能となる。いずれにしても、これらの方式は、ダミーＭＢＲ領域内にＨＤＤ１４のフェイク容量が格納されていない場合の対応策として用意されたものなので、ダミーＭＢＲ領域内にＨＤＤ１４のフェイク容量が格納されていれば、実記憶容量が異なるＨＤＤ間で複製された記憶内容を、何ら問題なく認識することができる。
【符号の説明】
【００８９】
１・・・パーソナルコンピュータ、１Ａ・・・制御部、１１・・・ＣＰＵ、１２・・・ＲＯＭ、１３・・・ＲＡＭ、１４・・・ハードディスク装置、１５・・・操作部、１６・・・表示部、１７・・・通信インターフェース。
【図１】
0005569572.tif 000002
【図２】
0005569572.tif 000003
【図３】
0005569572.tif 000004
【図４】
0005569572.tif 000005
【図５】
0005569572.tif 000006