kvmでWindowsXPが起動できない ブルースクリーン
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」を使うか、FedoraやUbuntuのライブUSBまたはライブCDにchntpwパッケージをインストールすることで対処できます。
「LinuxでWindowsレジストリを編集する chntpwコマンド」の記事を追加しました。この記事に、qemu-kvm による STOP 7B エラーの対処(レジストリ編集)を記載しています。参考にしてみてください。