How to install Windows XP in QEMU
< Windows 2000 | Windows Vista >

This page details how to install Windows XP in QEMU. Windows XP is an operating system created by Microsoft, first released on August 24, 2001. It had several service packs and dozens of different variations. Support ended on April 8, 2014 for the regular version and April 9, 2019 for POSReady 2009.
The QEMU commands for XP found in most places on the internet use an i440fx machine with IDE drivers and an rtl8139 network card, which results in a very slow system. This guide uses a much newer machine model with VirtIO storage and networking, which makes the system much more usable.
This guide is specifically for Windows XP Service Pack 3 (x86) or 2 (x64).
Prerequisites
QEMU
You will need QEMU installed.
Windows XP ISO
You'll need a Windows XP ISO for this guide. You can:
- You can use a physical disc
- Download the Stock XP ISO from Computernewb (32-bit/64-bit)
- Source an ISO from elsewhere
Q35/VirtIO Driver Floppy
We host a custom floppy disk image that can be used during setup to load the drivers required to install Windows XP on a q35 machine type. Download it here:
- xp_q35_x86.img (32-bit)
- xp_q35_x64.img (64-bit)
VirtIO Windows Driver ISO
Download the latest virtio-win.iso, which contains the VirtIO ethernet driver for XP.
Installation
Creating the Disk Image
First, open a command window and create a disk image for the VM using a command like the following.
qemu-img create -f qcow2 winxp.qcow2 20G
20G can be replaced with however big you want the hard drive to be (with G standing for Gigabytes). Since Windows XP is an older OS, it doesn't take up a lot of space. If you're planning to install a lot of applications and games, 40G should be decent enough.
Starting QEMU
You can now start up QEMU with a command like the following:
If your ISO is 32-bit:
qemu-system-i386 -M pc-q35-2.10,usb=on,acpi=on,hpet=off -m 4G -cpu host -accel kvm -drive if=virtio,file=winxp.qcow2 -drive if=floppy,file=xp_q35_x86.img,format=raw -device usb-tablet -device VGA,vgamem_mb=64 -nic user,model=virtio -monitor stdio -cdrom en_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-73974.iso -boot d
If your ISO is 64-bit:
qemu-system-x86_64 -M pc-q35-2.10,usb=on,acpi=on,hpet=off -m 4G -cpu host -accel kvm -drive if=virtio,file=winxp.qcow2 -drive if=floppy,file=xp_q35_x64.img,format=raw -device usb-tablet -device VGA,vgamem_mb=64 -nic user,model=virtio -monitor stdio -cdrom en_win_xp_pro_x64_with_sp2_vl_x13-41611.iso -boot d
This adds a VGA card (with 64 MB of VRAM, to allow high resolutions and color depth), KVM acceleration (allowing the OS to run at native speeds), a VirtIO SCSI disk and VirtIO ethernet adapter, and a USB tablet for smooth mouse input.
We set the memory to 4 GB, but it can technically run on as low as 96 MB of RAM. 32-bit versions of XP (as well as all 32-bit OSes) can't recognize more than 4 GB, so if you have a 64-bit system we recommend using 64-bit XP. (There is a PAE patch that also removes this limitation, but programs can't use more than 4 GB regardless.)
Loading the Drivers
When setup first loads, you will see a message saying Press F6 if you need to install a third-party SCSI or RAID driver.... You must press F6 before this message disappears or setup will BSOD.
Once loading completes, a dialog will ask you to specify SCSI adapters. You must press S two times to select both of the drivers on the floppy disk; these are the Intel ICH9R/DO/DH SATA ACHI Controller and Red Hat VirtIO Block Disk Device drivers.

After selecting these, press enter to continue setup.
Finishing the installation
From here, the installation is pretty straightforward. Agree to the license, format the disk as NTFS (quick), and wait for it to install. The OS should install pretty quick on newer systems.
During the GUI portion of setup, you will receive two dialogs warning you that the drivers you selected earlier could not be verified. You must select Yes for both, or the install will fail to boot.
Post-install
Invoking QEMU
After installing, you should remove the same QEMU command as before, except the -drive if=floppy, -cdrom ..., and -boot d arguments should be removed.
Network Drivers
Once the install boots, you will notice the network is unavailable. This is because we must install the drivers.


- Insert the VirtIO iso. This can be done by running change ide2-cd0 virtio-win.iso in the QEMU monitor, or using -cdrom virtio-win.iso in your QEMU command.
- Open Device Manager in the VM by selecting Start -> Run, and typing devmgmt.msc.
- Find the device labelled Ethernet Controller in the Unknown Devices category. Right click it, and select Update Driver.
- In the resulting dialog, select No, not this time -> Install from a list or specific location -> Don't search -> Network adapters -> Have Disk
- A file window will open. Assuming D:\ is your CD drive, enter one of the following paths:
- 32-bit: D:\netkvm\xp\x86
- 64-bit: D:\netkvm\xp\amd64
- Click OK. Select Red Hat VirtIO Ethernet Adapter -> Next -> Continue Anyway.
Once the driver installs, click Finish. You should now have working VM internet.
Activation
Have a copy of XP SP2 or SP3 that isn't activated? Here's how to fix that:
- Download the XP telephone keygen from Computernewb
- Click Start -> All Programs -> Activate Windows
- Check "Yes, I want to telephone a customer service representative to activate Windows" and click Next
- Open the keygen
- Click the "Get from the system" button, if that doesn't work, type the installation ID manually into the program (you'll see it in step 3, its a long string of numbers)
- Type the numbers you get in the the keygen's "Confirmation ID" into their respective columns in the activation program
- Click "Next"
- Windows should be activated!
Browsers
It is highly recommended to install Supermium or MyPal, which are modern browsers for Windows XP. Supermium is based on Chromium 122, while MyPal is based on Firefox 68. Supermium is recommended for beefy systems, while older systems or systems with lower RAM should use MyPal.
Supermium
Supermium needs at least XP SP1, SS3, and around 2 GB of RAM to function properly.

- Open Internet Explorer (or whatever browser you have installed)
- Navigate to
http://win32subsystem.live/supermium/legacy/
- Download the Setup executable for your VM's bit width and run it
- You will get a few options in the setup. All of them are optional but I recommend installing the Noto Emoji font and creating shortcuts for Supermium. Hit OK
- If all went well, Supermium should be working!
MyPal

- Download the MyPal ISO from Computernewb (32-bit/64-bit) or download the zip directly from GitHub (32-bit/64-bit)
- Switch to the MyPal ISO by running a command similar to the following in the QEMU console:
change ide1-cd0 /path/to/mypal68.iso
- Open the CD and extract the ZIP file anywhere
- Navigate to the MyPal folder and open mypal.exe
- If all went well, it should be running now!