Windows3.1懐かしいですよね~
Windows10や11にインストールして動かせました!
最新Windows上でWindows3.1を動かす
Windows10、Windows11のHyper-Vで動きました
Windows3.1とは?
Windows3.1は現在主流のWindows10や11の遥か昔に使われていたWindowsです。
バージョン番号で遡ればWindows7が記憶に新しいところですが、そのもっと前で、1990年代前半で主に使われていました。
私も1994年に初めてパソコンを買ってもらい、そこにWindows3.1が入っていました。
Windows3.1そのものはOSではなく、MS-DOSというOS上で動作するGUIソフトの1つです。Windowsの名前が付いているだけあり、基本的には今のWindowsと操作性は同じです。
なんで突然Windows3.1?
先日、Windows2000をWindows10上で動かすというのをやってみたところ、普通に動いたので、それならもっと時代を遡ってみようと思い、せっかくなら思い出のWindows3.1をもう一度動かしてみたい! そんな衝動に駆られて今回挑戦することにしました。
最新WindowsのHyper-VでWindows3.1を蘇らせる
- Hyper-Vが動作するコンピュータ(Windows10、11、WindowsServer)
- 空きディスク容量は、1GB以上
- Windows3.1インストールメディア(たまにヤフオクで出品されているのを見かけます)
- MS-DOSインストールメディア(なくても大丈夫です)
- Windows98起動ディスク(なくても大丈夫です)
さて、前置きはこのぐらいにして、いつもの如くHyper-V上で蘇らせてみます。
Hyper-Vを使ってWindows3.1の仮想マシンを作成
Hyper-V仮想マシン作成
Hyper-Vマネージャー仮想マシンを新規作成します。
Hyper-Vを利用したことのない方は、Hyper-Vを有効にしてHyper-Vマネージャーを起動してください。やり方はこちらの記事をご覧ください。

次へ進みましょう。

名前は、分かればなんでもOKです。今回は「Windows3.1」にします。

第1世代を選択して次へいきます。

メモリサイズは、Hyper-V上で設定できる最小値の32MBにしました。
私が実機で使っていた頃は、メモリ8MBでサクサク動いていました。古いOSなので多すぎると動かないかもしれません。

Windows10ならDefault Switchでもなんでも良いです。結局ドライバがないのでネット接続はできません。

ディスクのサイズはこれもまた最小値の1GBにセットします。
ちなみに私が実機で使っていた時は、170MBのハードディスクに収まってました。実容量にして40MBぐらいだったと思います。40MBでOSが動くんですからすごいものです。

ここで起動イメージを指定します。Windows3.1のCD-ROMからは起動できないので、MS-DOSの起動ディスクイメージを使って起動します。

最後に今まで設定してきた内容が表示されるので、間違っていたら、前に戻って修正します。
問題なければ完了ボタンを押して初期設定は終了です。

Hyper-V仮想マシン設定確認
Hyper-Vマネージャーから先ほど構築した【Windows3.1】をダブルクリックするとウインドウが起動するので、設定画面を開きます。

まずはプロセッサの確認。初期値が1つになっていますので、そのままでOKです。Windows3.1なら1つでも多いぐらいです。

次はチェックポイント。いつもなら、自動チェックポイントはオフでよいです、と言いたいところなのですが、今回は設定をミスるとOSすら起動しなくなり、最初からやり直しになるリスクがありますので、オンにしておきましょう。

OKボタンを押して、設定画面を終了します。
Hyper-V仮想マシン起動
Hyper-Vマネージャーから先ほど作成した、【Windows3.1】を起動すると、ウインドウが起動します。起動ボタンを押します。

Windows3.1の前にMS-DOSインストール
私が入手したWindows3.1は日本語版。同じ言語のMS-DOSが必要ですが、MS-DOS 6の日本語版はアップグレード版しか入手できませんでした。。。
一応、英語版であればフルセット版が手に入ったので、英語版をインストールしてから日本語のアップグレード版を上書きインストールすることで日本語化します。
ちょっと強引な方法なので完全には日本語化できないかもしれませんが、今回はWindows3.1がインストールできればいいので、細かいことは気にせず突き進みます。
MS-DOS 6起動
懐かしのMS-DOSを起動します。昔はフロッピーディスクでガコガコしながら起動したもんですが、一瞬で起動します。テクノロジーの進化の賜ですね。
A:\> というプロンプトが表示されれば起動完了です。

パーティション作成
今回は1GBの仮想ディスクを作成しましたが、このままの初期状態では使えませんので、まずはFDISKコマンドでパーティションを作成します。
fdisk
FDISKが起動したら、1のMS-DOSのパーティション作成を選択してEnterキーを押します。

次にパーティションの種類を指定します。今回は1の基本DOSパーティションにします。

大きなドライブに対して処理する場合はYでEnterキーを押します。1GBで大きいドライブ扱いなのが時代を感じます。

パーティションの作成は一瞬で終わりますので、この画面が表示されたら再起動します。

Cドライブのフォーマット
次にさきほど作成したMS-DOS基本パーティションをCドライブとしてフォーマットします。FORMATコマンドを使います。
format c:
本当に実行してよいか確認されるので、Yを入力してEnterキーを押します。するとフォーマット処理が始まります。1GB程度なら十数秒で終わると思います。

フォーマットが終わると、ボリュームラベルの入力を求められます。必須ではないのでそのままEnterキー押してしまってOKです。

無事にCドライブ1GBのフォーマットが完了しました。

MS-DOSシステムの転送
Cドライブから起動できるにするため、SYSコマンドを使って、MS-DOSのシステムファイルをCドライブに転送します。

転送されたシステムファイルをDIRコマンドで確認してみましょう。
おお、昔懐かしの3ファイルがCドライブにコピーされていますね。
- IO.SYS
- MSDOS.SYS
- COMMAND.COM
ん?DRVSPACE.BINなんてありましたっけ? まぁ大丈夫でしょう。これでCドライブのセットアップは完了です。

これでMS-DOSのインストールは完了です。MS-DOSにはシャットダウンという概念はないので、電源を直接オフにします。

MS-DOS 6の日本語版を上書きインストール
次はCドライブに日本語版MS-DOSのアップグレード版を上書きインストールします。
MS-DOS日本語版準備
フロッピー版の場合は、フロッピー数枚に分割されています。Hyper-Vでは物理的なフロッピードライブは利用できないため、フロッピーディスクの内容をイメージ化する必要があります。また、拡張子がVFDじゃないと読み込めないので、他の形式だった場合はVFD形式で作り直す必要があります。
私のものは拡張子がIMGだったのですが、拡張子だけVFDに変更したら使えました。

全イメージファイルの拡張子をVFDに変更したらフロッピーイメージの準備は完了です。

仮想マシンの設定変更
CD-ROMドライブからMS-DOSの起動イメージISOファイルを取り外します。

次に日本語版MS-DOSのフロッピーイメージの一枚目を仮想フロッピーディスクに指定します。

最後にBIOSの設定で起動順序を変更して、フロッピーから起動できるよう、一番上に移動させたら、OKボタンを押して設定を保存します。

MS-DOS日本語版アップグレードインストール
Windows3.1の仮想マシンを起動すると、フロッピーイメージで起動します。
日本語になっていればOKです。キーボードを選択します。通常は106キーボードを選択すれば問題ありません。

ここからは画面の流れに沿って進めていきます。Enterキーを押します。

ここではオススメは無視して、現在の英語版MS-DOSを日本語版アップグレードで置き換えます。

選択内容を確認したら、この設定でよいを選択してEnterキーを押します。

こちらもこのまま進みます。

ここも特に変更は不要です。

この画面でEnterキーを押すと、MS-DOS日本語版の上書きインストールが始まります。

ここでなんとも懐かしい、フロッピーディスクの入れ替え作業です。当時はフロッピーディスクを物理的に交換したのですが、仮想マシンではどうやるのでしょうか?

正解は仮想マシンのメニューからフロッピーディスクの入れ替えができます。
2枚目のディスクファイルを選択してEnterキーを押すと自動的にインストールが再開されます。

6枚目まですべて交換すると、最後にフロッピーディスクを取り出すよう促されます。

こちらも仮想マシンのメニューからフロッピーディスクの取り出しを実行すればOKです。

これでMS-DOSの日本語版上書きインストールが完了です。

このまま再起動すると何故かループしてしまいましたので、仮想マシンを停止させます。

仮想マシンのBIOS設定で起動ドライブをIDEに変更します。これで日本語版MS-DOSが起動すると思います。

MS-DOS日本語版インストール完了。なんか変な文字が表示されていますが、無視して大丈夫です。強引な上書きインストールだったのでちょっと変なのかも知れません。

これでWindows3.1のインストールCD-ROMを使えばインストールできる!と思ってしまいましたが、まだその前にやることがあります。
そう、このままの状態ではCD-ROMが読み込めないのです。
CD-ROMドライバの導入
CD-ROMドライブをMS-DOS上で認識させるには、起動時にドライバーを読み込む必要があります。標準では入っていないので、どこからか調達する必要があります。
CD-ROMドライバの入手方法
Windows98の起動ディスクを持っている場合は、その中に入っていますので取り出して使えます。久しぶりに発掘してきました。フロッピーディスクなんて懐かしい。

起動ディスクがなくてもWindows98が起動するパソコンがあれば起動ディスクを新しく作ることができます。WindowsMeでも作れるかも知れませんが私がMe使ったことないのでなんとも言えないです。
CD-ROMドライバのファイルは、「oakcdrom.sys」です。これをWindows3.1の環境内にコピーします。今回は、C:\Extフォルダの中に格納しました。他のフォルダに入れた方はこれ以降読み替えてください。
こちら参照してみてください
Autoexec.batとConfig.sysファイルの編集
ここからはMS-DOSのコマンドの知識が少し必要です。
でも大丈夫です。コマンドも書いて置きました。
まずは、CD-ROMドライバーファイルがきちんと持ち込まれているか確認します。ここで格納パスとファイル名を覚えておきましょう。この後使います。

Config.sysの編集
このConfig.sysファイルはMS-DOSを起動する際に、どんな設定で起動するか、どんなドライバーを読み込むかなど設定を定義するファイルです。
念のため今のファイルをコピーしてバックアップしてから、エディターで開いて編集します。

次の1行を追記して保存します。さきほど入手したCD-ROMドライバーを読み込んでDドライブとしてアクセスできるように設定します。
DEVICEHIGH=C:\EXT\OAKCDROM.SYS /D:MSCD001

Autoexec.batの編集
Autoexec.batファイルは、特別なバッチファイルです。MS-DOSが起動した時に一回だけ実行されるバッチファイルで、主に起動後に実行したいコマンドを列挙します。
Config.sysファイル同様に、こちらにもバックアップを取ってから、CD-ROMドライブを使えるようにするための1行追加を追加して保存します。

LOADHIGH=C:\DOS\MSCDEX.EXE /D:MSCD001

設定を保存したらリセット
MS-DOSには再起動とかそんな概念はないので、仮想マシンをリセットします。Hyper-Vマネージャー上から出来ます。
ようやくWindows3.1インストール!
お待たせしました。もう飽きてしまった方もいるかもしれません。私、試行錯誤しながらやっているため、ここまで来るのに2日かかってます。
まずは仮想マシンを停止します。

仮想マシンのCD-ROMドライブにWindows3.1のインストールディスクイメージファイルをセットします。

さきほどのCD-ROMドライブの設定がうまく行っていれば、起動時にこのように表示されます。

そしてさっそくCD-ROMドライブの中にあるセットアップファイルを検索します。見つかりました。

Windows3.1のインストールは自分でセットアッププログラムを起動する必要があります。まだOSではなく1つのソフトウェアだったのもこの辺から実感できます。
それでは、setup.exeを起動してみましょう。

いつもの青色のセットアップ画面が起動しますので、Enterキーを押します。

高速セットアップが簡単です。

ものすごい勢いでWindowsのインストールが完了します。

キーボードはいつもの106キーボードです。

おおお、懐かしいWindows3.1のウインドウが表示され始めました!
ユーザ名を入力したら、続行を押します。

続行です。ついついマウスでクリックしちゃいそうになりますが我慢です。もしクリックしようとして画面がフリーズしてしまった場合は、仮想マシンをリセットしてやり直しましょう。

2022年にWindows3.1の世界に飛び込むわたし。

プリンターなんてものはないので組み込みボタンを押して先に進みます。

あっと言う間にインストールとセットアップが完了します。Windowsを再起動しましょう。

Windows3.1起動!!
さあ、お待ちかねのWindows3.1起動の瞬間までもう少しです。
Windows3.1を起動する時は、winと入力してEnterキーを押します。

起動ロゴきたぁーー! 懐かしい!!!

♪チャチャーーーー
動いたっっ

最新Windows上でWindows3.1起動完了!!!
やっぱ、Hyper-V凄いわ。さすがMicrosoft純正スーパーバイザー。

このWindows3.1の荒削りな感じがノスタルジーなひとときを感じさせてくれます。
このウインドウだけ25年前にタイムスリップです。
マウスが動かず&すぐにフリーズする問題
なんとかWindows3.1が起動するところまではできましたが、インストール時の時と同様、マウスが使えません。
Windows3.1のインストールが完了すれば動くかな~なんて楽観視していたのですが、ダメでした。
しかもWindows3.1の画面から一度フォーカスが外れてしまうと、戻ってもキーボードの操作自体もできなくなってしまうという状態。これではさすがに使えません。
マウス設定の変更
マウスの設定を次のように変更することで、Windows3.1のウインドウからフォーカスが外れてしまっても、また戻った時にキーボードの操作ができるようになりました。
Windows3.1のセットアップコマンドを実行します。
cd windows
setup

ここでWindowsの細かいセッティングの変更ができます。マウスがマイクロソフトマウスになっていますが、これだと調子が悪いです。なぜ悪いのかまではわかりません。

マウスを COM1上のGeniusシリアルマウス に変更します。
COM1ってなんだっけ?と思ったんですが、そういえばこの頃はUSBマウスなんてありませんでしたね。というか、USBというもの自体がありませんでしたので、キーボードやマウス類はPS/2コネクタ接続でした。ちなみにPlayStation2ではないですよ。なんだか時代の流れをこんなところでも感じます。

この設定で変更完了すればマウスの設定変更は完了です。

Windows3.1のCD-ROMが必要となります。セット済みの場合はCD-ROMドライブを指定します。

この設定後にWindows3.1を起動すると、フリーズ問題が改善されていると思います。
メモリの最適化
それでもまだWindows3.1を触っているとなぜかすぐフリーズしてしまいます。
仮想マシン的には32MBも割り当てているので、十分動くはずなのですが。
ただ、この頃のパソコンって物理的に搭載させているだけではダメで、Config.sysでチューニングしないとダメだったのを思い出しました。
手書きですべて書き換えるのは至難の業なので、memmakerを使って自動でやってもらうとよいでしょう。
memmaker

いろいろ書いてありますが、Enterキーを押しちゃいます。

自動でチューニングしてくれているようで、何回か再起動が入ります。

設定が整うと、こんな感じで確認が入ります。「システムは正常に動作しているようですか?」という質問が控え目でいいですね。特にエラーが出ていなければ「はい」でEnterキーを押します。

最後にチューニング結果を教えてくれます。
コンベッショナルメモリの空き容量が46KBも増えました。え?たった46KB?
メモリをギガバイト単位で搭載している今のPCからみたら砂一粒のような量ですが、当時のOSは640KBまでしかメモリを扱えないという世界(厳密には拡張メモリドライバを組み込んで数十MBまで)だったので、これだけ捻出しただけでも動きが変わってきます。

Windows3.1仮想マシンを作成してみた感想
いかがでしたか?
Windows3.1をご存知の方は当時のことを思い出して懐かしんで頂けたのではないでしょうか。また知らない方には、こんなWindowsもあったんだ~と知ってもらえたかと思います。
いろいろなOSを仮想マシン上にインストールしてきた私ですが、今回は手こずりました。
やはり25年以上前のOSであるMS-DOSとWindows3.1をWindowsのHyper-Vで動かすのは最近のLinuxを動かすより難しかったです。
まだ私は当時MS-DOSで遊んでいた時の知識があったのでなんとかなったのかもしれません。
それにしても、今回の仮想ディスクのファイルサイズはなんと、37MB。この容量でOSが動いていたというのもそれはそれで凄いことです。
そういえば、Windows3.1を動かしていた当時のパソコンのCドライブは170MBでした。ある意味すごいな(^^;)

更に25年後には、当時Windows10というOSがあって、メモリもストレージもGB程度で動いていて軽量で優秀なOSだったなぁ~なんて回想されるのでしょうか。それともその頃にはもうパソコンなんてもの自体が過去の遺産になっているのでしょうか。
今回はこのブログを書きながら、記事には書けなかった作業の途中経過をnoteに綴っていますので、興味のある方はご覧ください。

それにしても、今回はかなり苦戦した~、正直もうやりたくないので、この環境はエクスポートしてバックアップ取っておこうと思います。
最後に
もし、もっと安定して動かせた方や、マウスを動かすことが出来た方がいましたらコメントで教えてくださいm(_ _)m
コメント