先日,HDDのパーティション(マルチOS関連)の記事で,基本パーティションは四つ作成できるとありましたが,「FDISK」では1個の基本パーティションしか作成できません。どのようにして四つの基本パーティションを作るのですか?
MS-DOS系のOS(MS-DOS,Windows 95/98)に含まれているFDISKコマンドは,1個の基本パーティションしか作成できない仕様になっています。理由は,MS-DOS系のOSが1個のHDDにつき「1個の基本パーティションと1個の論理パーティション(内部に複数の論理パーティション)」という構成で利用されることを前提に設計されているからです。
PCに電源を入れるとシステムのBIOSが周辺カードのイニシャライズを行ったのち,プライマリマスターHDDの一番先頭にあるセクタを読み込んでメモリに展開します。このセクタのことをMBR(マスターブートレコード)といいます。MBRにはOSの読み出し動作を行う小さなプログラム(MBL)と,HDD上のパーティション情報を格納したパーティションテーブルが置かれています。BIOSがMBRの読み出し動作を完了すると,MBLに制御を移します。
MBRは1セクタ(512バイト)に収まっていなければならない都合から,MBLに大きな処理を組み込むことはできません。MBLは四つあるパーティションテーブルの中から起動フラグの立ったパーティションを実際に起動するパーティション(アクティブパーティションといいます)であると認識します。そのあとアクティブパーティションの領域に保存されているOSローダーを読み出し,このOSローダーから本来のOSの働きをするシステムOSファイル(IO.SYS, MSDOS.SYSなど)を読み出します。
このとき,MS-DOS系のOSは基本パーティションが一つしか存在しないと仮定してドライブレターを割り振るので,1個のHDDに複数の基本パーティションが存在するとドライブレターの割り当てを行うことができません。また,パーティションテーブル上にあるパーティションIDがFAT形式でなければOSの起動処理を行わないように制限しています(パーティションが破壊されていると判断する)。このような理由から,マルチOS環境を整備するには,
・複数の基本パーティションを作成する機能
・アクティブパーティションを切り替える機能
・複数の基本パーティションにドライブレターを割り当てる機能
が必要になります。これを実現するのが9/1号の特集3で紹介しているSystemCommander4やOS/2ブートマネージャなどのブートメニュープログラムです。
System Commander4を使った具体的な作成方法はp.290でも紹介しましたが,原理的にはパーティションを操作するアプリケーションでパーティションテーブル上のパーティションIDをごまかし,FDISKに「基本パーティションは存在しない」ように見せかけることで新たな基本パーティションを作成します。
(三谷直之)