kvmでWindowsXPが起動できない ブルースクリーン

windows-bluescreen-7b

qemu kvm WindowsXP STOP 0x0000007B エラー

先月からqemu-kvmで仮想サーバ(VPS)を構築したり、運用中のサーバ・システムのバックアップから復元したり、いろいろ検証してきました。
ここ1週間ほどはWindowsクライアントの動作を確認しています。

  • Windows8 のプレリリース版 問題無し
  • WindowsVista Business エディション 問題無し
  • WindowsXP SP3 動作OK

と問題ないと思っていたら、WindowsXPのバックアップからの復元をKVMで実行したら、STOP 0x0000007Bのエラー(ブルースクリーン)で起動できない現象がありました。まったく違う別のWindowsXPのバックアップを復元したところ、こちらは無事起動することができました。

たしか「Windowsの7Bエラー」は起動ドライブに関する問題だと思い、あれこれ調べてチャレンジしていたところ、以下のサイトが対処の参考になりました。

VMware Server 上で利用している Windows XP のイメージを KVM に移行する際、ブルースクリーン (0x0000007B) が出てしまう問題への対処法
http://d.hatena.ne.jp/moriyoshi/20091116/1258368163
Migrating Virtual PC Windows servers to KVM
http://blog.loftninjas.org/2009/05/11/migrating-virtual-pc-windows-servers-to-kvm/
Windows XP のシステム ディスクを他のコンピューターに移動した後に STOP 0x0000007B エラーが表示される
http://support.microsoft.com/kb/314082

要は別のシステム(ハードウェア)にWindowsXPを移動した場合、IDEやSATAのストレージ・コントローラーが違うため、コントローラーのレジストリ記述およびドライバがないことによる問題とのこと。qemu-kvmのIDE コントローラは Intel PIIX3 をエミュレートしているので、これを対処しなければならない。偶然起動できたものは、おなじIDE コントローラまたはファミリー系列だったのでOKだったと思われる。

QEMU のエミュレート IDE コントローラは WindowsXP レジストリ エントリーでは pci#ven_8086&dev_7010 というエントリーになる。下のレジストリを追加してあげればよい。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_7010]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="intelide"

QEMUでの起動であれば、マイクロソフトのサポートページにあるすべてのストレージ・コントローラーを追加する必要はありません。ちなみにこの方法は、「マイクロソフトではサポートしていない」と言うことですので、自己責任で注意してください。

ひとつ補足。
このレジストリ・エントリー作業は、動作しているシステム上にて事前に実行(レジストリ追加)しておく必要があります。
もしハードウェア故障などにより、これができなケースではknoppixなどでレジストリ編集するスキルが必要になります。

追記。
knoppix 現在の最新バージョン 6.x系では chntpwコマンドが含まれてませんでした。 オフラインでのWindowsレジストリを編集・追加するには、chntpwがデフォルトでインストールされているライブCD「Trinity Rescue Kit」を使うか、FedoraUbuntuのライブUSBまたはライブCDにchntpwパッケージをインストールすることで対処できます。
LinuxでWindowsレジストリを編集する chntpwコマンド」の記事を追加しました。この記事に、qemu-kvm による STOP 7B エラーの対処(レジストリ編集)を記載しています。参考にしてみてください。

関連したページ

nexia access map
x