virt manager

After having tested qemu/kvm and given the clear performance boost, I decided to port all my virtual machines under virt-manager (the GUI front-end for libvirt). That went smooth for all but one Windows XP machine, and obviously the most important one. On qemu, that machine was stuck in a boot loop, and it always restarted itself just after loading mup.sys.

After many searches and even more attempts, I gave up. I've basically tried everything I found online without any progress: removed drivers, changed register keys, converted in all possible formats and restarted the machine with countless option combinations.

About one week ago, and just by sheer coincidence, I have been able to replicate the boot loop on VirtualBox by changing the IDE controller type from PIIX4 to PIIX3. Now, I don't have the slightest idea of what that option is, but it is progress none the less.

piix4

After some research, I found the pc machine on qemu (AKA i440fx-pc) uses the PIIX3 PCI to ISA bridge by default. That would explain the boot loop.

On that very same machine, qemu provides the x-south-bridge experimental option, a machine-specific option that allows to change the south bridge type:

qemu-system-x86_64 \
  -machine pc,x-south-bridge=piix4-isa \
  -accel kvm \
  -cpu qemu32 \
  -m 1024M \
  -hda /path/to/the/image.vdi

EUREKA: this works! And you can even pass the VirtualBox image directly... no conversions needed!

The sencond step was to specify that option inside libvirt or virt-manager. This has been proven to be hard, most likely because the option is experimental. There is still no support on virt-manager itself but, after a few more searches, I found libvirt implements QEMU command-line passthrough for such cases. So after a "virsh edit MyXPMachine", I added the following fragment at the end of my XML file:

<domain type='kvm'>
  ...
  <qemu:commandline xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
    <qemu:arg value='-machine'/>
    <qemu:arg value='x-south-bridge=piix4-isa'/>
  </qemu:commandline>
</domain>

Post your comment

Comments

No one has commented on this page yet.

RSS feed for comments on this page RSS feed for all comments