OS/2 の MVDM 上で Win98(Preview Program)の起動ディスクを作成する

1998-03-18
1998-03-22 (Last updated)

基本的には CD-ROM から必要なファイルを EXTRACT で展開し、Win98 用の SYS コマンドでフロッピーディスクに転送するだけである(ただし SYS コマンドがそのままでは動いてくれないので多少の細工が必要)。
話の都合上、環境は以下のように決めうちする。 手持ちの環境と異なる部分は臨機応変に読み替えていただきたい。
Win98             Windows 98β3 PC/AT用 日本語版
OS/2             Warp V3.01 赤
フロッピーディスクドライブ  A:
作業用ディレクトリ      C:\TMP
CD-ROM ドライブ        D:

手順(とりあえずブートするディスクを作る)

  1. 1.44MB のフロッピーディスクを1枚フォーマットする。 システムは転送しなくてよい。
  2. Win98 の CD-ROM から、必要なファイルを展開する。
    最低限必要なファイルは COMMAND.COMwinboot.syssys.com の3つ。 DOS のコマンド・プロンプトを起動し(PC DOS でも DOS/V でもよい。どうせ EXTRACT のメッセージは英語だ)、Win98 の CD-ROM にある EXTRACT.EXE を使ってファイルを展開する。
    展開先の作業ディレクトリが C:\TMP で、CD-ROM ドライブが D: なら以下のように入力することになる。
    D:
    cd \japanese\win98
    extract /L C:\TMP ebd.cab sys.com
    extract /L C:\TMP precopy1.cab command.com
    extract /L C:\TMP precopy2.cab winboot.sys
    
  3. Winboot.sys を io.sys にリネームする。
    ごく普通に ren winboot.sys io.sys で問題ない。
  4. システムをフロッピーに転送する。
    最初、普通に sys C:\TMP A: と実行すればいけるだろうと思っていたが、OS/2 の MVDM 上ではどうも動いてくれなかったので対策プログラムを作成した。 RUNSYS.COM を作業ディレクトリにコピーして、DOS プロンプトのコマンドラインで以下のように入力する。
    runsys C:\TMP A:
    
    これでフロッピーディスク上にシステムが書き込まれる。 (RUNSYS は DOS のバージョンを一時的にダマして SYS.COM を実行するだけのプログラムです。ハードディスクにシステムを転送するときには RUNSYS を使わない方がよいでしょう)
  5. 確認のため OS/2 を終了し、マシンをリブートしてフロッピーから起動してみる。 "Starting Windows 98..." というような表示が出て、しばらく後に味もそっけもないコマンドプロンプトが出たら成功。

CD-ROM ドライバを組み込む

こうして作成したブートディスクは CD-ROM が読めないので、Win98 をインストールするにはまだ不十分である。 具体的には DOS 用の CD-ROM ドライバと MSCDEX.EXE が必要である。 Win98 の CD-ROM には以下の DOS 用 CD-ROM ドライバが入っている。 これらのドライバが使えない環境の場合は、どこからか CD-ROM ドライバを入手する必要がある。
これらのドライバはすべて BASE5.CAB の中に入っている。 MSCDEX.EXE は EBD.CAB の中に入っている。 必要なファイルを EXTRACT で展開、ブートディスクにコピーした後、config.sys と autoexec.bat を適当なエディタで作成する。
ATAPI CD-ROM を使う場合、もっとも簡単な config.sys は以下のようになる。

LASTDRIVE=Z
DEVICE=oakcdrom.sys /D:MSCD001
LASTDRIVE は DOS が使用できるドライブレターの上限を決める。 記述がない場合は E: ドライブまでが使用できる。 ここでの設定では必要ないのだが、あとあとの面倒を避けるためにいれておく)
同様に autoexec.bat は以下のようになる。 ここではドライブ D: に CD-ROM を割り振る設定になっている。

mscdex /L:D /D:MSCD001
CD-ROM ドライバの /D オプションの文字列と、MSCDEX の /D オプションの文字列とを一致させておく必要がある。

ついでに Adaptec の SCSI アダプタに CD-ROM をつないでいる場合の config.sys を示す。 ATAPI の場合は oakcdrom.sys ひとつですんだが、SCSI の場合は SCSI アダプタ用の ASPI マネージャと、ASPI マネージャ対応の CD-ROM ドライバという二段重ねで CD-ROM をサポートする。 ASPI マネージャのうち、aspi2dos.sys は AHA-151x,152x 系列の PIO 転送 ISA カード用、aspi4dos.sys は AHA-154x 系列のバスマスタ ISA、aspi8dos.sys は AHA-2940 系列の PCI カード用。 複数種類のカードを挿していない限りはこの中のどれかひとつを選んで config.sys に記述するのだが、ASPI マネージャがアダプタの存在確認を行うはずなので、ディスク容量に余裕があるなら3つとも書いてしまうのも手である。


LASTDRIVE=Z
DEVICE=aspi2dos.sys
DEVICE=aspi8dos.sys
DEVICE=aspi4dos.sys
DEVICE=aspicd.sys /D:MSCD001
autoexec.bat は ATAPI と同じなので省略。 ちなみに aspicd.sys は PD も CD-ROM ドライブとして認識した。

その他のドライバとコマンド

以上で最低限のドライバをインストールした起動ディスクを作成したが、ほかにもいくつか入れておいた方がよいドライバがある(すくなくとも himem.sys は入れておいた方がよい)。 また、format(ディスクのフォーマット)や fdisk(ハードディスクの区画設定)といった、状況によってはどうしても必要になる DOS の外部コマンドもある。 そういったいくつかのドライバ、コマンドを列挙してみると以下のようになる(これですべてではないし、人によってはまったく必要としないものもこの中にはあるだろう)。
デバイス名 所在 説明 備考
himem.sys base5.cab XMS マネージャ XMS メモリ使用時に必要
emm386.exe win98_47.cab EMS マネージャ EMM, UMB 使用時に必要
jfont.sys base5.cab 日本語フォントドライバ
ank16.fnt base5.cab 8x16 半角フォント
ank19.fnt base5.cab 8x19 半角フォント
kanji16.fnt base5.cab 16x16 全角フォント
jdisp.sys base5.cab 日本語表示ドライバ jfont.sys, biling.sys が必要
biling.sys base5.cab 日本語サポートドライバ
jkeyb.sys base5.cab キーボードドライバ 日本語キーの時はないと困る
jkeybrd.sys base5.cab jkeyb 用設定ファイル
ansi.sys win98_51.cab エスケープシーケンスのサポート
コマンド名 所在 説明 備考
format.com ebd.cab フォーマット
fdisk.exe base5.cab ハードディスク区画設定
attrib.exe ebd.cab ファイル属性変更
edit.exe ebd.cab 簡易エディタ
smartdrv.exe (smartdrv.exe) ディスクキャッシュドライバ CD-ROM 中のものをそのまま使う
extract.exe (extract.exe) *.CAB からファイルを展開 CD-ROM 中のものをそのまま使う

日本語表示のできる起動ディスクの config.sys をためしに書いてみると、たとえば以下のようになる。


DOS=HIGH,UMB
LASTDRIVE=Z
DEVICE=himem.sys
DEVICE=emm386.exe RAM
DEVICEHIGH=biling.sys
DEVICEHIGH=jfont.sys /U=0 /24=OFF
DEVICEHIGH=jdisp.sys /HS=LC
DEVICEHIGH=ansi.sys
DEVICEHIGH=jkeyb.sys jkeybrd.sys
DEVICEHIGH=oakcdrom.sys /D:MSCD001
ここに書かれたドライバは当然ながら起動ディスクにコピーしておく必要がある。 jfont.sys が必要とするフォントファイル(ank16.fnt, ank19.fnt, kanji16.fnt)も同様にコピーする。 oakcdrom.sys は ATAPI の CD-ROM を使う場合に必要であり、SCSI の CD-ROM を使う場合にはこの部分を書き換える。

autoexec.bat は上に書かれたものでもかまわないが、emm386 があれば UMB と EMM が使えるので LH(command.com の内部コマンド)と MSCDEX の /E オプションが有効になる。


LH mscdex /L:D /D:MSCD001 /E
さらに smartdrv.exe をその後に常駐させれば、CD-ROM を含めたディスクアクセスが高速化される。



……こんなもんでいいすか?


おまけ

boots98.zip
runsys.com とそのソース、そして Win98 Preview の CD-ROM から DOS 方面のドライバを抜き出すためのバッチファイル。


BACK (Windows 98 Preview)
BACK (LP-Project)