寝ようと思ったら右脚が攣りそうになり、右脚が攣らないように気を付けるなら起きているしかないということで寝不足(挨拶)。
■関連記事
前回「【Windows XPサポート終了対策】Windows XPマシンの仮想化 その2」においてはWindows XPをP2Vで仮想化した。仮想化まではうまくいき、OSが起動して使えるところまでは確認したが、OSは使ったけどログイン前で無理矢理Excel起動というアブノーマルな使い方。よいこはマネしちゃダメなやつ。ログインはライセンス認証を通り抜けられず失敗。Windows XPの場合、ログイン前にアクティベーション必須なので仕方ない。
まじめにMicrosoftの認証手続きをすれば確実に使えるはずなのだが、サポートが切れるOSなので、何桁か数えたくもならないほど長い数字のアクティベーションコードを電話でやりとりしたくなく、とりあえず放置していた。
一昨日ちょっと仮想化の調べものをしていて、「OEMライセンスメディアでゲストOSをInstallする際の注意点 | VMware Communities」というエントリにヒットした。もしかするとOEMライセンス*1ならインストールメディアもP2Vした後のOSも同じかもと思い実験してみた。該当部分を引用する。
それらのOEMライセンスのCDによってはHWがOEM元のものでないとInstallもできないという状況になるらしくそれを回避する方法があります
.vmx ファイルに次の1行を追加してください。
SMBIOS.reflectHost = TRUE
ということでSMBIOS.reflectHost = TRUEを、前回P2VしたWindows XPの.vmxファイルに追加して起動。前回出た以下のライセンス認証ダイアログは出ず、ログイン可能。
今回は上のライセンス認証ダイアログが出ることなくログインできたので、すかさずVMware Toolsをインストール。VMware Toolsが入ればホスト⇔ゲストの操作権は[Ctrl]+[Alt]が不要になってスムーズ、画面解像度も自動フィット。
SMBIOS.reflectHost = TRUEを入れるとどこがどう変わるのか。まず.vmxファイルにSMBIOS.reflectHost = TRUEを入れていないWindows Server 2012のmsinfo32.exeのシステム情報。システム製造元、システムモデルが各々VMwareになっている。
今回ライセンス認証無しで動作したWindows XPのmsinfo32.exeのシステム情報。システム製造元、システムモデルが「LENOVO」「4382PZ1」となっている。これが.vmxファイルにSMBIOS.reflectHost = TRUEを追加した効果。
これにより、元々ThinkPad上で動作していたWindows XPが動いた。図示すると下記のようになる。
なお、対比に使ったWindows Serverは試用版で、最初からVMware上にインストールしたので、システム製造元・システムモデルがVMwareで問題なく動作する。
ちなみに、VMware WorkstationではBIOSを物理PC/サーバと同一に見えるように作成して使用することができ、仮想OSに物理PC/サーバと同じBIOS情報を与えることができるらしい。今回はVMware Playerを使っているが、同じことができるかどうか情報がすぐにヒットしなかったのでまじめに調べていない。SMBIOS.reflectHost = TRUEを入れただけで動いちゃったもん。
あと、起動成功したあと、サポート終了のダイアログが出た!日本語なのに4月8日(米国時間)って書いてある。4月8日(米国時間)ならどこ時間かは分からないけど時差的に4月9日(JST)じゃん。直せばいいのに。
動いたからには2つやることがある。まずこのライセンスで問題ないのか?の確認。「マイクロソフト・ライセンス認証 − @IT」「Blogs - Windows Server 使い倒し塾 - Site Home - TechNet Blogs」「Windows XP プロダクト アクティベーション」で確認する。今回上の図のようにWindows XPはOEMライセンス。OEMライセンスの場合、OSがプレインストールされたハードウェアであれば動作させて問題ない。異なるハードウェアの場合はVL版*2をお勧めされるケースがあるので、要確認だろう。VL版ということだと「買え」ということ。とにかくライセンス違反はいけません。ダメ、ぜったい!
もう1つは、せっかく動いたので、Windows XPサポート終了後の確認用保存環境化。物理PCで持つ必要が無い。今までだってSSDに動作可能状態でOS他が入っていて、普段はThinkPadに刺さっていないわけだが。
前回「【Windows XPサポート終了対策】Windows XPマシンの仮想化 その2」ではVMware vCenter ConverterでP2Vをする前に、不要なアプリをアンインストールしまくった。しかしその時点ではThinkPad上でWindows XPを動かし、VMware vCenter Converterを使う都合があり、ハードウェアに関係するデバイスドライバ・管理プログラムは消すことができなかった。
仮想化されてしまえば、デバイスドライバはVMware提供のジェネリックな仮想ドライバに置き換わる。Lenovo提供のデバイスドライバや管理プログラムは不要となるので、バンバン消しまくり。あと、Windows XPサポート終了後にサポートが切れそうなソフトウェアもアンインストールしまくり。その代わりWindows Updateや各ブラウザなどのバージョンアップを実施。
あとはログイン時に自動実行されるプログラムの削除。 確認用保存環境なので、できる限り自動実行は減らしておく。Windows TIPS -- TIPS:起動時に自動実行される不要なプログラムを「起動しないようにする」方法を見て削りまくり。
ちょっとThinkPad W520の内蔵SSDに余裕が無く、SATA─USBのHDDスタンドでHDDに仮想イメージを格納してWindows XPを起動していた。このため大変動作が遅い。Windows XPは仮想化で問題ないことがわかったので、今までWindows XPがインストールされていたSSDをフォーマットして使用することに。もう物理PCで起動する必要ないし。
インストール,アンインストールはディスクI/Oが多いので、SSD化は非常に高速化に寄与した。Windows XPで確実に動くベンチマークソフト「CrystalMark 2004 - ソフトウェア - Crystal Dew World」で比較。7,725ポイント向上。
【HDDに仮想マシンを格納】
おまけで実験。SMBIOS.reflectHost = TRUEを入れることで物理PC ThinkPadだったものを仮想化してThinkPad上で動作確認できた。手元には初回「【Windows XPサポート終了対策】Windows XPマシンの仮想化 」で作成した仮想イメージのWindows 8もある。学生に配布するためのキッティングをしたDynabookの仮想イメージ。
そこでこのDynabook Windows 8仮想イメージもSMBIOS.reflectHost = TRUEでライセンス認証無しになるかどうかを確認。結論から言うと、状況は変わらず。システム製造元、システムモデルが「LENOVO」「4382PZ1」だとTOSHIBA、Dynabookの型名とは違うので、物理PCのシステム製造元、システムモデル情報を渡しても意味が無い。多分同一Dynabook上で動作させれば動くと思うが、研究室まで当該Dynabookを鶏肉取りに行くのが面倒なのでそのうち気が向いたら。Windows 8の場合はライセンス未認証でも、ログインして使用できるのでとりあえずは困らないわけだが。
今回のようにHDDとかSSDとか抜き差ししながら使うのにはHDDスタンドが必要。1台どうぞ。だいたいのHDDスタンドは2.5インチ・3.5インチ共用。HDDケースだと2.5インチと3.5インチは違うものを買う必要があるし差し替えの時は開けたり閉めたり大変。