ここでは、仮想マシンを作成・実行可能な仮想化ソフトウェアの1つであるVirtualBoxのゲストOSとしてWindows 98 SE(98SE/98 Second Edition)をインストールする方法について記します。
サポートも切れ、スタンドアローンとして大切にしてきたWindows 98 Second Edition、いわゆる98SEの入ったPC、年が経つに連れ、常々、何かに使えないかと思いあぐねていた。
そんな折、仮想マシンという大昔からあった技術が、一般に広く使えるようになり、これを使わない手はないと思うに至る。
インストールCDがあればもっと簡単なのに、当時、リカバリCDは付属していたものの、インストールCDは付属してなかったし、ハードディスクから吸いだせないものかと考えた。
HDDからどんなデータを吸い出すべきか、あーでもない、こーでもないと数秒考えたが、あれとあれで事足りるんじゃないか?とふと思い立った方法をやってみた。
すると、いろいろ悩んで費やした時間がバカバカしくなるほど(だから数秒じゃないのは明らか)、あっけなくディスクイメージ(.iso)ができたものとします。
インストールCDなどインストールメディアのないWindows 98/98SEプリインストールPCのHDDからインストールディスクイメージを作成するには、以下のようにすると良いでしょう。
必要なファイルだけを絞り込むのは厄介で難しく、かと言って全部というのもなんなので多少、的を絞ったふりをして任意の作業フォルダにコピーします。
具体的には、任意の作業フォルダC:\work_98seにWINDOWSフォルダにある上書きインストール用のsetup.exeを含むOPTIONSフォルダ、後は、なんとなくCOMMAND、SYSTEM、SYSTEM32、WINDOWS_UPDATE_SETUP_FILESあたりが重要そうなのでそれらフォルダとその中身を全てコピー、更に細かい選別は難しいのでWINDOWSフォルダ内のファイルを全てコピーします。
つまり、コピーする必要があるフォルダやファイルは、WINDOWSやWINNTといった(環境変数[Windir]に設定されている)システムルートフォルダにあるもののみです。
FDを起動ディスクとして非ブートCDからセットアップ(インストール)することとし、このままImgBurnのようなソフトでディスクイメージを作成します。
ディスクイメージを作成したら、後述のように起動ディスクまたは起動ディスクイメージを作成、fdisk、formatを実行、仮想マシン内にCドライブを作成した後、(仮想)CDドライブにcd(移動)し、...\OPTIONS\CABSにあるsetup.exeを引数pj付きで実行し、仮想マシン内のCドライブにインストールします。
[PROMPT_CD-DRIVE_ROOT] > [システムルートフォルダ]\OPTIONS\CABS\setup.exe /pj
または、
[PROMPT_CD-DRIVE_ROOT\[システムルートフォルダ]\OPTIONS\CABS\ > setup.exe /pj
[PROMPT_CD-DRIVE_ROOT]は、(仮想)CDドライブを指し、Dなど該当するドライブレターとなります。(Windows 3.x/9系/MEには一般にリカバリドライブなどはないのでCD-ROMドライブはD:\)
Windows上でディスクイメージ作成作業をするなら、コマンドプロンプトでsubstコマンドを使って任意のドライブレターにマウントすれば、作業フォルダ(ここでは、work98se)を任意の深い階層に作ったとしても仮想的に階層を浅くすることができ、ドライブ直下に見えるのでImgBurnなどでディスクイメージを作成する場合に便利ですし、ブートイメージの指定時など他のケースでも有用です。
インストール時には、Windows 98 SEの場合、95とは異なり、プロダクトIDではなく、プロダクトキー(レジストリに登録、もしくはPC本体側面や裏側、CD/DVDケースやカバーに貼付されたシールに記載)が必要になります。
尚、ここでは、CD/DVD(ディスクイメージ)は、ブートできないタイプとし、MS-DOS、または代替DOS起動ディスクを使ったインストールを行うものとします。
Windows 98/98SEで起動ディスクを作成するとフロッピーが2枚になりますが、相応に整理すれば、1.44MBに収まり、1枚にできます(し、ディスクイメージに入れ込むことさえも可能です)し、Windows ME/Millenniumで作成した起動ディスクでも使えます。
Virtual PC 2007とVMware Player 3.1.6は甲乙つけがたく、残念ながら、ことWindows 98 SEに関しては、VirtualBox 4.2.12は微妙、他の仮想マシンがなければ(他の仮想マシンを知らなければ)、使えるだけいっかこれで。。。レベルというのが実感です。
VirtualBoxへのインストールで手間取った際に半ばあきらめてVirtual PC 2007をインストール、試しにWindows 98SE(/98)をインストールしてみることにし(、更についでにVMware Playerもインストールして試してみることにし)ました。
結局、Virtual PC 2007にも、VirtualBoxにも下記の手順でインストールはできましたが、少なくともWindows 98SE(/98)に関しては、この2択なら、最新のVirtualBoxでも挙動にモッサリ感がある為、仮にVirtualBox一本で行こうと思っていた人でも、ましてVirtual PCの操作感を体感してしまうと尚更、元の98搭載機である実機以上にと言ってもいいほどサクサク・キビキビ動作するVirtual PC 2007を選択したくなるでしょう。
また、後述していますが、Windows 98SE(/98)のインストールに関してもVirtualBoxは対策により解消するもののいろいろありますが、Virtual PCでは、何かとすんなり済みます。
ただ、もう1つの選択肢としてVMware Playerも捨てがたいものがあり、ファイルエクスプローラの拡大・縮小時のファイル表示時の見た目は若干微妙、VirtualBoxほど気にならないものの、マウスの動きやメニューの開き具合はVirtual PCの方が上は上ですが、それでも一考の価値があるのはVMwareの既定の汎用ドライバの充実度とVMware Toolsがあるからです。
VMware Playerでは、仮想マシン上で[仮想マシン(V)]>[VMware Toolsのインストール]を行うと色が12色/256色/32ビットカラーとなり、解像度については、複数の選択肢から選べるのに加え、仮想マシン自体をマウスでリサイズ(拡張/拡大)すると、最小値はあるものの、おもしろいことにモニタ上もプロパティ上も事細かにリサイズした解像度に対応してくれます。
ちなみにこの[VMware Tools]は、95では公式には未対応のようですが、実際にはインストール・適用可能、XPではプリインストールされています(再インストールも可)。
一方、VirtualBoxのデフォルトのドライバでは、解像度は640x480のみで仮想マシンのリサイズ自体はできますが、ゲストOSで設定されている解像度のまま周囲に余白(余灰?)ができ、この他、メニューから[ビュー] > [スケールモードに切り替える]を選択すると縦横比を維持した状態で拡大(・縮小)でき、更にGuest Additionsというパッケージをインストール(≒適用)するとVMwareのように色も複数から選択可能となり、解像度も変更可能になります。
ただ、このようなゲストOSインストールとデフォルトの挙動といった辺りは、仮想マシンでできることの、ほんの一部でしかなく、オープンソースの仮想マシンでできることを比べてみると、そのごく一部として拡張API(C++/Java/Python対応)があるというだけでもVirtualBoxが抜きんでている感があると言えるでしょう。
ディスクイメージを作るに当たってImgBurnのようなライティングソフト、当時起動ディスク(2枚)は作成したものの、今では古くなったマシン(98SEののってるマシンとか)ではHDDは健在もFDDやCD/DVDドライブは既に故障、(95/98/98SEはサポート対象外も)作業マシン上ではあると便利なVirtual Floppy Disk/VFDのような仮想FDDを、CD/DVDドライブ搭載マシンは他にもあるものの今回使用するのはディスクイメージなので物理的なCD/DVDドライブは使わないわけで、そのCD/DVDディスクイメージ(iso)をマウントする為、仮想BD/CD/DVDドライブ作成ソフトウェアを使うものとします。
このように対象マシンに限らず、物理的なFDドライブがある分には、良いですが、仮想FDDしかない場合、手許に起動ディスクがある場合でも宝の持ち腐れとなってしまいます。
この場合、新品はないでしょうから(信頼のおける先から)中古で外付けFDDを購入するとか、親類・友人・知人等で物理的なFDDを利用可能なPCを持っている人がいれば、PCを借りるなりして単なるコピーではなく、ディスクイメージとして作成し、USBメモリなどにコピーさせてもらうか、インターネット上から・・・、または、ディスクフォーマット可能なソフトウェアなどでFAT12フォーマットした上でDR DOSやFreeDOSを使うとう手もあり、MS-DOSがないとできないというわけではありませんが、実物の起動ディスクフロッピーを持ってるという場合には、尚更、切なくもほんの少し遠回りな作業が必要になります。
初期のWindows 98のインストールCDは、CDブートできなかった為、インストールCDの他に、このCDを起動する為のMS-DOSの入ったフロッピーディスクを起動ディスクとして使用していました。
Windows 98/98SE時代の途中でCDブート可能となり、ブート可能なインストールCDが付属するようになりました。
ただ、MS-DOSやPC DOSは有償OSであり、既に販売終了となっている為、入手できませんが、MS-DOS販売・サポート終了後の代替を意図したオープンソースのFreeDOSを利用することもできますし、他にも互換性を考慮したDR DOS/DR-DOS、更にこれらの派生などを利用することもできるようです。
VirtualBoxでMS-DOS起動ディスクを使ってWindows 98/98SEをインストールする場合は、下記の要領で行います。
これでインストールは終了ですが、画面が真っ黒になったりすることもあるので、以下、注意点を追記します。
さて準備段階はこの辺にするとしてVirtualBoxにWindows 98SEをインストールすること自体は、すごく簡単なはずなのに、簡単なことが簡単にいかないことがあります。
例えば、XPやVistaでAドライブを[フォーマット]する際の[MS-DOS用の起動ディスクを作成する]オプションを見て「よし、これはWindows 95を含む9x系や3.1系、MEの起動ディスクに使える(はず)」と思い込まないことです。
こうしたことにはチャレンジ精神も大切ですが、素直に98/98SE/MEで作成した起動ディスクを使えば、すんなり事が運びます。
例えば、インストールにSETUP.EXEを使う場合には、パーティション作成やフォーマットは、自動やインストーラ上で設定するわけではないので、起動ディスクから、または、当該パスに移動して[fdisk]、[format]を事前に実施するのを忘れずに。
それと結構ハマると先入観から抜け出しづらくなりがちなのが、EMM386.EXE問題、ちゃんと冷静に下記のような思い込みから解き放たれれば、決してハマることはないでしょう。
例えば、インストール後、再起動したら、画面が真っ黒になってしまった、これは失敗だったんじゃないかなんて勝手に決め付けて思い込まないこと、だって後述するようにそれは実はインストールは成功しているのであって対策もちゃんとあるのだから。
例えば、EMM386.EXE行の[RAM]を[NOEMS]にするんだって情報が先行して、起動ディスクのCONFIG.SYSにEMM386.EXE行を作って修正しなきゃなんて勝手に思い込まないこと、だってそれはインストール完了後の真っ黒画面の対策で仮想マシン上のCドライブのCONFIG.SYSで修正するという話であって起動ディスク内の話ではないんだから。
例えば、起動ディスクで起動する際、"EMM386 not installed unable to set page frame base address"といったエラー表示やEMM386.EXEがインストールされなかったといったようなエラーメッセージに動じないこと、だって画面が真っ黒になる際の対処法をとれば、仮にその後もエラー表示されたとしてもなんの問題もないんだから。
例えば、画面真っ黒対策を講じて、いよいよ再起動して98SE起動!と思ったところで期待と異なり、xxx.vxdがないといったエラーメッセージとか、文字化けしたような変な画面になってしまったとしても動じないこと、だって[Enter]を数回押していくと仮想マシンがなにやら処理中になり、しばらく画面は黒いままだけど、気長に待ってれば、ちゃんと起動するんだから(後で攻略すべき事柄はあるにしても)。
こうしたポイントを押さえておけば、90%以上成功したも同じです。
Windows 98/98SEの起動ディスクとしてXPやVistaで作成したものは利用できませんし、Windows 95で作ったものより便利で有用な98/98SE、または、MEで作成したモノ、またはそのイメージファイルを使いましょう。
但し、XPやVistaでのFATフォーマットは有効なのでディスク自体は使えますが、ディスクを使う場合でも「ファイルは総入れ替え」しましょう。
Windows 3.x系/Windows 9系/MEではCOMMAND.COMがMS-DOS、または、MS-DOSモード(、XPでは、MS-DOSモードではなくなり、後継のコマンドプロンプト(CMD.EXE)となるものの、COMMAND.COM自体は健在)が使われますが、Win 98/98SE/MEの起動ディスク内においては、COMMAND.COMが、認識できるファイルが必要、逆に言うとその他のファイルがCOMMAND.COM(MS-DOS)のバージョンにマッチしている必要があります。
つまり、いろいろなWindowsバージョンで作った起動ディスクからファイルをかき集めて継ぎはぎしても、その継ぎはぎ具合によって例えば、FDISKやFORMATが無効なコマンドとされたり、MS-DOSのバージョンが異なるといったエラーが表示されることがあります。
だからと言ってUNIX/Linuxのtouchコマンドなどでタイムスタンプを同じにすれば・・・なんていうのもNG。
よってCD-ROMドライバやドライブを読み込むMSCDEX.EXEなど直接MS-DOSバージョンと関係ないファイルを除き、基本的に同じ場所(バージョンのWindows)から各種ファイルを取得しましょう。
起動ディスク内のファイル群は一様ではなく、いろんなバリエーションがあり得ますから、あるファイル群を見てそれが全て必要であると思いこまないように注意が必要です。(MS-DOS起動ディスクのファイル構成)
これは、Windows 98SEの起動ディスクに98SE搭載マシンのHDD内から持ってきたファイル、新規作成のAUTOEXEC.BATを追加、既存のCONFIG.SYSに追記したものです。
尚、Windowsでは、ファイルエクスプローラの[表示]や[ツール]メニューの[設定]や[フォルダオプション]から[表示]タブを選択し、[全てのファイルを表示する]にチェック、[保護されたオペレーティングシステムのファイルを表示しない(推奨)]のチェックを外して[適用][OK]とすること、しないとAUTOEXEC.BATやCONFIG.SYS、IO.SYS、MSDOS.SYS等々のファイルが表示されません。
MS-DOS起動ディスクを使ってWindowsをインストールする場合、FDISK.EXEでパーティション作成・確保、FORMAT.COMでファイルシステムを設定する為、起動ディスクにこれらファイルを入れ、FDDがAドライブ、CDドライブがPドライブとすると下記のような手順で進めることになります。
または、
但し、後者のディレクトリパスが長い(階層が深い)と指定が長すぎるよ!と怒られる場合があります。
このようにWindows 98/98SEでは、95/XPなどと違い、setup.exeを使う場合には、未対応のACPIに対処する為、[ /p j ]というオプションと引数付きで指定します。
その際、初回起動時に[ EMM386 has detected error # ... ]、[To restart your computer , press ENTER.]のように「。。。メモリエラーの影響を最小限にする為、コンピュータ停止した。。。」、「再起動するには[Enter]を押せ」といったエラーメッセージが表示されることがありますが、1度、場合によっては、数回再起動すれば解消するでしょう。
Win98/98SEで[setup.exe]に[ /p j ]オプション、引数を付けずに[setup]とすると最終的に起動はできるものの、通常モードで起動する前に(DOS画面である黒の背景に白字で)[xxx.vxdが見つかりません]といったようなエラーがいくつか出力され、場合によっては文字化けした状態になります。
数回[Enter]を押していけば、カーソルが止まり、画面がクリアされ、カーソルがトップに表示され、しばらく(かなり長いこと)経つと通常モードで起動、ハードウェアの自動検出後、ドライバのインストールやそれに伴い、場合によっては、数回に渡り再起動することになり、最終的に通常モードで起動する際にも、結構長い間待たされます。
この時に文字化けしているエラーメッセージは、通常モードで起動する度に表示され、[Enter]も都度押す必要がある為、嫌でも気になって無視するわけにもいかないでしょう。
このエラーを解消するには、まず、そのエラーの要因になっているファイル名を書きとめるなどして覚えておきます。
もし、文字化けして読めない場合には、[仮想マシン]>[リセット]や[閉じる]などで再起動すれば表示される「可能性も」あります。
そして通常起動した98/98SEの[スタート]->[ファイル名を指定して実行]で[sfc]と入力するとシステムファイルチェッカー/system file checker/sfcなるものが起動します(私同様、そんなもんあったの!?とびっくりする人もきっと多いことでしょう)。
次に表示されたポップアップ画面の[インストールディスクからファイルを1つ抽出する(E)]にチェックをし、テキストボックスに覚えておいたファイルを1つ指定し、[開始]ボタンをクリックします。
ポップアップ画面が切り替わるので[復元元(R)]と[ファイルの保存先(S)]を入力または参照ボタンをクリックして設定します。
この時、[復元元(R)]には、CD/DVDインストールディスクやディスクイメージのWINDOWS(他の名前で作成した場合、そのフォルダ)、つまり、CDドライブが[D:]、システムフォルダが既定のWINDOWSなら[D:\WINDOWS]、または、その下のサブディレクトリにあるはずの[D:\WINDOWS\OPTIONS\CABS]を指定、[ファイルの保存先(S)]には、[C:\WINDOWS\SYSTEM]を指定し、[OK]ボタンをクリックします。
エラーの際に表示されたファイルの数だけ、これを繰り返します。
尚、通常起動後に[msnp32.dllが見つかりません。]といったようなエラーメッセージがポップアップ表示される場合も、この手順を踏みますが、その際は、[復元元(R)]には、[...\OPTIONS\CABS]を指定します。
ちなみにCD/DVDドライブのドライブレターは、98/98SEが認識しているものなのでホストOSの物理ドライブや仮想ドライブとは異なり、[D:]となるのが普通と思われます。
パッと見であれ?Eドライブのはず、いやいやPドライブのはず、おかしいな認識されていないなと、仮想マシン上認識してるのはホントはDドライブだったりするのに物理、または仮想ドライブのドライブレターを一所懸命入力するものだと勝手に思いこんだりしてハマらないよう注意が必要です。
これは、既定のWINDOWSフォルダとは異なるフォルダ名を敢えて指定、または、ImgBurnのようなディスク関連ツールでディスクイメージを作成した際にドライブ直下にWINDOWSフォルダに当たるフォルダを配置しなかった場合(1つ上のディレクトリもディスクやディスクイメージに含まれること)やWINDOWSフォルダに当たるはずのフォルダ名を特に何も考えずに命名した場合もドライバ指定などの際に、自分のCDやディスクイメージのパスが異なることを忘れて、あれ?[D:\...]や[...\SYSTEM]、[...\OPTIONS\CABS]になかったのかな・・・と勝手に思い込んで実は、パス指定を間違えてたなんてことにならないよう注意が必要です。
[スタート]>[設定]>[コントロールパネル]>[システム]>[デバイスマネージャ]タブで確認すると状況に応じて下記のデバイスが自動検出されるものの、インストールディスクにもドライバの見当たらないものもあり、必要ならばドライバを入手、インストールするとよいでしょう。
デバイスの自動検出で不明なデバイスとして[PCI System Peripheral]が検出される場合があります。
ネット情報によっては、Win98/98SEで[setup.exe]に[ /p j ]オプション、引数を付けずに[setup]とした為とする場合もありますが、[ setup /p j ]も含め、数通りやってみたところ、実際には、何れの場合も検出されます。
[setup]時には検出されなかったと思われる[PCI Universal Serial Bus](USB)が、[ setup /p j ]では検出されました。
ポート(COM/LPT)のプリンタポートも検出され、ドライバがないと言われました。
尚、Virtual PC 2007やVMwareでは、自動で汎用ドライバが設定され、ポートは正常に設定されていました。
MS-DOS自体にはCD-ROMへのアクセス方法がない為、多くの場合、OAKCDROM.SYSとMSCDEX.EXEが有用ですが、OAKCDROM.SYSは、ATAPI(IDE)接続CD-ROMドライブ用の汎用CD-ROMドライバであるものの決して万能というわけではないので他のドライバが適している場合もありますし、ましてATAPI(IDE)接続ではなく、SCSI接続なら、それ用のドライバが必要となります。
MS-DOSからCD-ROMへアクセスする際にOAKCDROM.SYSなどのCD-ROMドライバとMSCDEX.EXEを使う場合は、AUTOEXEC.BATとCONFIG.SYSに追記する必要があります。
/D:スイッチの値、この例では CD001 は何でもOKですが、AUTOEXEC.BATのMSCDEX.EXEとONFIG.SYSのCD-ROMドライバ(OAKCDROM.SYS)の/D:スイッチの値は同じ値にしなければいけません。
/L:スイッチの値、この例では P は、インストールCD(、またはディスクイメージ)の入った(仮想)CD-ROMドライブを指し、使っているドライブレターと違うとか、他のドライブレターが好きとか、既存のドライブとバッティングするとか、LASTDRIVEが未指定、または、Pより前までしか指定していない場合などには環境に応じて書き換える必要があります。
CD-ROMドライバでは、当然ながら仮想CD/DVDドライブにもアクセスできますからCD/DVDメディアに焼かなくてもisoディスクイメージそのままで利用することも可能です。
一通りインストールが終わり、再起動すると画面が真っ黒になることがありますが、それが正常で、その後の対処方法があります。
これでWindows 95/98/98SEが正常に起動するはずですが、"xxx.vxd..."といったエラーや文字化けしたような状態になり、画面が乱れたままフリーズしたかのように見えることもあるかもしれません。
(画面が乱れないケースもあり、それを見ると)どうやらアプリケーションと主に.vxdファイルがセットでインストールされる必要があるようで.vxdファイルがあるのにアプリケーションがインストールされていないと画面が乱れる原因になるようです。
その場合、ファイル名が見えるなら、メモをとるなりして、[Enter]キーを1回または、数回押していけば、Windows 95/98/98SEが起動するはずなのでWin 98/98SEセットアップ時のpjオプションにあるようにsfcを使って解決を図ってみるとよいでしょう。
ただ、[Enter]キーを押していくと数回はキーを受け付けた状態となり、その後、処理中になり、キーを受け付けなくなりますが、そこで気長にしばらく待つと(とは言っても10分も20分も待つことはなく、)通常モードの98SEが立ちあがります(95/98も同様)。
だから、気長に気長に。。。すぐにダメだと思ってリセットしたり、電源落としたりしないでくださいね、きっと願いは叶うから。
当初からWin 95/98/98SEでは最初の起動時に画面が真っ黒くなるという認識があってもXPや他のOSも同時にあれこれやっていたりして、いざ、そうした状況になってみるとそれを忘れてインストールがうまくいっていないんだと勝手に思い込み、10回じゃきかないほど[format c:]して再インストール、時に[fdisk]からやり直し、後述のEMM386のエラーが起因しているんじゃないかとネット情報を探しまくり、さんざんやってから「?!」と気づくと一気に力が抜けるのは、まず間違いありません。。。
ちなみに起動ディスク(FDイメージ)上のconfig.sysでEMM386のdevice行をどう書き換えたところで真っ黒画面対処法のインストール済みCドライブ直下のconfig.sysに反映されるわけではありませんし、そもそも、この例の起動ディスクにはEMM386.EXEはありません。
ちなみにインストールが終わったら、仮想マシンのHDDにインストール済みということなので再起動する前にインストールに使ったFDやCD/DVD、もしくはそれらのディスクイメージはアンマウント(解放)しましょう。
少なくとも起動に使うブータブルメディア(、この例ではFD)は、そうしないと、また、セットアップが始まってしまいますから。
仮想マシンの起動設定の[ストレージ]もHDDを最優先するか、HDDだけを選択しておいてもよいでしょう。
尚、Windows 98/98SEのセキュリティサポートは終了しているので、これらを使う場合でも仮想マシンのネットワーク設定でホストオンリーか、ネット接続しないようにしてインターネットやメールを一切せずに利用するのが賢明です。
尚、Windows 98/98SEのファイルシステムは32ビット(Windows 95 OSR2も32ビット)、16ビットだった初期のWindows 95から98/98SEにアップグレードした場合でも、GUI上のFATファイルコンバータで、または、MS-DOSモードのcvtコマンドでいつでもデータも安全に32ビット(FAT32)に変換することもでき、仮に98/98SEからXPにアップグレードする際には、別途、コマンドプロンプトでconvertコマンド(NT/2000/XP)を利用することにより、やはり、使用中のデータも安全にNTFSに変換できるようになっています。