Search This Blog

Sunday, July 24, 2011

HowTo: Libvirt an old Windows XP disk

Have an old Windows XP disk that used to run the server, and want to make it run as a Virtual Machine?

Here's how.

Have had my Fedora 15 up running libvirt for a while, and while re-arranging things found my old Windows XP disk. I'd had it running on this box and validated. I had it dual booting, to a VM and as the Host OS. Running an old disk with a VM, SOLVED.

Never could get the video right under VM's, and never could get it to see more than one CPU. Solved both this time, and so it's worth mentioning.

Why save Windows XP? Unfortunately, I still need it. There are some 16 bit programs to build a BIOS that need to run in the WOW emulator. The 16 bit emulator support has been dropped in the newer versions of Windows, the 64 bit versions first. So Windows XP has become like DOS, you need it to run some older programs. So, let's bring it back.

First, virt-manager lets you define storage as physical disk or partition. It doesn't exactly say that, but it works well. So I have /dev/sdc, with Windows XP on /dev/sdc1. While Windows XP was on partition 1, and it boots from there - I've lost the MBR in a drive before, and had all partitions go away. So my preference is to connect the VM to the entire drive, rather than a partition, just like the original PC.

So when creating the VM, select /dev/sdc for the storage.




[ubuntu] I can't install winXP on libvirt + kvm: No APIC [Archive] - Ubuntu Forums

APIC, Not quite. But we did use it by selecting the default processor. The xml definition included apic, x2apic.

why-does-my-windows-7-vm-running-under-linux-kvm-not-use-all-the-virtual-process
Another post mentioned topology, described adding a tag to the xml file - and a new section, manual topology, is in the current virt-manager and it worked. Double checked the XML file, and there were both apic feature, and the topology in the cpu section -- To get more cores, you not only have to add them in the processor menu, you have to add a topology entry (1 socket, xxx cpus, 1 thread (amd)).



The video was a problem. None of the new videos had a driver. Windows search didn't pick them up. So VMWare VGA was selected, and they have nicely provided a windows driver which can be installed on XP manually.

First get the iso files to your libvirt server:
- wget http://www.linux-kvm.com/sites/default/files/vmwarevga32-kvm.iso
- wget http://www.linux-kvm.com/sites/default/files/vmwarevga64-kvm-2.iso

Connect the right iso (32 bit or 64 bit Windows) to your KVM:



Then, boot your KVM and install the new VGA driver from the DVD.

At this point you have Windows XP running from it's own drive, with multi-core cpu, and VMWare VGA driver that works great in a VM.

No comments:

Post a Comment