VM上のWindows95とデータの受け渡しはどうやるの?
note読者のみなさま、こんにちは。今回は仮想化マシン(Virtual Box)に構築したWindows95とホストOS間でどうやってデータの受け渡しをすればよいのかというお話をします。Windows95はとても古いOS(1995年発売)なので、思いのほか苦労しました。
VMのしくみ
Windows 10 ProにVirtual Boxを導入した場合、下図に示す構成でゲストOSが動作します。Virtual Boxを動作させるには原則Hyper-Vを無効化する必要があるため、図にはHyper-Vは登場しません。
Virtual BoxはホストOSの上で動きます。Oracle VM Serverという製品だと、ホストOSを使わずにハイパーバイザ型として動作します。詳細は下記サイトにあります。
本稿では、上図においてホストOSであるWindows10と、ゲストOSであるWindows95との間でどうやってファイルのやりとりを行えばいいかという課題に取り組みます。
Windows95へファイルを渡すのは簡単
ホストOSからWindows95に何らかのファイルを渡すのは、それほど難しくありません。Windows95はCD-ROMドライブをサポートしているので、CD-ROMのイメージファイルを作って、Virtual BoxからゲストOSに接続すればよいのです。
CD-ROMのイメージファイルを作成するにはImgBurnというツールを使うと便利です。最新バージョンはv2.5.8.0(2013/6/16リリース)で、Windows10でも問題なく使えます。
ImgBurnを起動して「Create image file from files/folders」を選択することで、指定したフォルダをイメージファイル化することができます。
イメージファイル(.iso)ができたら、Virtual Boxの「デバイス」メニューの「光学ドライブ」で、「ディスクイメージの選択…」から指定すればOKです。
ImgBurnはCD/DVD媒体からイメージファイルを作ることもできます。VMにOSをインストールする際、媒体からだとアクセスが遅い、媒体はいつか読めなくなることがあるので、イメージファイル化しておくのがおすすめです。
Windows95からファイルを持ち出すのが大変
それではWindows95からファイルをホストOS(Windows10)に持ってくるにはどうしたらよいのでしょうか?
実はこれが案外難しいです。
ネットワーク通信はできる?
Windows95ではwinipcfg.exeというツールを使って、OSにIPアドレスを設定することができます。IPアドレスを持たせれば、Windowsの共有フォルダ機能を使って、ホストOSとファイルのやりとりができるはずです。しかし………。
デバイスマネージャでネットワークアダプタにビックリマークが付いていて、正常動作できていないのです。この状態ではWindows95でネットワーク通信を行うことはできません。
USBメモリは使える?
Windows95はUSBに対応しています。といっても、誰も驚かないかもしれませんね。しかし、当時は画期的なことで先進的な機能サポートだったのです。ところが、Windows95のUSBサポートは人類に早すぎました。なぜならば、USB機器が普及していなかったからです。実際にUSB機器が使われるようになっていったのはWindows98からです。
当時は自作PCブームだったこともあり、筆者は自作PCにWindows95や98を導入していましたが、USB機器はこわくて(トラブルが多そうで)使っていませんでした。当時存在したUSB機器といえば、キーボードやマウスぐらいしかなかったのですが、そもそもBIOS(EFIではなくレガシーBIOS)がUSBに対応していないことも多く、USBキーボードを接続してもBIOSのセットアップメニューに入れないというオチがあったのです。また、キーボードやマウスは頻繁に挿抜するものでもないので、USBというありがたみも薄かったのもあります。
普段、Windowsを使うときはUSBキーボードだけ筐体に接続していれば問題ないのですが、BIOSセットアップメニューに入りたい時は、PS/2キーボードもつなぐ必要があり、結構面倒でした。
当時、Windows95を使っていた時から20年以上が過ぎました。そして、今回Virtual Box上ではありますが、USBメモリが使えるか試してみましたが、Windows95がハングアップしてしまってダメでした。このことは思い出として、そっとしておくことにします。そう、筆者は永い夢を見ていただけなのです。
共有フォルダ機能があるじゃない!
仮想化ソフトならではの機能として、Virtual Boxには共有フォルダという機能があります。この機能を使うと、ゲストOS(Windows)に新しく共有フォルダが作られ、ホストOSとデータのやりとりを行えるのです。通常、Windows標準の共有フォルダというとネットワーク経由を介しますが、Virtual Boxの共有フォルダはVirtual Box自身が仲介役となり、ゲストOSとホストOSをつなぎます。
共有フォルダ機能を利用するためには、ゲストOSに特別なソフトウェアを導入する必要があります。Virtual Boxのデバイスメニューから「Guest Additions CDイメージの挿入…」を選択することで、ソフトウェアを導入できます。導入後、ゲストOSでエクスプローラーを開くと、「VBoxSvrのshare(Z:)」という共有フォルダが新しくできています。
Virtual Boxの設定では「共有フォルダー」で、ホストOS(Windows10)のパスを指定しておきます。こうすることで、ゲストOSから共有フォルダにファイルを置くと、ホストOSからファイルを取得することができるというわけです。
この機能を実現するために、ゲストOSにVirtual Box専用のデバイスドライバがインストールされます。コマンドプロンプトでdriverqueryコマンドを実行すると、Windowsに導入されているデバイスドライバを調べることができます。
C:\>driverquery
モジュール名 表示名 ドライバの種類 リンク日時
============ ====================== ============= ======================
VBoxGuest VirtualBox Guest Drive Kernel 2019/07/12 18:07:18
VBoxMouse VirtualBox Guest Mouse Kernel 2019/07/12 18:07:19
VBoxSF VirtualBox Shared Fold File System 2019/07/12 18:07:19
VBoxVideo VBoxVideo Kernel 2019/07/12 18:07:18
共有フォルダ機能を実現するために、Virtual Boxは仮想デバイスをホストOSに見せています。仮想デバイスをWindows上に共有フォルダとして見せるために、デバイスドライバが必要となるのです。
しかしながら、残念なことにWindows95ではソフトウェアが対応しておらず、導入ができませんでした。
autorunがうまく動かなかったので、「VBoxWindowsAdditions-x86.exe」を直接実行すると一見してインストーラーが進むように見えますが、結果としてエラーになり失敗します。
フロッピーディスクは神
結局どうしたかというとフロッピーディスクを使うことでうまく行きました。フロッピーディスクは枯れたデバイスなので、Windows95でもバッチリ使えます。
フロッピーディスクのイメージはVirtual Boxの「デバイス」ー「フロッピードライブ」ー「新規フロッピーディスクの作成」でイメージファイル(.img)を作ることができます。ホストOSからイメージファイルにアクセスするには、「ImDisk Virtual Disk Driver」というツールを使うと便利です。
おわりに
試行錯誤しながらトラブルシュートすると、ノウハウが溜まり、スキルが上がります。試行錯誤には時間がかかるものですが、スキルというものは一朝一夕で手に入るものではないということですね。
貴重な時間を使って最後まで読んでくださり、ありがとうございました。 よかったら、記事の拡散もお願いいたします。