2013/03/19

Virtual Server の Windows 2000 仮想マシンを最新 Hyper-V で何とかしたい

とあるところに、Virtual Server 2005 R2 SP1で作成したWindows 2000 Server SP4の仮想マシンのファイルがありました。現在、仮想環境はWindows Server 2012 Hyper-Vだけが利用可能です。どうにかしてWindows 2000 Server SP4の仮想マシンをこのHyper-V上で動かしてみたい、いや動かす必要がある... という場合の手順のメモ。

注意:  Windows 2000 Server Service Pack(SP) 4、Windows 2000 Advanced Server SP4、Windows 2000 Professional SP4 のプロダクトサポートライフサイクルは、2010年7月13日に終了しています。

Windows 2000 Serverは、Windows Server 2012 Hyper-VでサポートされるゲストOSには含まれません。その大前提を踏まえて...

Windows 2000 Serverの仮想マシンをWindows Server 2012 Hyper-Vで動かせたとしても、統合サービスは提供されません。ですので、仮想マシンを作成して、Virtual Serverのときに作成したVHDを割り当てたら、「ネットワークアダプター」(統合サービスが必要なデバイス)ではなく「レガシネットワークアダプター」を追加しておきます。
仮想マシンを開始すると、STOP: 0x0000001E エラーが発生しました。この BSOD (Blue Screen of Death) が出ても、あわてず騒がず。原因は、ゲストOSにVirtual Serverの「バーチャルマシン追加機能」がインストールされているから。
仮想マシンをリセットして、Windows 2000 Serverの起動直後にF8キーを押し、「セーフモード」を選択して起動します。




「コントロールパネル」の「プログラムの変更と削除」を開き、「バーチャルマシン追加機能」を選択して、削除します。

でも簡単には削除できません。「Windows インストーラー サービスにアクセスできませんでした」となるはずです。これは、セーフモードでは Windows インストーラー サービスの起動がブロックされるから。


ここでおまじない。レジストリエディター(Regedit.exe)を起動して、HKEY_LOCAL_MACHINE\SYSTEM\CurrentCOntrolSet\SafeMode\Minimal の下にキーを作成し、「MSIServer」という名前にします。そして、キーの既定の値(空の値)のデータに「Service」と設定します。

これで、セーフモードでの Windows インストーラーサービスの実行が可能になります。
レジストリエディターを終了し、「アプリケーションの追加と削除」でもう一度、「バーチャルマシン追加機能」の削除を試みます。今度は、問題なく削除できるはずです。

仮想マシンのゲストOSを再起動すると、Windows 2000 Server が無事、正常起動します。

なお、Windows Server 2012 Hyper-VやMicrosoft Hyper-V Server 2012は、Windows 2000向けの統合サービスを提供しません。そのため、「操作」メニューから「統合セットアップ ディスクの挿入」を実行しても、Hyper-Vの統合サービスをインストールすることはできません。次のように表示されるだけです。

サポートされないゲスト オペレーティング システム
× Hyper-V 統合サービスは、このバージョンの Windows ではサポートされません。



実は、サポートされない方法ですが(Windows 2000 自体サポートされないんですが)、統合サービスを動かす方法が無いわけではありません。Windows 2000 Server SP4は、Windows Server 2008 R2 SP1 Hyper-V まではサポート対象でした。 Windows Server 2008 R2 SP1 Hyper-Vの統合サービスをインストールすれば、ちょっとバージョンは古いですが、Windows 2000 Server SP4にもHyper-V統合サービスを組み込むことができます。

Windows Server 2008 R2 SP1 Hyper-V や Microsoft Hyper-V Server 2008 R2 SP1 の環境があれば、そこから %Windir%\System32\Vmguest.iso をコピーして、Windows Server 2012 Hyper-V の Windows 2000 Server SP4 仮想マシンにマウントします。


HAL のアップグレードに続いて、(旧バージョンの)Hyper-V統合サービスのインストールが行われます。

この方法で(旧バージョンの)Hyper-V統合サービスをインストールすることができれば、「レガシネットワークアダプター」ではなく、「ネットワークアダプター」を使用できるようになります。 マウス連携やシャットダウン連携、時刻同期などもちゃんと機能するはずです。

ただし、不明なデバイスがいくつか残りますし、「Hyper-V マネージャー」には「統合サービスのアップグレードが必要です」と文句を言われます。




また、「デバイスマネージャー」で不明なデバイスを確認しようとしたところ、STOP: 0x0000007Fの BSOD が発生しました。

触れられない場所のある、気難しい仮想マシンのできあがりです。

もう1つ問題。仮想マシンを保存後、保存状態から開始すると STOP: 0x0000000A の BSOD が発生しました。


STOP: 0x0000000A の問題は、「プロセッサバージョンが異なる物理コンピューターへ移行する」オプションを有効にしたところ、なぜか解消。ライブマイグレーションのためのこの設定で、プロセッサの新機能が制限されたことで、解消したと想像しています。

0 件のコメント: