VMware移行後、Windows Server 2003が起動しない(0x0000007B)
概要
VMware ESXiからProxmox VEに「ESXiストレージから直接インポート(Import VM)」機能などを用いてWindows Server 2003(32bit / 64bit)の仮想マシンを移行した際、移行後にOSが起動せず、以下のブルースクリーン(BSOD)が表示され、自動再起動を繰り返す場合があります。
エラーコード: STOP: 0x0000007B INACCESSIBLE_BOOT_DEVICE
本現象は、Proxmox側でディスク接続を「IDE」や「SATA」に変更し、標準IDEドライバ(intelide等)を有効化しても改善しない場合があります。
原因
移行元でインストールされていた「VMware Tools(特にLSI LogicなどのSCSIドライバ)」が、Windowsのブートプロセスに干渉しているためです。
Windows Server 2003のような古いOSは、起動時に読み込むストレージドライバの構成変化に極めて脆弱です。VMware Toolsがインストールされた状態のままだと、OSはVMware環境に最適化されたドライバ(symmpi.sys や vmscsi.sys など)を最優先で読み込もうとします。
この状態のままProxmox環境に移行すると、Proxmox側でIDEやSATAとしてディスクを認識させようとしても、VMware Toolsに含まれるドライバが競合し、OSがシステムドライブ(Cドライブ)にアクセスできなくなり、0x0000007Bエラーが発生します。
解決策(回避策)
この問題を解決するには、VMware Toolsの影響を完全に排除した状態でインポートを行う必要があります。
以下の手順を実施してください。
【推奨】方法A:移行元(ESXi)で事前にアンインストールする(最も確実)
移行元の環境がまだ残っており、仮想マシンを起動できる場合は、以下の手順が最も確実です。
- 移行元のVMware上で仮想マシンを起動します。
- コントロールパネルの「プログラムの追加と削除」から、「VMware Tools」を完全にアンインストールします。
- 再起動を求められたら指示に従って再起動し、問題なく起動することを確認します。
- 仮想マシンを正常にシャットダウンします。
- Proxmox VE側で再度「Import VM」を実行します。
- インポート後、ハードウェア設定でディスクの接続バス(Bus / Device)を「IDE」に設定し、仮想マシンを起動します。
【注意】 Windows Server 2003は初期状態でProxmoxの高速な「VirtIO」ドライバを持っていません。そのため、まずは最も互換性の高い「IDE」での起動成功を目指してください。
方法B:移行先(Proxmox)でレジストリをオフライン編集する
すでに移行元の環境がなく、Proxmox側だけで解決しなければならない場合は、Windows回復コンソールやLive CD(Windows PE等)環境を用いて、VMware関連のドライバサービスを強制的に無効化する必要があります。回復コンソール等からレジストリ(SYSTEMハイブ)を読み込み、以下のサービス(ドライバ)の起動設定(Start値)を 4(無効化)に変更してください。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\symmpi Start = 4 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vmscsi Start = 4 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VMTools Start = 4
無効化が完了した後、ディスクの接続バスを「IDE」に設定して起動を試みます。
補足:起動成功後の対応(VirtIOへの変更)
IDE接続で無事にWindows Server 2003が起動した後は、必要に応じてProxmoxのゲストエージェントやVirtIOドライバ(※Windows Server 2003に対応した古いバージョンのVirtIO ISOイメージが必要です)をインストールすることで、より高速なVirtIO SCSIなどのストレージコントローラへ変更できます。