Installing the Windows 8.1 preview on Linux using KVM

By | June 29, 2013

Want a preview of Windows Blue? Or just a free Windows virtual machine for your Linux computer?
This guide explains how to install Windows 8.1 preview on Linux using KVM, the Kernel Virtual Machine and QEMU.

Tested on Ubuntu 13.04 64-bit.

Preparations for install

Here are the steps to prepare your install.

Verify that you have the necessary free space and free memory

The hardware requirements for Windows 8.1 preview are

  • Processor: 1 gigahertz (GHz) or faster
  • RAM: 1 gigabyte (GB) (32-bit) or 2 GB (64-bit)
  • Free hard disk space: 16 GB (32-bit) or 20 GB (64-bit)

Download Windows 8.1 preview

Download the iso from Microsoft. It’s about 3.5GB.

Download the virtio drivers

The virtio drivers makes your virtual machine much quicker.
Get them here.

Creating a disk image for the virtual machine

Create a 34GB large disk image called ‘hd.img’ (or any name you like):

dd if=/dev/zero of=hd.img bs=100M count=320

This will take a while.

(Optional) Figure out if you have a Microsoft-account and try to remember the password

The install is simpler if you use a Microsoft-account.
If you don’t have a Microsoft-account you’ll get to create a local account instead after install IF you’re not connected to the Internet.

Try logging in at or to retrieve the password if you forgot it.

Install KVM

Here’s a summary on how to install KVM. Check out the complete guide at Ubuntu’s KVM-pages if you run into trouble.

sudo apt-get install qemu-kvm libvirt-bin bridge-utils
sudo adduser `id -un` libvirtd #adds your user to the libvirtd group

Then restart your computer. Read the Ubuntu guide mentioned above if you want to avoid this step.

Afterwards, verify that it’s working by executing
virsh -c qemu:///system list
No errors should show, you should see an empty list of virtual machines.

Launching the installer

The command below creates a 64-bit virtual machine with 4GB ram, 2 virtual cpus and the most current versions of the Windows preview and virtio-drivers at the time of writing.
You may need to modify this command a bit, adjusting sizes and filenames.

qemu-system-x86_64 -machine accel=kvm:tcg -cpu host -soundhw hda -vga std -cdrom WindowsBlue-ClientwithApps-64bit-English-X1899605.iso -drive file=hd.img,if=virtio -m 4096 -drive file=virtio-win-0.1-59.iso,media=cdrom -smp 2,maxcpus=4 -net nic,model=virtio -net user -boot d

Get the serial number from the Windows 8.1 FAQ. At the time of writing it’s

The installer will ask for your Microsoft account and you’ll have to input a code sent to the email registered to your Microsoft-account, if you’re connected to the Internet while installing.
If you don’t want to use a Microsoft account during install, disconnect your host from the Internet, or tweak the qemu command above to disable network support.
Otherwise, make sure that you have access to the email account registered with Microsoft.



The installer will complain that there is no hard drive to install Windows to.
Click “Load driver” and select the cdrom, and the Win8/AMD64 or X86 (32-bit) folder. Select the network adapter driver and install. Repeat for the disk driver.
Then click next.

Use the “ctrl – alt” key combination to release the mouse pointer from the virtual machine.


Starting the virtual machine

Use the same command as for installing to start the virtual machine. Optionally you may want to remove the iso-references and the boot from cdrom (‘boot d’).
Note that shutting down Windows 8.1 doesn’t fully stop the virtual machine.
After shutting down Windows (ctrl-alt-del brings up the shutdown menu), you stop the qemu-command with ctrl-c or close the terminal window.

Use the “ctrl – alt” key combination to release the mouse pointer from the virtual machine.



No sound? There’s a a known bug in Ubuntu that likely will hit you. Check out bug 591489 for a workaround. The workaround is in one of the last posts, by Samir.

If you get the error ‘qemu-system-x86_64: Guest moved used index from 0 to 6993’ (or similar), that’s bad luck. Just execute the command again, and it will likely work. In my experience this happens about 1 out of 5 times, and has no consequenc other than that you must execute the same command again to start the virtual machine.

Leave a Reply

Your email address will not be published. Required fields are marked *