▼Win95同士の Dual Boot▼

[Win <-DUALBOOT-> Win] 巷にあふれるデュアルブートの解説は、「Win95 + 他のもん」がほとんどです。 Win95 + Win95 というのは需要がないんでしょう。 (1999/10)

Win95 + Win98 にも応用できそうですが、Win98を持ってないので 確認していません。暇な人は試してみて下さい。

AT互換機での話です。 PC-98XX はIPLからして違うので多分当てはまりません。

$Id: Welcome.html,v 1.15 2012-03-26 17:20:39+09 kabe Exp $


何が必要か

用語

書いている最中にカタカナが多くなってイヤになったので、

とします。

Win95のブート動作

1. BIOS (IPL) によるロード
ディスクの初めのセクタにある MBR (Master Boot Record) を読み込み、 実行します。
2. MBR によるロード
一次領域の中から活性領域だと指定されている ものを探しだし、その領域の先頭セクタ (Partition Boot Record, PBR) を読み込んで 実行します。

この動作はMS-DOSやWin95インストール時に組み込まれる MBRローダのもの。 LILO や OS-BS など、 別のものに書き換えた場合は違う動作になります。

3. PBR によるロード
(この辺はあやふや) C:\IO.SYS を読み込み、各種デバイスドライバの下準備を 行なっていきます。 最終的には C:\MSDOS.SYS (テキストファイル) に書かれた ディレクトリにある Win95 のカーネル(?) を読み込みます。

何をもって C:\ とするかですが、 Win95のローダでは 活性領域が C:\ と しているようです。 (てゆーか他に判断しようがないよな) デュアルブートの Tips では、活性領域の 切替えは UnixWare の時に必要だと書いてあることは多いのですが、 Win95 でも必要なようです。 あまり表面化しないのは、普通のデュアルブートでは Cドライブを切替える必要がないからでしょう。

なお、WinNTではここのローダ (NT Partition Boot Sector in System Partition) が NTLDR を読み込んでブートセレクタを起動します。 NTのセレクタは 任意の領域ブートセクタを選んで使える ので、 これで済むのであれば(and NTを持っていれば) 便利。

C:\WINDOWS と D:\WINDOWS ではダメなの?

ダメです。

上の 3. で書いたように、どちらをブートするにしても C:\MSDOS.SYS が参照されますが、これの内容は 後からインストールした方の \WINDOWS を指しています。

直接 D:\ からブートする形式のブートセレクタでは、 3. のローダが行なう処理がなくなってしまうので うまくいきません。 というか D:\WINDOWS にインストールしても、D: 領域のブートセクタは 全く使われていません。 3. のローダは活性領域 (C:\) に住んでいるので、 C:\ を無視してブートすることはできんのです。(…たぶん)

Linux は、自分の領域(FreeBSD用語のスライス)の頭にあるローダだけで 動けるので、直接 D:\ からブートしても問題ありません。 (*BSD は拡張領域からは直接ブートできなかったような)

「直接 D: からブート」というのは、 「D: のブートセクタを読み込んで実行」の意味です。 普通の MBR ローダでは行なわれない(できない…こともある)ので、 MBRにブートセレクタをインストールして行なうことになります。 つーか OS-BS の動作。

活性領域の切替え

Win95 + Win95 なら3.のローダは同じなので、基本的には C:\MSDOS.SYS だけ入れ換えれば切り替わりそうです。

が、実際には C:\CONFIG.SYS などにも直接 D:\WINDOWS などが 書かれているので、C:\ 全体を切替える方が安全です。 これを行なうには、活性領域を切替えられる ブートセレクタを使うのがもっとも手っ取り早い。 私は OS-BS を使っています。

なお、活性領域の切替えは MBR の書換えを 伴うので、BIOSのウィルスチェックは無効にしておく必要があります。

ウィルスチェックoffはイヤとゆー人は、活性領域の中身を そっくり入れ換えるようなブートセレクタを使うことになります。 (探せばあると思う)

やってみよう

パーティションの用意

C:\WINDOWS しか考慮していないソフトウェアの検出も視野に入れているので、

といった領域を用意します。
	1      2      3
	[C  15][C' 15][{D      200}{E       200}   ]

一次領域を複数こしらえるのは、DOSの FDISK.EXE では できません。LinuxやFreeBSDに大抵附属してくる PFDISK.EXE や、 OS/2 のインストールディスケット などを使います。

一次領域をこしらえたら、FDISK.EXE で残りの拡張領域を 作ります。(D,EではなくE,Fとして見えているかもしれない)

なお、C:\は最低でも12MBくらいは用意しておかないと セットアップが できんようです。 リテール版のWin95なら setup /t:D:\TEMP とかでテンポラリを 移せるんですが、OSR2の SETUP.EXE は色々と腐れていて /t が効きません。

凝ったことをしないんであれば一次領域を200MBで切ってもいいと思います。 が、両方C:\WINDOWSになるので、 どっちがどっちだかわかんなくなることがあるかもしれません。 (…試していない) 古い機械では 504MB境界に注意。
Program Files\ は共用でもいいという場合は拡張領域を D: だけにして、インストール場所を D:\WIN1, D:\WIN2 と 変えてもいいでしょう。 片方の一次領域を200MBにして C:\WINDOWS, D:\WINDOWS の組み合わせも可能。 いずれにしてもプライマリパーティションは2つ必要です。
FDISK.EXEで拡張領域を作ったら、一応PFDISK.EXEで 拡張領域の ID をチェックしておいて下さい。通常は 5 なんですが、 15 になっていると GUI起動はできても「MS-DOSで再起動」が できなくなる場合があります。
あとで MSIE4.xを入れるつもりなら C:\ は 17MBくらい必要です。 ie4setup /t:path とやっても 作業用の C:\msdownload.tmp は移せないらしい。 C:\ が足らないと「インストールに失敗したコンポーネントがあります。…」 な意味不明なエラーしか出ない。

Win95-1のインストール

Win95-1用の一次領域を活性領域にします。 FDISK.EXEでもPFDISK.EXEでも可能。 リブートして C:, D: をフォーマットし、 Win95 を D:\WINDOWS にインストールします。

Win95-2のインストール

Win95-2用の一次領域を活性化してリブート。 C:(さっきフォーマットしたのとは領域が違う、はず), E: をフォーマットし、 E:\WINDOWS にインストールします。

すでにD:\WINDOWSがあるのでインストールを渋られる場合がありますが、 適当に切り抜けて下さい。

非活性化したC: は、なぜか全拡張領域の後の ドライブ文字がつくようです。この場合はF: 。

OS-BSのインストール

OSBS20B8.EXE を実行してOS-BSブートセレクタをインストール。 ブートメニューでは、D:, E: を表す拡張領域 (4,8) ではなく、 一次領域 (0,1) を選びます。 また、活性領域切替を有効にします。

応用: 95 + 95 + NT

(試していない)

NTの「システムパーティション」としてどちらかの一次領域を使います。 MBRブートセレクタ (OS-BS) では、その一次領域から起動するよう設定。 もっとも、95 か NT かは NTのブートセレクタで選ぶことになります。

一発でNT にしたい、C:\ を共用したくない、といった場合は 専用の一次領域をもう一つこしらえておけばよい。

こういったこともあるので、新しいディスクにインストールする際は 一次領域をいくつか(っても最大3つですが)とっておくと ツブシが効きます。いまどき10MBくらいどおってことないでしょ

95/NTは C:\ 共用でもいいが、一発で 95+95+NT を切替えたいという場合は 「活性領域切替」+「任意のファイル(bootsect.dos)でブート」 という機能があるブートマネージャが必要になります。 フリー物では(設定がめんどくさいですが) GRUB が使えます。

そういえば

拡張領域なんてものが発明される以前は、みんな 一次領域の活性を切替えてブートしてたんですよね。


参考文献


kabe@sra-tohoku.co.jp