https://naba-san.hatenablog.com/


VMware Player 3.0 + XP mode の仮想ディスクイメージについて

VMware Player 3.0 + XP mode の仮想ディスクイメージについて

(旧タイトル:VMware Player 3.0 + XP modeでユニティモード)



VMware Player 3.0には、Windows 7におけるXPモードのインポート機能が搭載されました。

この日記は、インポートしたXPモードの仮想ディスクイメージについての簡単な調査と考察の記録です。

訂正あり - 2009.11.04

別環境で試してみたところ,ユニティモードはVMDKの変換なしに使えるようです。
こちらも似たような手順で作業を進めたのですが(VMware Toolsインストール,Virtual PC統合サービズ削除,HAL入れ替え等),どの段階で使えるようになったのか不明です。(VPC統合サービスが怪しい?)

嘘ついてごめんなさい。。m(__)m

あと,思いっきり書き忘れていたんですが,ベースイメージになってるVHDファイルだけだと,ここで紹介した「NHC」でもVMDKファイルに変換が可能です。

やたらめったらややこしい作業を紹介しましたが,最初にこの方法で変換したVMDKファイルを選択しておけば,最初から仮想ディスク圧縮機能が使えるんじゃないかと思いますので,補足しておきます。(ここで紹介する方法は,一度VMware Player上のXP Modeを使用した後,差分VMDKで不都合が生じた時に使えると思います。)


XPモードインポート時の不都合というか不具合


先の記事では、VMware Player 3.0上のXP modeでマルチコアCPU/マルチプロセッサ環境に対応させる為のHAL入れ替え手順を書きました。こうなると、VMware PlayerだってVirtual PCと対抗できるという事を示してやらなければなりません!(謎

VMware Playerには、「ユニティモード」と呼ばれる機能が搭載されています。これは、ゲストOS上で表示されるウインドウ(アプリケーション)を、ゲスト・ホストの差を意識させず、ホスト側へ持ってこられるというものです。

VirtualBox等にも「シームレスモード」という似たような機能があり、Windows Virtual PCでもXP modeの目玉機能として似たような機能(名前分からず)がサポートされるようになりましたが、VMware Player に XP modeをインポートした直後の状態では、何故かユニティモードが使用できないようになっています。

このほか、VMware Toolsのオプションにある「仮想ディスク圧縮」機能が、標準では使用できません。これも、あれば便利な機能ですよね。

そもそもVMware PlayerでXP Modeって、どーいう仕組みで動いてるの?

まずは、こちらの画像をご確認下さい。

XP modeをインポートした際に生成されるVMDKファイルを、適当なエディタで無理矢理開いている様子です。

インポートした直後のVMDKファイルのサイズは、数十〜数百MB程度。こんなイメージにXPなんぞ入るわけがありませんから、どこからかXP modeのベースイメージ(VHD)を参照しているらしい事が分かります。

問題は、このVHDファイルをどこから参照しているのか、という事です。VMware仮想マシンの設定情報が書き込まれている、VMXファイルを覗いてみても、それらしき設定は見あたりません。隣にあるVMDKファイルを無理矢理覗いてみたら・・VMDKファイル自身がVHDファイルを参照していた、というのが冒頭の画像です。これで、「仮想ディスク圧縮」機能が使えない理由が、なんとなく分かってきました(但し、この時点ではユニティモードについては、よく分からず。)。

半端にVHDを参照しに行く半端なVMDKではなく、純粋なVMDKの形式に変換してやれば、この「仮装ディスク圧縮」については何とかなるような気がしてきました。

仮想ドライブイメージを扱えるコンバータとしては、NHC*1というのが有名な気がするので試してみたのですが、「半端なVMDKファイル」は正常に認識しませんでした*2

ここでは「半端なVMDKファイル」と「純粋なVMDKファイル」の2つを用意して、仮想マシン上で中身をそのまま転送してしまう方法を紹介しておきます。

VMDKファイルの変換手順
XP mode上の仮想マシンで設定をあれこれやります。手順は、
1. 任意のサイズのVMDKファイルを作成し、IDE プライマリ スレイブに接続する。
⇒ これがコンバート先のドライブになります。
2. FD/CD/USB等を駆使し、XP modeを使わずに、なんとかしてディスクイメージのコピーを作成する。
⇒ XP modeでコンバート先のドライブを認識させてしまうと、後から切り替えた時にシステムディスクとして認識してくれなくなる場合がある為です。
⇒ 自分は横着さんなので、True ImageのブータブルなISOを使ってクローンを作りました。(WinPEとかxcopyとかで何とかなると思います。)
3. IDE プライマリ マスタのディスクイメージを(設定上から)削除し、プライマリ スレイブのイメージをマスタに昇格させ、立ち上げます。
⇒ もしブートしないようなら、ディスクのコピーがきちんと取れている事と、パーティションがアクティブとしてマークされているかを確認しましょう。

なお、新しい仮想マシン上でコンバート後のVMDKファイルを起動しようとすると、ライセンス認証を求められる事がありますので注意して下さい(私が試した時は、ほぼ同じ構成で起動しても求められました)。

結局ユニティモードを有効化するには?

純粋なVMDKファイルを使えば、ユニティモードがサポートされるようになるみたいです。(仮装ディスク圧縮が判定基準?)

XP modeのライセンス認証

あまり詳しくは調べていませんが、構成が変わりすぎると、ライセンス認証を求められる事を確認しています。(←新しい仮想マシンを作った時のこと)
但し、2コア認識+VMDKファイルの変換だけなら、認証を求められる事もなく、正常に立ち上がりますので、実用上の問題は無いかと思います。

どうやらライセンス認証には,いわゆるSLP(システム ロック プリ インストール)と呼ばれる,BIOS情報を読みに行く方法が使われているようです。

インポート時に自動作成される仮想マシンであれば,デバイスの構成を変更しても認証を求められる事は無いはずです。

*1:仮想マシンハードディスクイメージ変換(convert)ツール: http://www.geocities.co.jp/SiliconValley/2994/tool/nhc.html

*2:NHC Ver.0 alpha34 2009/10/18