将Windows XP guest虚拟机移动到新的虚拟机主机后的IRQL_NOT_LESS_OR_EQUAL

我有两台虚拟机服务器,都是类似规格的64位机器,相同的处理器等。两者都运行基于LVM的磁盘的KVM。 一台机器使用CentOS 6 Minimal作为主机操作系统,另一台使用Ubuntu Server 11.04。

我通过在ssh上使用dd来移动guest虚拟机磁盘,而guest虚拟机已closures。

我可以在两台主机之间移动Ubuntu服务器来宾机器,而且两台机器都可以正常工作。 我的Windows访客机器是在Ubuntu主机上创build的,并且在那里运行良好,但是当我尝试在CentOS主机上运行时,立即得到蓝屏错误。

错误平铺: IRQL_NOT_LESS_OR_EQUAL并读取:

 STOP: 0x0000000A (0x00001016, 0x00000002, 0x00000000, 0x804F8FEC) 

Microsoft支持信息似乎表示硬件问题,并build议BIOS更新和删除计算机组件。 显然这不是问题,因为硬件是虚拟化的。

我尝试再次移动来宾磁盘以确保数据在移动过程中没有被损坏,但是没有解决问题。

当尝试在KVM主机之间移动Windows访客计算机时是否有其他人遇到此问题? 有什么可以做的,让Windows从一台机器平稳移动到另一台?

我的理解是,对于虚拟化硬件,系统在任何机器上看到相同的硬件设备,因此可以使用相同的驱动程序,因为真正的硬件对操作系统是隐藏的。 有没有司机可能成为问题的例外情况? 最后,有什么办法(除了完全重新安装Windows)从这个问题中恢复?

更新:

XML机器定义:

 <domain type='kvm'> <name>xpvm2</name> <uuid>6ddec00b-9f00-29ad-5197-98264c24cabf</uuid> <memory>1048576</memory> <currentMemory>1048576</currentMemory> <vcpu>1</vcpu> <os> <type arch='x86_64' machine='rhel6.2.0'>hvm</type> <boot dev='hd'/> </os> <features> <acpi/> <apic/> <pae/> </features> <clock offset='localtime'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/libexec/qemu-kvm</emulator> <disk type='block' device='disk'> <driver name='qemu' type='raw'/> <source dev='/dev/mapper/mainvg-vm_xpvm2'/> <target dev='hda' bus='ide'/> <address type='drive' controller='0' bus='0' unit='0'/> </disk> <controller type='ide' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> </controller> <interface type='bridge'> <mac address='52:54:00:f8:3a:21'/> <source bridge='br0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> <serial type='pty'> <target port='0'/> </serial> <console type='pty'> <target type='serial' port='0'/> </console> <input type='tablet' bus='usb'/> <input type='mouse' bus='ps2'/> <graphics type='vnc' port='-1' autoport='yes'/> <video> <model type='vga' vram='9216' heads='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </memballoon> </devices> </domain> 

更新2

 ps -ef | grep qemu (broken into lines for readability) 

CentOS机器:

 qemu 9742 1 99 Feb18 ? 22:51:48 /usr/libexec/qemu-kvm -S -M rhel6.2.0 -enable-kvm -m 1024 -smp 1,sockets=1,cores=1,threads=1 -name xpvm2 -uuid 6ddec00b-9f00-29ad-5197-98264c24cabf -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/xpvm2.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime -> -no-shutdown -drive file=/dev/mapper/mainvg-vm_xpvm2,if=none,id=drive-ide0-0-0,format=raw -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -> -netdev tap,fd=28,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:f8:3a:21,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -usb -device usb-tablet,id=input0 -vnc 127.0.0.1:5 -vga std -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4 -> root 23564 9518 0 17:38 pts/0 00:00:00 grep qemu 

Ubuntu机器:

  105 1616 1 7 17:46 ? 00:00:14 /usr/bin/kvm -S -M pc-0.14 -enable-kvm -m 1024 -smp 1,sockets=1,cores=1,threads=1 -name xpvm2 -uuid 6ddec00b-9f00-29ad-5197-98264c24cabf -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/xpvm2.monitor,server,nowait -> -mon chardev=charmonitor,id=monitor,mode=readline -rtc base=localtime -> -boot c -drive file=/dev/mapper/mainvg-vm_xpvm2,if=none,id=drive-ide0-0-0,format=raw -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -> -netdev tap,fd=18,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:f8:3a:21,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -usb -device usb-tablet,id=input0 -> -vnc 127.0.0.1:0 -vga std -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4 -> myname 1626 1493 0 17:49 pts/0 00:00:00 grep --color=auto qemu 

更新3:

我已经用原来的机器上的CentOS取代了Ubuntu操作系统。 现在回到最初的主机上,但现在用CentOS,XP虚拟机仍然无法启动。 这使我相信这个问题与CentOS vs Ubuntu兼容性有关,而与主机硬件不兼容。 仍然不知道该怎么尝试。

该停止代码,第一个参数设置为相对较小的值(在本例中为0x1016)意味着某些以内核模式(可能是设备驱动程序)运行的代码尝试访问虚拟内存地址0x1016。 这只有当代码使用空指针(这是无效的),然后增加一些偏移量,在这种情况下,0x1016。 这几乎可以肯定是一个设备驱动程序错误,这是由于将虚拟机从一个环境移动到一个相似但相关但不同的环境所带来的。

我build议你将虚拟机移回原来的环境,并删除所有的半虚拟化驱动程序。 然后尝试移动它。 如果有效,则从新环境重新应用半虚拟化驱动程序。

每次我从QEMU / KVMclosureswin7虚拟机时,都看到了这个错误。 最后是因为拱形参数。 我将我的xmlconfiguration从arch = i686切换到arch = x86_64。 然后,我可以正常closures该虚拟机。 希望这对你有帮助。

我的猜测是错误来自机器types。 你有:

 <os> <type arch='x86_64' machine='rhel6.2.0'>hvm</type> <boot dev='hd'/> </os> 

但我不认为Ubuntu可以运行这种机器types。

virshfunction| grep rhel

这在我的ubuntu机器上没有出现。 可能将其更改为Ubuntu能力列表中的另一个Windows机器types。 运行virshfunction,看看下

 <guest> <os_type>hvm</os_type> <arch name='x86_64'> 

我的是:

  <os> <type arch='x86_64' machine='pc-0.12'>hvm</type> <boot dev='hd'/> </os>