ここでは、仮想マシンを作成・実行可能な仮想化ソフトウェアの1つであるVirtualBoxのゲストOSとしてMS-DOSを起動する方法について記します。
MS-DOSは、当初、FDを6枚使って、Windowsと世代交代した後は、Windows 3.0/3.1(3.x系)では合わせてフロッピー9枚を使ってインストールでき、また、Windows 95/98(9系)と後にCDブート可能となった当初の98SEにおいては、インストール用起動ディスクとして、また、レスキューディスクとして使用されています。
MS-DOSの起動はとても簡単です。
ここでは、仮想マシンを使ってMS-DOS起動ディスクが正しく動作するか否かのチェックと構成ファイルごとの用途を確認しながら101キーボードや106キーボード、英語環境や日本語環境などMS-DOSの挙動の検証を想定するものとします。
つまり、仮想マシンを作成し、仮想ハードディスクにインストールするのではなく、予めフロッピーディスク(イメージ)内に入れておいたMS-DOSを起動するものとします。
内蔵FDDがないPCが主流ですが、これがなくてもUSB接続FDD、それよりも、仮想FDDが便利、フリーソフトウェアの中では、その名もVirtual Floppy Drive(VFD)が広く使われているようです。
話は前後するものの、MS-DOSやPC DOSは有償OSであり、既に販売終了となっている為、入手できませんが、MS-DOS販売・サポート終了後の代替を意図したオープンソースのFreeDOSを利用することもできますし、他にも互換性を考慮したDR DOS/DR-DOS、更にこれらの派生などを利用することもできるようです。
MS-DOSをVirtualBoxなどの仮想マシンでゲストOSとして起動する為には、MS-DOSを入手する必要があり、MS-DOSが入ったフロッピーディスク(イメージ)が手許にあれば、それを使い、なければ、下記のような方法で作成、入手します。
VirtualBoxでMS-DOSを起動する場合は、下記の要領で行います。
尚、Windows XP/Vistaで作成できる[MS-DOSの起動ディスク]は、Windows 9x系/ME、時にXPのインストール時には選択しないのが賢明です(が、FATフォーマットは有効なのでファイルを総入れ替えすれば、これらのインストール用にも使えます)。
これは、MS-DOSのファイル名であるCOMMAND.COMのバージョンと起動ディスク内のファイルは、基本的に互いに対応するバージョンを利用する必要があり、XP/Vistaでは、98/98SE/MEなどでインストール前に利用していたFDISK.EXEやFORMAT.COMを直接使わないこともあってファイル自体がHDDやインストールCDなどには(、たぶん)存在せず、実質XP/VistaのCOMMAND.COMとマッチするFDISK.EXEやFORMAT.COMが存在しないことに起因するものと推測します。
Windows 3.x系では、MS-DOSのインストール後にWindows 3.xをインストールし、MS-DOS上でWindows 3.xを動かす仕組み、Windows 95からは、MS-DOS利用者の移行促進の為、内部的に残したMS-DOSを多数の外部アプリが利用していた関係でFAT32上に実装されるようになった95 OSR2/98/98SE/MEに至るまでサポートすることになり、2000/XPになってからは、COMMAND.COMの後継としてCMD.EXEをのせたものの、併存しているという経緯があるようです。
つまり、営利追求企業の発想の1つとしてサポートを切ることにより、限りなく全ての人に、より多くの人々に次世代モデルに移行してほしいという狙いがあり、MS-DOSもそのターゲットに十分に成り得るということもありますし、他方、MS-DOSも既にサポートが終了したWindows 3.x系/9系/ME/NTと同じOSであり、そう考えるとMS-DOSだけ継続サポートしている方がむしろイレギュラーであるという発想もあり、何れにしても切りたくてウズウズしているのは、間違いないでしょう。
まさに9系やMEとはファイルシステムからしてアーキテクチャを異にするXP/Vistaに移行したタイミングというのは、そうした企業心理からすればMS-DOSのサポートをやめる絶好のタイミングでもあったはずです。
が、ここからはあくまで仮説ですが。。。抵抗の大きさを懸念した結果としての見掛け上なのか、BIOSアップデート時の起動など他の用途に残す方が都合が良かったのか、これら両方なのか、MS-DOSのサポート自体は継続しているものの、XPではFDISK.EXE/FORMAT.COM使わないんだし、他から持ってきても使えないようにCOMMAND.COMのバージョンや中身を変更したり・・・システム的には不要なはずのCOMMAND.COMに敢えてなんらかの手間をかけることによって他(レガシーOS)からFDISK.EXE/FORMAT.COMを持ってきても使えないようになっているのではないか。。。あくまで仮説ですが、そんなところじゃないでしょうか。
それを後押しするようにコマンドプロンプト、WSHやPowerShellの投入、Windows PE/Preinstallation Environmentと機能強化された選択肢も増えましたしね。
そうした企業心理もMS社のOSの変遷とサポート期間という視点からすれば妥当なのかもしれません。
一方で一消費者心理としては、仮想マシンが一般に利用できるようになった時期、レガシーOSがまだまだ世に残っている現実、世界的な景気動向による消費者心理の冷え込み、それなりに需要はあるが儲かるほどでもない、サポートは既に切れている等々の状況からしてMS-DOSをオープンソース化するのはちょっと違う気がしますが、MS-DOSやレガシーOSのファイルやディスクイメージを無料公開してほしい、なんて思ったりはしますね。
でも、そうした思いにこたえるべく開発され、それ以上の機能を備えたオープンソースのFreeDOSがあるからいいですよね。
英語版+英語101キーボード、英語版+日本語106キーボード、日本語版+日本語106キーボードなどホストOSに気兼ねすることなく、手軽にいろいろ試してみることができるのも仮想マシンのよいところですよね。
それぞれに応じて以下のCONFIG.SYSやAUTOEXEC.BATの内容を調整すれば、それなりに使えるでしょう。
/D:スイッチの値、この例では CD001 は何でもOKですが、AUTOEXEC.BATのMSCDEX.EXEとCONFIG.SYSのCD-ROMドライバ(OAKCDROM.SYS)の/D:スイッチの値は同じ値にしなければいけません。
/L:スイッチの値、この例では P は、インストールCD(、またはディスクイメージ)の入った(仮想)CD-ROMドライブを指し、使っているドライブレターと違うとか、他のドライブレターが好きとか、既存のドライブとバッティングするとか、LASTDRIVEが未指定、または、Pより前までしか指定していない場合などには環境に応じて書き換える必要があります。
DEVICEとDEVICEHIGHどちらを選択するかは、チューニングの範疇、JKEYB.SYSのオプションは、どちらもなくても利用できる場合もあります。
例えば、CD-ROMドライブの読み込みが不要ならMSCDEX.EXEとOAKCDROM.SYSは不要なのでディスクから削除すると共に、この場合、AUTOEXEC.BAT自体不要となるので削除、CONFIG.SYSから当該行を削除するか、[rem]または[REM]としてコメントアウト、更にドライブ指定をする行もなくなるのでLASTDRIVEの行も削除またはコメントアウトします。
尚、Windowsでは、ファイルエクスプローラの[表示]や[ツール]メニューの[設定]や[フォルダオプション]から[表示]タブを選択し、[全てのファイルを表示する]にチェック、[保護されたオペレーティングシステムのファイルを表示しない(推奨)]のチェックを外して[適用][OK]とすること、しないとAUTOEXEC.BATやCONFIG.SYS、IO.SYS、MSDOS.SYS等々のファイルが表示されません。