ParallelsのWindows95仮想マシンをVirtualboxに移設

February 22, 2025

emulatorWindowsParallelsVirtualBox

目次

はじめに

筆者は遥か昔に使用していた個人用パソコン(1997年製VAIO PCG-505)を仮想化して、Intel Mac上のParallelsで再生できる状態を維持してきました。別に実用的に何かしようということではなく、時々開いて30年前の思い出に浸ってみるとかのために。

当時どうやってVAIO PCG-505を仮想化したのかは今となっては正確には思い出せないのですが、PowerQuest社のDrive Imageという有償ソフトを使用して仮想ディスクを作成したような記憶が残っています。その後、Parallelsが出たときに、Parallels用の仮想ディスクに変換して今に至っているように思えます。

そんなこんなで経緯はあやしいのですが、Parallels Desktop 17上でPCG-505のWIndows95 OSR2が動作していました。(動作はするのですが、WIndows95がOSR2版なんでParallelsで動かすにはライセンス的には問題ありかもしれませんが…)

parallels_vaio95_desktop.png

WebブラウザがNetscape Navigatorとか、博物館級の代物です。

でもIntel Macが終わってしまい、Intel Mac上のParallelsで動かしていた博物館級のWindows95仮想マシンも、このまま維持することが難しくなってきました。

そこで、Intel Mac上のParallelsで動いていたWindows95仮想マシンを、Virtualboxに移設することにしました。x64 PC上のVirtualboxもいつまで使えるかはわかりませんが、少なくともIntel Mac上のParallelsよりは寿命は長いだろうという判断です。

本記事はIntel mac上のParallelsで動いていたWindows95仮想マシンをWindowsのVirtualboxに移設する手順を書き留めたものです。

Parallels仮想マシンから仮想ディスクイメージを抽出

ParallelsのWindows11仮想ディスクはそのままではVirtualboxでは読み込めないので、まずはParallelsの仮想ディスク(拡張子が.hdsのファイル)をVirtualboxやVMWare Playerなどで使用できる形式の仮想ディスク(拡張子が.vdiや.vdiや.vmdkのファイル)に変換する必要があります。

仮想ディスクの変換はエミュレーターQEUMのツールを使用します。お手持ちのmacに未だQEUMをインストールしていないなら、QEUMをインストールします。Homebrewを使ってインストールするのが簡単でよろしいかと。

homebrewが未インストールなら、まずはHomebrewのインストールから。Homebrewは入れておくと何かと便利。

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

rewのPATHを追加しておきます。以下のスクリプト中のmynameは変更してください。

$ echo >> /Users/myname/.bash_profile
$ echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/myname/.bash_profile
$ eval "$(/opt/homebrew/bin/brew shellenv)"

Homebrewがインストールできたら、HomebrewからQEUMをインストールします。

$ brew install qemu

これでQEUMの準備が整いました。

QEUMのツールqemu-imgを使い、Parallelsの仮想ディスクをVirtualboxやVMWare Playerなどで使用できる形式の仮想ディスク(拡張子が.vmdkのファイル)に変換します。

Parallelsの仮想マシンファイル(拡張子が.pvmのファイル)は、実はファイルではなくディレクトリです。その中に仮想ディスクの実体が含まれています。ファインダーで.pvmのファイルを選択肢し、マウス右クリックから「パッケージの内容を開く」を指示すればディレクトリの内容が見れます。 .pvmディレクトリの中には、.hddの拡張子を持つディレクトリが存在し、さらにその中に仮想ディスクの実体が置かれています。

筆者のParallels仮想マシンの例では、

仮想マシンディレクトリ:Microsoft Windows 95.pvm
その中に仮想ディスクディレクトリ:VAIO95.hdd
その中に仮想ディス実体:VAIO95.hdd.0.{nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn}.hds

というファイル構造となっていました。仮想ディス実体のhdsファイルをqemu-imgコマンドを使ってvmdkファイルに変換します。

$ cd .pvmファイルの置かれた場所
$ qemu-img convert -f parallels "./Microsoft Windows 95.pvm/VAIO95.hdd/VAIO95.hdd.0.{nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn}.hds" -O vmdk -O vmdk Windows95.vmdk

以上でWindows95.vmdkが出来ました。このvmdkファイルをVirtualboxに持っていくことになります。

Virtualbox7.1.xの設定

Parallelsから持ってきたWindows95仮想ディスクを動かすためのVirtualbox仮想マシンを作成します。

Virtualbox7.1.xから

仮想マシン(M)>新規(N)>名前とオペレーティングシステム(O)

vm_setting_1.png

仮想マシンの名前を設定、バージョンは「Windows 95」

仮想マシン(M)>新規(N)>ハードウェア(A)

vm_setting_2.png

メモリは128MBで十分でしょう。

仮想マシン(M)>新規(N)>ハードディスク(K)

vm_setting_3.png

後でParallelsの仮想ディスクを変換したvmdkファイルを持ってくるので、ここでは「仮想ハードディスクを追加しない(D)」を選択

新規作成ウィザードを「完了」し、

仮想マシン(M)>設定(S)>ディスプレイ

vm_setting_4.png

ビデオメモリーを32MBに設定

仮想マシン(M)>設定(S)>ストレージ

vm_setting_7.png

Parallelsの仮想ディスクを変換したvmdkファイルをデバイスに追加

仮想マシン(M)>設定(S)>ネットワーク

vm_setting_5.png

NICは古めの「PCnet-PCI II(Am79C970A)」を選択。

仮想マシン(M)>設定(S)>USB

vm_setting_6.png

Windows95 OSR2なんで「USB1.1(OHCI)コントローラー」を選択。

「OK」をクリックし仮想マシンの設定終了

仮想マシン(M)>起動(T)

によりWindows95仮想マシンを起動。

Windows95起動

Windows95仮想マシンを起動すると、Plug and Play機能が働き、新たに見つかったデバイスに対するデバイスドライバが自動でインストールされていきます。この機能は当時画期的だった。

windows95_plugplay.png

デバイスドライバが見つからなかったデバイスはマニュアルでスキップさせるとWindows95のログイン画面まで辿り着きました。

windows95_login.png

Windows95のログインアカウントは、現代のWindowsのアカウントと異なり何でも通る。ログイン時に入れておいたアカウントで後でネットワーク共有ファイルにアクセスするようなかんじかな。

ログインしてデバイスマネージャを見てみると、デバイスドライバーが割当られていないデバイスがいくつか残っていることがわかります。

windows95_device_mgr.png

ディスプレイドライバも標準のVGAドライバが割り当てられているので、しょぼい16色カラー表示のままです。元々はParallels Toolsのデバイスドライバにより快適にWindows95が動いていましたが、仮想環境をParallelsからVirtualboxに変わり、Parallels Toolsのデバイスドライバが無効になったことが原因です。

次節でVirtualboxの環境で最適なデバイスドライバをインストールしていきます。

SVGAディスプレイドライバのインストール

今のままでは画面表示がしょぼすぎるので、ディスプレイドライバをインストールします。

Windows95のオープンソースのSVGAドライバを以下のサイトからダウンロードしました。

https://web.archive.org/web/20190210203844/http://bearwindows.boot-land.net/vbe9x.htm

ダウンロードしたドライバは以下

https://web.archive.org/web/20190210203844/http://bearwindows.boot-land.net/140214.zip 140214.zip

ドライバのzipファイルを伸張し、Windows95に持っていくのですが、さすがにWindows95ほど古いシステムだとなにかと面倒です。考えられる方法は、

  • Windowsファイル共有を使用したいけど、Windows95だとSamba1.0で繋げる必要がある。今どきSamba1.0のサーバを用意するのは流石に面倒。
  • ふつうはVirtualbox Guest Additionにホストとのファイル共有を可能にするドライバが含まれているんだけど、流石にWindows95用のGuest Additionは無い!
  • ドライバのzipファイルを入れたISOファイルを作成してCD ROMとしてマウントさせればいいけど…
  • 外付けハードディスク相当の仮想ディスクにドライバのzipファイルを入れてWindows95にマウントすれば…

結局、一番お手軽そうな、外付けハードディスク相当の仮想ディスクを介してドライバをWindows95に持っていく方法をとりました。

(1) Virtualboxで仮想ディスクvdiファイルを作成する。サイズは小さめ(2GB以下)で。
(2) Windows95仮想マシンにマウントして、FAT16でフォーマットする。
(3) 仮想ディスクをWindows95仮想マシンからアンマウントし、現役のWindows11仮想マシンにマウントする。
(4) Windows11仮想マシン上で仮想ディスクにドライバをコピーする。
(5) 仮想ディスクをWindows11仮想マシンからアンマウントし、Windows95仮想マシンにマウントし直す。

Windows95ではFAT16ファイルシステムしか存在しなかったので、ドライバファイルをWindows95仮想マシンに持っていくだけで、こんなに手間がかかってしまいました。

ドライバファイルがWindows95仮想マシンからアクセスできるようになったら、ディスプレイドライバのインストールを始めます。

デスクトップのコンテキストメニュー>プロパティ>ディスプレイの詳細

windows95_setting_display_1.png

詳細プロパティ(A)>アダプタ>変更>ディスク使用(H)

windows95_setting_display_2.png

ここで、ドライバファイルを入れた仮想ディスクがDドライブにマウントしたとして、

D:\driver\svga\140214\032mb\vbemp.inf

を指定し「OK」をクリック

windows95_setting_display_3.png

「VBE Miniport - Standard PCI Graphics Adapter (VG)」

を指定し「OK」をクリックするとディスプレイドライバがインストールされます。

vmを再起動後に、

デスクトップのコンテキストメニュー>プロパティ>ディスプレイの詳細

ここで、

「カラーパレット」を「High Color (16ビット)」
「デスクトップ領域」を「1024x768ピクセル」
に変更し「OK」をクリック、再起動。

これで新しいディスプレイモードが有効になりました。

windows95_desktop.png

ディスプレイも最適化されたので、当時のWebブラウザNetscapeNavigatorを起動してみました。

windows95_netscape.png

レイアウトは崩れてるけどgoogleは一応表示される。もちろん表示できないページのほうが多いけど。httpsのページは全滅の模様。

まとめ

Intel Mac上のParallelsで動いていたWindows95仮想マシンをPC上のVirtualbox7.1へ移設する手順をまとめました。


Written by questions6768 who lives in Uji, Kyoto.