(57)【特許請求の範囲】
【請求項１】
記憶領域上に、基本パーティション及び拡張パーティションが作成されるとともに、前記拡張パーティション内には、更に論理パーティションが作成されることにより、前記基本パーティション及び前記論理パーティション内に、ファイルを作成可能に構成されたメモリカードであって、
前記拡張パーティションが、前記基本パーティション内に含まれる記憶領域と重複する範囲に作成されており、しかも、前記基本パーティション内には、前記論理パーティションと記憶領域が一致するファイルが作成されている
ことを特徴とするメモリカード。
【請求項２】
前記基本パーティション、前記拡張パーティション、及び前記論理パーティションは、シリンダ単位で確保される記憶領域であって複数シリンダ分が物理的に連続する記憶領域上に作成され、
前記基本パーティションは、ＦＡＴ１６に準拠したフォーマット形式で初期化されて、当該基本パーティション内のファイルは、クラスタ単位で確保される記憶領域上に作成され、
しかも、前記シリンダのサイズは、前記クラスタのサイズの整数倍とされて、前記基本パーティション内では、前記シリンダの境界が前記クラスタの境界に一致させてある
ことを特徴とする請求項１に記載のメモリカード。
【請求項３】
ＭＭＣ（Multi Media Card）又はＳＤ（Secure Digital）メモリカードである
ことを特徴とする請求項１又は請求項２に記載のメモリカード。
【請求項４】
コンピュータを、
メモリカードが備える記憶領域上に、基本パーティション及び拡張パーティションを作成するとともに、前記拡張パーティション内に、更に論理パーティションを作成するパーティション作成手段として機能させることにより、前記メモリカードを、前記基本パーティション及び前記論理パーティション内に、ファイルを作成可能な状態にするパーティション作成プログラムであって、
前記パーティション作成手段は、前記拡張パーティションを、前記基本パーティション内に含まれる記憶領域と重複する範囲に作成するとともに、前記基本パーティション内には、前記論理パーティションと記憶領域が一致するファイルを作成する
ことを特徴とするパーティション作成プログラム。
【請求項５】
前記パーティション作成手段は、
前記基本パーティション、前記拡張パーティション、及び前記論理パーティションを、シリンダ単位で確保される記憶領域であって複数シリンダ分が物理的に連続する記憶領域上に作成し、
前記基本パーティションを、ＦＡＴ１６に準拠したフォーマット形式で初期化して、当該基本パーティション内のファイルを、クラスタ単位で確保される記憶領域上に作成可能とし、
しかも、前記シリンダのサイズを、前記クラスタのサイズの整数倍として、前記基本パーティション内で、前記シリンダの境界を前記クラスタの境界に一致させる
ことを特徴とする請求項４に記載のパーティション作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリカード及びパーティション作成プログラムに関する。
【背景技術】
【０００２】
従来、メモリデバイスが備える記憶領域を複数のパーティションに分割して、それらのパーティション毎に用途を設定することは、既に提案されている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許出願公開２０１０／０２９３３６２号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、Ｌｉｎｕｘ（登録商標）においては、ブロックデバイスが２つの８ｂｉｔ変数で区別される設計になっている。これらの変数は、一般に「デバイス番号メジャー」、「デバイス番号マイナー」と呼ばれている。ＭＭＣ（Multi Media Card）／ＳＤ（Secure Digital）メモリカードデバイスに対しては、通常、デバイス番号メジャーとして１７９が割り当てられて、これが事実上の標準となっている。
【０００５】
また、ＭＭＣ／ＳＤメモリカードデバイスのデバイス番号マイナーは、８ｂｉｔのうち、５ｂｉｔを別スロットに割り当てることで最大３２スロットまでサポートし、残る３ｂｉｔを各スロット及び各スロットに作成されるパーティションに割り当てることで、１スロット当たり最大７パーティションまでをサポートしている。
【０００６】
より具体的には、ｍｍｃｂｌｋ０〜ｍｍｃｂｌｋ３１までの３２スロットを、デバイス番号マイナー中の５ｂｉｔで識別することが多い。また、ｍｍｃｂｌｋ＊（＊は０〜３１のいずれか；以下同様）及び各ｍｍｃｂｌｋ＊に作成される７つのパーティションｍｍｃｂｌｋ＊ｐ１〜ｍｍｃｂｌｋ＊ｐ７を、デバイス番号マイナー中の３ｂｉｔで識別することが多い。
【０００７】
ただし、１スロット当たりのサポートパーティション数が７では、パーティション数が足りないケースも少なくはなく、その部分をカスタマイズして、サポートするスロットの数を減らして、代わりに１スロット当たりのサポートパーティション数を増やしているシステムも珍しくはない。例えば、サポートするスロット数を１６（４ｂｉｔ）に減らすことで、１スロット当たり１５パーティションに対応可能としたシステム、サポートするスロット数を８（３ｂｉｔ）に減らすことで、１スロット当たり３１パーティションに対応可能としたシステムなどもある。
【０００８】
しかし、このようなカスタマイズによって、サポートパーティション数を増やしたシステムで、事実上の標準よりも多くのパーティションを作成すると、当然ながら、よりサポートパーティション数の少ないシステムでは、一部のパーティションを適正に認識することができず、事実上の標準となっているシステムとの互換性が低下することになる。
【０００９】
また、上記とは逆に、サポートスロット数が３２よりも増やされたシステムも考えられる。例えば、ＭＭＣ／ＳＤメモリカードと電気信号的に互換性を持ったオンボードデバイスとして、ｅＭＭＣやｅＳＤといった直付けタイプのデバイスが存在するが、これらのデバイスを大量に実装した大容量フラッシュストレージ使用システムの場合、大容量化を図るには、１スロット当たりのサポートパーティション数を減らしてでも、サポートスロット数を増やしたい場合がある。
【００１０】
しかし、このようなカスタマイズを行ったシステム上で、事実上の標準でもある７つのパーティションを持ったＭＭＣ／ＳＤメモリカードを利用しようとする場合、一部のパーティションを適正に認識することができなくなる。
【００１１】
つまり、メモリカード側で事実上の標準よりも多いパーティションが作成されている場合、システム側で事実上の標準よりもサポートパーティション数が少ない場合、いずれの場合にも、アクセスできないパーティションが発生するおそれがある。
【００１２】
本発明は、上記問題を解決するためになされたものであり、その目的は、メモリカード側に作成されたパーティションの数が、システム側でサポートするパーティション数の上限を超えている場合でも、そのような上限を超えたパーティションに対するアクセスを実現可能なメモリカードと、そのようなパーティションをメモリカード上に作成する処理をコンピュータに実行させるためのパーティション作成プログラムを提供することにある。
【課題を解決するための手段】
【００１３】
以下、本発明において採用した構成について説明する。
本発明のメモリカードは、記憶領域上に、基本パーティション及び拡張パーティションが作成されるとともに、前記拡張パーティション内には、更に論理パーティションが作成されることにより、前記基本パーティション及び前記論理パーティション内に、ファイルを作成可能に構成されたメモリカードであって、前記拡張パーティションが、前記基本パーティション内に含まれる記憶領域と重複する範囲に作成されており、しかも、前記基本パーティション内には、前記論理パーティションと記憶領域が一致するファイルが作成されていることを特徴とする。
【００１４】
このメモリカードにおいては、拡張パーティションが、基本パーティション内に含まれる記憶領域と重複する範囲に作成されるとともに、基本パーティション内には、論理パーティションと記憶領域が一致するファイルが作成されている。
【００１５】
そのため、論理パーティションをマウントしても、基本パーティション内に作成されたファイルをループバックデバイスとしてマウントしても、論理パーティション内に作成されたファイルに対して同様なアクセスが可能となる。
【００１６】
したがって、メモリカード側に作成された論理パーティションの数が、システム側でサポートするパーティション数の上限を超えている場合でも、そのような上限を超えた論理パーティションについては、その論理パーティションに対応するファイルをループバックデバイスとしてマウントすることで、その論理パーティション内のファイルに対するアクセスを実現することができる。
【００１７】
このようなメモリカードのより具体的な例としては、例えば、前記基本パーティション、前記拡張パーティション、及び前記論理パーティションは、シリンダ単位で確保される記憶領域であって複数シリンダ分が物理的に連続する記憶領域上に作成され、前記基本パーティションは、ＦＡＴ１６に準拠したフォーマット形式で初期化されて、当該基本パーティション内のファイルは、クラスタ単位で確保される記憶領域上に作成され、しかも、前記シリンダのサイズは、前記クラスタのサイズの整数倍とされて、前記基本パーティション内では、前記シリンダの境界が前記クラスタの境界に一致させてあるものを挙げることができる。
【００１８】
このようなメモリカードであれば、シリンダの境界を考慮して各パーティションが作成されるので、各パーティションともに、この種のパーティションを作成する場合の一般的な規約に準拠したものとなり、より多くのシステムでアクセスできる可能性がある汎用性の高いものとなる。また、基本パーティション内では、シリンダの境界がクラスタの境界に一致させてあるので、シリンダ単位で確保される記憶領域に作成される論理パーティションと、クラスタ単位で確保される記憶領域に作成される基本パーティション内のファイルとで、両者の境界を容易に一致させることができる。
【００１９】
また、本発明のメモリカードは、ＭＭＣ（Multi Media Card）又はＳＤ（Secure Digital）メモリカードであると好ましい。ここでいうＳＤメモリカードには、外形的な寸法が標準的なもの以外に、外形的な寸法が標準的なものよりも小型化されたｍｉｎｉＳＤメモリカード、ｍｉｃｒｏＳＤメモリカードなども含まれる。また、容量を増大させた規格であるＳＤＨＣ、ＳＤＸＣなどのメモリカード、及びそれらの外形的な寸法が標準的なものよりも小型化されたものも含まれる。ＭＭＣについても同様である。
【００２０】
さらに、本発明のパーティション作成プログラムは、コンピュータを、メモリカードが備える記憶領域上に、基本パーティション及び拡張パーティションを作成するとともに、前記拡張パーティション内に、更に論理パーティションを作成するパーティション作成手段として機能させることにより、前記メモリカードを、前記基本パーティション及び前記論理パーティション内に、ファイルを作成可能な状態にするパーティション作成プログラムであって、前記パーティション作成手段は、前記拡張パーティションを、前記基本パーティション内に含まれる記憶領域と重複する範囲に作成するとともに、前記基本パーティション内には、前記論理パーティションと記憶領域が一致するファイルを作成することを特徴とする。
【００２１】
このようなパーティション作成プログラムによって、コンピュータを上述のようなパーティション作成手段として機能させれば、本発明のメモリカードを作成することができる。
【００２２】
なお、このパーティション作成プログラムにおいて、前記パーティション作成手段は、前記基本パーティション、前記拡張パーティション、及び前記論理パーティションを、シリンダ単位で確保される記憶領域であって複数シリンダ分が物理的に連続する記憶領域上に作成し、前記基本パーティションを、ＦＡＴ１６に準拠したフォーマット形式で初期化して、当該基本パーティション内のファイルを、クラスタ単位で確保される記憶領域上に作成可能とし、しかも、前記シリンダのサイズを、前記クラスタのサイズの整数倍として、前記基本パーティション内で、前記シリンダの境界を前記クラスタの境界に一致させるものであると好ましい。
【図面の簡単な説明】
【００２３】
【図１】メモリカードへのアクセス及びパーティション作成を実行するＰＣのブロック図。
【図２】メモリカード内のパーティションの構造を示す説明図。
【図３】（ａ）は多パーティションＭＭＣ作成処理のフローチャート、（ｂ）はＭＭＣの内容消去処理のフローチャート、（ｃ）はＭＭＣパーティション分割処理のフローチャート。
【図４】（ａ）は第３パーティションをＦＡＴ１６フォーマット処理のフローチャート、（ｂ）はｎの計算処理のフローチャート。
【図５】第５〜１１パーティションをループバックマウント可能にする処理のフローチャート。
【図６】パーティションの作成経過を示す説明図。
【図７】ＭＢＲの内容を示す説明図。
【発明を実施するための形態】
【００２４】
次に、本発明の実施形態について一例を挙げて説明する。
［システム全体の構成］
図１は、パーソナルコンピュータ１（以下、ＰＣ１という）の概略的な構成を示すブロック図である。このＰＣ１は、図１に示すように、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ＨＤＤ１４（ハードディスク装置１４）、操作部１５、表示部１６、通信インターフェース１７、及びＭＭＣ／ＳＤデバイス１８など、この種のＰＣとして周知の各種構成を備えている。ＭＭＣ／ＳＤデバイス１８は、カードスロット１８Ａと、このカードスロット１８Ａに装填されるメモリカード１８Ｂとで構成される。また、このＰＣ１には、ＯＳとしてＬｉｎｕｘ（登録商標；以下同様。）が搭載されている。
【００２５】
［メモリカードの構成］
次に、上記ＰＣ１での処理によって作成されるメモリカード１８Ｂが備える記憶領域のデータ構造について、図２に基づいて説明する。
【００２６】
本実施形態において、メモリカード１８Ｂが備える記憶領域には、基本パーティションとして、第１パーティション〜第３パーティションが作成されている。なお、以下の説明及び図中では、第ｎパーティションのことをパーティション＃ｎとも表記する。
【００２７】
一般に、メモリカード１８Ｂ上には、最大で４つの基本パーティションか、最大で３つの基本パーティション及び最大で１つの拡張パーティションを作成可能であるが、本発明の構成を採用する場合は、４つの基本パーティションを作成することはできず、基本パーティションは最大で３つとなる。
【００２８】
ただし、本発明の構成を採用するに当たって、最大数の基本パーティションを作成するか否かは任意であり、少なくとも１つの基本パーティションがあれば、本発明の構成を採用することができる。また、２つ以上の基本パーティションを作成した場合でも、本発明の構成を採用可能なパーティションは１つだけであり、残りの基本パーティションについては、一般的な周知のデータ構造とされる。
【００２９】
なお、２つ以上の基本パーティションを作成した場合、その中のいずれか１つの基本パーティションであれば、どの基本パーティションであっても本発明の構成を採用可能であるが、以下、第３パーティションにおいて本発明の構成を採用した事例を示す。
【００３０】
本実施形態において、まず、第３パーティションでは、任意の開始位置から連続した物理エリアをファイルとして確保可能なファイルシステムが採用される。そのようなファイルシステムの例としてはＦＡＴ１６やＦＡＴ３２を挙げることができ、本実施形態では、ＦＡＴ１６を採用している。ちなみに、Ｌｉｎｕｘで利用されるｅｘｔ２、ｅｘｔ３、及びｘｆｓなどのファイルシステムは、一定間隔毎にスーパーブロックが割り込むデータ構造をとり、連続した物理エリアをファイルとして確保できないので、本実施形態の第３パーティションで採用するファイルシステムとしては適切ではない。なお、第１パーティション、第２パーティションでは、それぞれどのようなファイルシステムを採用してもよく、上述したＦＡＴ１６やＦＡＴ３２はもちろんのこと、ｅｘｔ２、ｅｘｔ３、ｘｆｓなどのＬｉｎｕｘ独自のフォーマットを採用してもよい。
【００３１】
さて、第３パーティションがＦＡＴ１６で初期化された場合、第３パーティション内には、図２中に示したように、ブートセクタ、ＦＡＴ＃１、ＦＡＴ＃２、ルートディレクトリなどの管理領域が作成され、それに引き続く領域として任意のデータを格納可能なデータ部が確保される。
【００３２】
本発明においては、このデータ部と重複する位置に、拡張パーティションが作成され、この拡張パーティション内に複数の論理パーティションが作成される。すなわち、通常は、基本パーティションとは重ならない位置に拡張パーティションが作成されるが、基本パーティションと重なる位置に論理パーティションが作成されている点で、本発明は一般的な技術とは異なる構成となっている。
【００３３】
なお、拡張パーティション内に、複数の論理パーティションが作成される点や、論理パーティションとともにＥＰＴ（拡張パーティションテーブル）が作成される点は、本発明においても一般的な技術と同様の構成となる。ただし、上述の通り、拡張パーティションが一般的な技術とは異なる領域に作成されるので、結果として、論理パーティションも基本パーティションと重なる領域に作成されることになり、この点は一般的な技術とは異なるものとなる。
【００３４】
図２において、拡張パーティションである第４パーティションが、第３パーティションの枠内に描かれているのは、一般的な技術では重複しない両パーティションが重複していることを意味するものである。また、複数の論理パーティションである第５パーティション〜第１１パーティションが、第４パーティションの枠内に描かれているのは、一般的な技術と同様に、これらの論理パーティションが拡張パーティションの中に作成されることを意味している。なお、ＥＰＴ＃５〜＃１１は、それぞれパーティション＃５〜＃１１に対応するので、対応関係を理解しやすくするために＃５〜＃１１の番号を付与してあるが、第１パーティション〜第４パーティションに対応するＥＰＴ＃１〜＃４は存在しない。
【００３５】
つまり、第１パーティション〜第４パーティションに対応するパーティションテーブルは、ＭＢＲ（セクタ０）の一部に書かれるため、ＥＰＴのような独立したパーティションテーブル専用のセクタは必要ない。ＥＰＴ＃５の位置は、拡張パーティションの先頭セクタと決められており、ＥＰＴ＃６以降の位置は、１つ前のＥＰＴに、その位置が記述されている。
【００３６】
ちなみに、第５パーティション〜第１１パーティションでは、それぞれどのようなファイルシステムを採用してもよく、上述したＦＡＴ１６やＦＡＴ３２はもちろんのこと、ｅｘｔ２、ｅｘｔ３、ｘｆｓなどのＬｉｎｕｘ独自のフォーマットを採用してもよい。また、複数の論理パーティションは、少なくとも１つは作らないと無意味であるが、いくつ作るかは任意である。
【００３７】
さらに、以上のような前提のもと、第３パーティション内には、ＥＰＴ＃５〜＃１１及びパーティション＃５〜＃１１に対応するファイルが作成されている。これらのファイルの実データ部は、ＥＰＴ＃５〜＃１１及びパーティション＃５〜＃１１として利用されている記憶領域と一致させてあり、見かけ上はファイルとして記憶領域が使用済みである状態にされている。これらの見かけ上のファイルは、ルートディレクトリからリンクされていてもよいし、ルートディレクトリからリンクされた他のディレクトリからリンクされていてもよい。
【００３８】
このようなかたちで、ＥＰＴ＃５〜＃１１及びパーティション＃５〜＃１１に対応する記憶領域が、見かけ上ファイルとして使用済みになっていれば、第３パーティション内に他のファイルが作成される場合でも、ＥＰＴ＃５〜＃１１及びパーティション＃５〜＃１１に対応する記憶領域が使用されることはなく、ＥＰＴ＃５〜＃１１及びパーティション＃５〜＃１１のデータ破壊を防ぐことができる。なお、第３パーティション内に他のファイルを作成できる余地を残すかどうかは任意であり、第３パーティションをほとんど空き領域がない状態にしてもかまわない。この場合、第３パーティションは、見かけ上、常にディスクフルの状態にあるパーティションとなる。
【００３９】
また、パーティション＃５〜＃１１に対応するファイルの中味は、パーティション＃５〜＃１１の記憶領域そのもの、すなわち、パーティション＃５〜＃１１のディスクイメージそのものとなる。したがって、パーティション＃５〜＃１１に対応するファイルを、ループバックデバイスとしてマウントすれば、論理パーティションであるパーティション＃５〜＃１１そのものをマウントした場合と同様に、各パーティション＃５〜＃１１内のファイルに対するアクセスを実現することができる。
【００４０】
この場合、パーティション＃５〜＃１１は、あくまでもループバックデバイスとしてマウントされているのであって、メモリカード１８Ｂ上の論理パーティションそのものがマウントされている訳ではない。そのため、システムの制限上、メモリカード１８Ｂ上でサポートされるパーティションの総数が上限を超えている場合でも、そのようなパーティションに対応するファイルには、第３パーティション経由でアクセスできる。よって、上述のようなループバックデバイスとしてのマウントが可能となり、その結果、サポート上限を超えた論理パーティション内のファイルにもアクセス可能となるのである。
【００４１】
［多パーティションＭＭＣ作成処理］
次に、上述のような特徴的データ構造を持つパーティションを作成するための「多パーティションＭＭＣ作成処理」について、図３〜図５のフローチャートに基づいて説明する。この「多パーティションＭＭＣ作成処理」は、利用者がＰＣ１において所定のコマンドを入力することによって起動される。なお、以下の説明では、説明を簡潔にするため、便宜的にメモリカード１８ＢのことをＭＭＣと略称するが、ＳＤメモリカードでもよいことはもちろんである。
【００４２】
この「多パーティションＭＭＣ作成処理」を開始すると、まず、ＰＣ１は、図３（ａ）に示すように、ＭＭＣの内容を消去する（Ｓ１１０）。この「ＭＭＣの内容消去処理」は、詳しくは図３（ｂ）に示す処理となり、ＰＣ１は、全てパーティションを削除して（Ｓ２１０）、ＭＢＲ（セクタ０）以外の全セクタを０ｘＥ５でＦＩＬＬして（Ｓ２２０）、「ＭＭＣの内容消去処理」を終了する。なお、図３（ｂ）に示す処理は、念のために一連の処理として実行しているが、事前にパーティションを削除してあってもよく、その場合、図３（ｂ）に示す処理を実行しなくてもよい。また、Ｓ２２０も念のために実行している処理であり、省略は可能である。
【００４３】
さて、図３（ｂ）に示す処理を終えたら、図３（ａ）に示すＳ１２０へと進み、ＰＣ１は、ＭＭＣのパーティション分割を実行する（Ｓ１２０）。この「ＭＭＣパーティション分割処理」は、詳しくは図３（ｃ）に示す処理となり、ＰＣ１は、図６（ａ）に示すパターン１で、ＭＭＣをパーティション分割する（Ｓ３１０）。
【００４４】
このパターン１は、図２に示したデータ構造と同様の領域にパーティション＃４〜＃１１が形成されているものの、パーティション＃３については、パーティション＃４の先頭直前の位置に末尾があり、パーティション＃３とパーティション＃４の重複が生じていないデータ構造になっている。このようなパーティションであれば、通常のパーティション作成コマンドでエラーを発生させることなく作成することができる。
【００４５】
このようなパーティション分割を行ったら、ＰＣ１は、パターン１のＭＢＲ（セクタ０）をファイルｍｂｒ１．ｄａｔに保管する（Ｓ３２０）。Ｓ３２０において、ＭＢＲのリードは、ＬｉｎｕｘのコマンドｓｆｄｉｓｋのＭＢＲバックアップ機能（−Ｏオプション）によって行われる。ファイルｍｂｒ１．ｄａｔに保管される情報は、図７（ａ）に示すような情報で、先頭４バイトに引き続く５バイト目から５１２バイト分の情報がパターン１のＭＢＲに相当する。
【００４６】
続いて、ＰＣ１は、図６（ｂ）に示すパターン２で、ＭＭＣをパーティション分割する（Ｓ３３０）。このパターン２は、図２に示したデータ構造と同様の領域にパーティション＃３が形成されているものの、パーティション＃４〜＃１１については形成されていない。したがって、このようなパーティションであっても、通常のパーティション作成コマンドでエラーを発生させることなく作成することができる。
【００４７】
このようなパーティション分割を行ったら、ＰＣ１は、パターン２のＭＢＲ（セクタ０）をファイルｍｂｒ２．ｄａｔに保管する（Ｓ３４０）。Ｓ３４０においても、ＭＢＲのリードは、ｓｆｄｉｓｋのＭＢＲバックアップ機能（−Ｏオプション）によって行われる。ファイルｍｂｒ２．ｄａｔに保管される情報は、図７（ｂ）に示すような情報で、先頭４バイトに引き続く５バイト目から５１２バイト分の情報がパターン２のＭＢＲに相当する。
【００４８】
続いて、ＰＣ１は、ファイルｍｂｒ１．ｄａｔ，ｍｂｒ２．ｄａｔからｍｂｒ３．ｄａｔを作成する（Ｓ３５０）。ｍｂｒ３．ｄａｔは、図７（ａ）に示すｍｂｒ１．ｄａｔ内のデータのうち、破線で囲った部分を抽出するとともに、図７（ｂ）に示すｍｂｒ２．ｄａｔ内のデータのうち、破線で囲った部分を抽出し、それらを合成することにより、図７（ｃ）に示すようなデータとしたものである。
【００４９】
このような合成を行うことにより、パターン１のパーティション＃１，＃２，＃４に関する情報を保持したまま、パターン１のパーティション＃３に関する情報が、パターン２のパーティション＃３に関する情報で更新される。その結果、パーティション＃３についてはパターン２相当で、かつパーティション＃４についてはパターン１相当とされたＭＢＲが創り出されることになる。
【００５０】
続いて、ＰＣ１は、再びパターン１でＭＭＣをパーティション分割して（Ｓ３６０）、ＭＭＣ内にパーティション＃４〜＃１１を作成する。ここでは、パーティション＃４〜＃１１の他、ＥＰＴ＃５〜＃１１も作成されることになり、パーティション＃３の末尾の位置だけが図２とは異なる状態になる。
【００５１】
この状態において、ＰＣ１は、ｍｂｒ３．ｄａｔをＭＢＲ（セクタ０）に書き込んで（Ｓ３７０）、「ＭＭＣパーティション分割処理」を終了する。Ｓ３７０において、ＭＢＲのライトはｓｆｄｉｓｋのＭＢＲリストア機能（−Ｉオプション）によって行われる。Ｓ３７０では、ファイルｍｂｒ３．ｄａｔに保管されている情報（図７（ｃ）参照。）のうち、先頭４バイトに引き続く５バイト目から５１２バイト分の情報がＭＢＲに書き込まれる。
【００５２】
その結果、パーティション＃３の末尾の位置に関する情報は、図６（ｂ）に示すパターン２相当に更新されるので、その結果、パーティションの位置に関しては、図２に示すように、パーティション＃３とパーティション＃４が重複する位置に更新される。また、パーティション＃３とパーティション＃４が重複する位置になるので、結果的に、パーティション＃４内にあるパーティション＃５〜＃１１についても、パーティション＃３と重複する位置に配置されることになる。
【００５３】
さて、図３（ｃ）に示す処理を終えたら、図３（ａ）に示すＳ１３０へと進み、ＰＣ１は、「第３パーティションをＦＡＴ１６フォーマットする処理」を実行する（Ｓ１３０）。この「第３パーティションをＦＡＴ１６フォーマットする処理」は、詳しくは図４（ａ）に示す処理となり、ＰＣ１は、まず、特別なパラメータを付けずに第３パーティションをＦＡＴ１６フォーマットする（Ｓ４１０）。そして、このときのクラスタ２（先頭クラスタ）が６４セクタ（３２ｋバイト）のアライメントから何セクタ足りないかを把握するため、その足りないセクタ数ｎの計算を実行する（Ｓ４２０）。
【００５４】
より詳しくは、本実施形態において、ＭＭＣ上の各パーティションは、図２に示したように、シリンダ単位で確保される記憶領域となっていて、複数シリンダ分が物理的に連続する記憶領域上に作成されている。一方、ＦＡＴ１６でフォーマットされた第３パーティションは、１クラスタをアクセス単位としてファイルの管理が行われる。
【００５５】
後述する処理では、パーティション＃５〜＃１１やＥＰＴ＃５〜＃１１と同一の記憶領域を、ファイル単位でアクセス可能とするための情報を作成する。このとき、第３パーティションのデータ部のクラスタ２（先頭クラスタ）が、第３パーティションの先頭からクラスタサイズの整数倍となる位置に存在していない場合、そこから１クラスタ単位で区切られる記憶領域のクラスタ境界は、シリンダ境界から常にずれた位置となってしまう。
【００５６】
このようなずれが生じると、パーティション＃５〜＃１１やＥＰＴ＃５〜＃１１と同一の記憶領域に対し、クラスタ単位の領域をぴったりと重ねることはできなくなるので、それを回避するために、Ｓ４２０では、クラスタ２（先頭クラスタ）をどこから始めれば、そこから始まるクラスタ境界が、第３パーティション上のシリンダ境界にアライメントするのかを算出する。
【００５７】
本実施形態の場合、ＦＡＴ１６でフォーマットされた第３パーティションは、１クラスタ＝６４セクタをアクセス単位としてファイルの管理が行われる。一方、１トラックは最大で６３セクタとすることができるが、１クラスタ＝６４セクタに対して整数倍の関係を持つセクタ数を１トラックとするなら、１トラック＝３２セクタとするのが最大である。そこで、本実施形態では、１シリンダを１２８ヘッド×１トラック当たり３２セクタ＝４０９６セクタとし、これにより、１シリンダにちょうど６４クラスタが含まれる関係とした。
【００５８】
このような前提のもと、Ｓ４２０では、詳しくは図４（ｂ）に示す処理が実行される。この処理を開始すると、ＰＣ１は、第３パーティションの先頭セクタ（ＰＢＲ）をリードし（Ｓ５１０）、ＰＢＲから必要な情報を取得する（Ｓ５２０）。ＰＢＲ上で、以下に示すアドレス（バイト数）には、０ｘ０００ｄ（１）：１クラスタ中のセクタ数、０ｘ０００ｅ（２）：予約セクタの数、０ｘ００１０（１）：ＦＡＴの数（通常２）、０ｘ００１１（２）：ルートディレクトリエントリ数、０ｘ００１６（２）：１つのＦＡＴ中のセクタ数、などが格納されており、Ｓ５２０ではこれらの情報を取得する。
【００５９】
続いて、ＰＣ１は、先頭クラスタ（クラスタ２）の位置を計算する（Ｓ５３０）。先頭クラスタ（クラスタ２）の位置は、次の計算式；予約セクタの数＋ＦＡＴの数×１つのＦＡＴ中のセクタ数＋ルートディレクトリエントリ数×３２÷５１２、に基づいて算出することができる。ちなみに、１つのディレクトリエントリが３２バイトで、１セクタが５１２バイトなので、ルートディレクトリのセクタ数はルートディレクトリエントリ数×３２÷５１２となり、通常、この除算で端数が出ることはない。
【００６０】
本実施形態の場合、予約セクタの数＋ＦＡＴの数×１つのＦＡＴ中のセクタ数＋ルートディレクトリエントリ数×３２÷５１２＝１＋２×１８０＋５１２×３２÷５１２＝３９３となる。したがって、Ｓ４１０で作成されたクラスタ２の位置は、第３パーティションの先頭から３９３セクタ後であることがわかる。ただし、３９３セクタは、１クラスタ＝６４セクタの倍数には該当しないので、この位置から先頭クラスタ（クラスタ２）が始まると、データ部のクラスタ境界は、上述のシリンダ境界とは一致しない状況になる。
【００６１】
そこで、ＰＣ１は、「クラスタ２の位置」を６４で割り（Ｓ５４０）、その答えをｐ余りｑとして、ｑ（余り）が０か否かを判断する（Ｓ５５０）。ここで、余り０なら（Ｓ５５０：はい）、たまたま「クラスタ２の位置」が第３パーティション上の６４セクタ単位境界から始まっていることになるので、この場合はｎ＝０（すなわち、「クラスタ２の位置」をずらす必要なし。）と算出される。一方、Ｓ５５０で余り０ではないなら（Ｓ５５０：いいえ）、ｎ＝６４×（ｐ＋１）−「クラスタ２の位置」と算出される。
【００６２】
本実施形態の場合、クラスタ２の位置は第３パーティションの先頭から３９３セクタ後であったので、３９３÷６４＝６余り９となり、ｎ＝６４×（ｐ＋１）−「クラスタ２の位置」＝６４×（６＋１）−３９３＝５５となるので、あと５５セクタ分後にずらせば、「クラスタ２の位置」が６４セクタ（３２ｋバイト）境界でアライメントすることがわかる。
【００６３】
こうして図４（ｂ）に示す処理を終えたら、図４（ａ）に示すＳ４３０へと進み、ＰＣ１は、ｍｋｆｓ．ｖｆａｔコマンドを“−Ｒｎ＋１”のパラメータ付きで実行し、第３パーティションを再度ＦＡＴ１６フォーマットし（Ｓ４３０）、「第３パーティションをＦＡＴ１６フォーマットする処理」を終了する。
【００６４】
−Ｒオプションは、予約セクタの数を指定するオプションであり、省略時には上述の通り、予約セクタが１となる。したがって、先に説明したように予約セクタが１の状態において、あと５５セクタ分後にずらせば、「クラスタ２の位置」が６４セクタ（３２ｋバイト）境界でアライメントするのであれば、予約セクタを５６にすることで、「クラスタ２の位置」を６４セクタ（３２ｋバイト）境界でアライメントさせることができるとわかる。なお、本実施形態では、無条件でＳ４３０を実行しているが、Ｓ４２０でｎ＝０となった場合、Ｓ４１０とＳ４３０は実質的に差異のない処理となるので、この場合は、Ｓ４３０を実行しなくてもよい。
【００６５】
さて、図４（ａ）に示す処理を終えたら、図３（ａ）に示すＳ１４０へと進み、ＰＣ１は、「第５〜１１パーティションをループバックマウント可能にする処理」を実行する（Ｓ１４０）。この処理は、詳しくは図５に示す処理となり、この処理を開始すると、ＰＣ１は、第３パーティションのＦＡＴ１、ＦＡＴ２を変更する（Ｓ６１０）。ＦＡＴ１の内容としては、クラスタ２が、ファイル（後述するサブディレクトリ“ｐａｔ”）として利用されている旨の情報、パーティション＃５〜＃１１やＥＰＴ＃５〜＃１１それぞれに対応する複数クラスタが、ファイルとして利用されている旨の情報などが登録される。なお、ＦＡＴ１、ＦＡＴ２は、同一内容を持つので、ＦＡＴ１を作成後に、そのコピーがＦＡＴ２に書き込まれる。
【００６６】
続いて、ＰＣ１は、第３パーティションのルートディレクトリを変更する（Ｓ６２０）。このＳ６２０では、第３パーティションのボリューム名、サブディレクトリ“ｐａｔ”がルートディレクトリに登録される。なお、サブディレクトリ“ｐａｔ”の実データ部分の先頭はクラスタ２とされ、これにより、ルートディレクトリからＦＡＴを参照することで、ＦＡＴの情報からクラスタ２がファイルの終端でもあることを把握でき、その結果、サブディレクトリ“ｐａｔ”は、クラスタ２と同じ意味であることが判ることとなり、実データ部分へのアクセスが可能となる。
【００６７】
そして、ＰＣ１は、第３パーティションのクラスタ２（サブディレクトリ“ｐａｔ”）を変更し（Ｓ６３０）、「第５〜１１パーティションをループバックマウント可能にする処理」を終了、以上で「多パーティションＭＭＣ作成処理」を終了することになる。Ｓ６３０では、パーティション＃５〜＃１１やＥＰＴ＃５〜＃１１それぞれに対応するファイル名と、それぞれの開始クラスタ番号とを対にした情報が、クラスタ２に書き込まれる。このとき、ルートディレクトリと違い、クラスタはフォーマットで初期化されないので、１クラスタ全体（６４セクタ、３２ｋバイト）を書き込む必要がある。これらの情報が書き込まれると、例えば、パーティション＃５に対応するファイル名と、その開始クラスタ番号とを、対にしてクラスタ２（サブディレクトリ“ｐａｔ”）から読み取ることができるようになる。したがって、ＦＡＴを参照することで、ＦＡＴの情報からパーティション＃５の開始クラスタ２から引き続くクラスタ番号を順に辿り、ファイルの終端に至るまでの全クラスタ番号を把握でき、これにより、パーティション＃５に対応する全ての実データ部分へのアクセスが可能となる。
【００６８】
こうして作成されたファイルのうち、パーティション＃５〜＃１１に対応するファイルは、パーティション＃５〜＃１１そのもののディスクイメージを持つファイルとなるので、このファイルをループバックデバイスとしてマウントすることにより、パーティション＃５〜＃１１内のファイルへのアクセスが可能となる。
【００６９】
［効果］
以上説明した通り、上述のようなパーティションが作成されたメモリカード１８Ｂによれば、パーティション＃５〜＃１１については、これらをサポートするシステムであれば、通常の論理パーティション（論理ドライブ）としてアクセスできる。一方、サポートパーティション数の上限が１１未満のシステムであっても、未サポートとなる論理パーティションについては、その論理パーティションに対応するファイルをループバックデバイスとしてマウントすることで、論理パーティションへのアクセスが可能となる。
【００７０】
よって、メモリカード１８Ｂ上には、システムの制限を考慮することなく、所望の数だけ論理パーティションを作成することができ、その場合に、サポートパーティション数の上限値が小さいシステムで、論理パーティションへのアクセスができなくなるのを回避することができる。
【００７１】
［その他の実施形態］
以上、本発明の実施形態について説明したが、本発明は上記の具体的な一実施形態に限定されず、この他にも種々の形態で実施することができる。
【００７２】
例えば、上記実施形態において、ＭＭＣ及びＳＤメモリカードを中心とする説明を行ったが、ＳＤメモリカードの上位規格となるＳＤＨＣ、ＳＤＸＣなどのメモリカードや、ＭＭＣの上位規格となるメモリカードでも、本発明の構成を採用できる。また、ＳＤメモリカードとしては、ｍｉｎｉＳＤメモリカード、ｍｉｃｒｏＳＤメモリカードなど、外形寸法の異なるバリエーションもあるが、これらに本発明を適用できるのはもちろんである。
【００７３】
また、上記実施形態では、第３パーティションに第４パーティションを重複させる例を示したが、拡張パーティションを基本パーティションのいずれかに重複させることが本発明の特徴であり、重複対象となる基本パーティションは、第３パーティションに限らない。すなわち、第１パーティションや第２パーティションに拡張パーティションを重複させてもよいし、１つの基本パーティションさえあれば、２つ目以降の基本パーティションが作成されているか否かは任意である。
【符号の説明】
【００７４】
１・・・パーソナルコンピュータ、１１・・・ＣＰＵ、１２・・・ＲＯＭ、１３・・・ＲＡＭ、１４・・・ハードディスク装置、１５・・・操作部、１６・・・表示部、１７・・・通信インターフェース、１８・・・ＭＭＣ／ＳＤデバイス、１８Ａ・・・カードスロット、１８Ｂ・・・メモリカード。
【図１】
0005454552.tif 000002
【図２】
0005454552.tif 000003
【図３】
0005454552.tif 000004
【図４】
0005454552.tif 000005
【図５】
0005454552.tif 000006
【図６】
0005454552.tif 000007
【図７】
0005454552.tif 000008