The Digital Archaeologist’s Guide: Installing Windows 8.1 in a QCOW2 Environment
Subject: Windows 8.1 QCOW2 Install Focus: Virtualization, QEMU/KVM, Storage Optimization, and Legacy OS Preservation
While the tech world races toward Windows 11 and beyond, there remains a distinct need for Windows 8.1 in specialized environments—be it for legacy software compatibility, industrial control systems, or retro-gaming preservation. However, running this operating system using modern virtualization technologies presents a unique set of challenges and opportunities.
This article explores the deep technical process of installing Windows 8.1 into a QCOW2 (QEMU Copy On Write version 2) disk image. We will move beyond basic "next-next-finish" instructions to examine the architecture of QCOW2, the nuances of UEFI emulation, and the specific optimizations required to make this notoriously tile-heavy OS perform like a native machine.
Create a Snapshot
virsh snapshot-create-as win81 clean-state "Fresh install with drivers"
Closing notes
This workflow gets Windows 8.1 running in a qcow2 image with solid performance using virtio drivers. Use virt-manager or libvirt for easier management; use qemu-system directly for fine control. If you want, I can produce:
- A tailored libvirt XML for your CPU/RAM/disk specs, or
- A step-by-step walkthrough with screenshots, or
- A script that automates qcow2 creation + virt-install for specific resources.
Which of those would you like?
Here’s a solid, structured review of installing Windows 8.1 as a QEMU QCOW2 virtual machine. It covers performance, setup steps, driver considerations, and overall suitability.
Recommended device choices
- Disk bus: virtio-scsi for best compatibility and features (hotplug).
- Network: virtio-net for best throughput.
- Video: qxl (with spice) for good graphical experience; or virtio-gpu if supported.
- Sound: AC97 or Intel HDA (use corresponding drivers in Windows).
- Input: USB tablet for pointer integration.
Step 2: Create VM with Custom Settings
Proxmox GUI:
- Create VM → OS: Windows 8/2012 (Select type: Windows 8/2012)
- Hard Disk: Bus/Device = VirtIO Block. Size = whatever you created. Important: Do not add the disk yet if you want to install via ISO – or add it, but also add an extra SATA disk? Better: Add the disk as VirtIO, but first boot from Windows ISO and VirtIO ISO.
- CD/DVD Drive 1: Windows 8.1 ISO
- CD/DVD Drive 2: VirtIO driver ISO (use
virtio-win.iso) - Display: SPICE or QXL (for better GPU)
The key: When starting the VM, press a key to boot from DVD. At disk selection, no disk appears. Click Load Driver, browse to the VirtIO CDROM → viostor\w8.1\amd64. The VirtIO disk appears. Install.
Benchmark:
A well-tuned Windows 8.1 on QCOW2 (with VirtIO) should achieve near‑bare‑metal disk speeds – over 1 GB/s sequential with NVMe backend and cache=none.
Create VM with virt-install (example)
UEFI example with virtio disk and virtio NIC:
virt-install \
--name win8.1 \
--ram 8192 \
--vcpus 2 \
--cpu host \
--os-variant win8.1 \
--disk path=/var/lib/libvirt/images/win8.1.qcow2,format=qcow2,bus=virtio,size=60 \
--cdrom /path/to/Win8.1.iso \
--disk path=/path/to/virtio-win.iso,device=cdrom \
--graphics spice \
--video qxl \
--network network=default,model=virtio \
--boot uefi
Notes:
- Use --boot uefi only if OVMF installed.
- If using BIOS, omit --boot uefi.
- For better graphics, use SPICE + QXL/Virtio GPU or passthrough GPU if available.
Step 3: Create a Virtual Machine
You can create a virtual machine (VM) and install Windows 8.1 on it using the following command. Before running the command, replace /path/to/win8.1.iso with the actual path to your Windows 8.1 ISO file.
sudo qemu-system-x86_64 \
-enable-kvm \
-m 4096 \
-vga virtio \
-display sdl,gl=on \
-device virtio-tablet \
-device virtio-keyboard \
-smp 2 \
-cdrom /path/to/win8.1.iso \
-boot order=d \
-device virtio-disk0 \
-drive file=win81.qcow2,format=qcow2,if=virtio \
-netdev user,id=network0 \
-device e1000e,netdev=network0 \
-soundhw hda \
-device intel-hda -device hda-duplex
However, for actually creating a .qcow2 image and then installing Windows into it, you'll first need to create the image:
qemu-img create -f qcow2 win81.qcow2 60G
Then, use a slightly modified command to boot from the ISO and install Windows onto the .qcow2 image:
sudo qemu-system-x86_64 \
-enable-kvm \
-m 4096 \
-smp 2 \
-cdrom /path/to/win8.1.iso \
-boot order=d \
-drive file=win81.qcow2,format=qcow2,if=virtio \
-netdev user,id=network0 \
-device e1000e,netdev=network0
Step B: The VirtIO "Chicken and Egg" Problem
When booting the Windows 8.1 installer, you will encounter a screen asking "Where do you want to install Windows?" The list will be empty.
This is because the virtual hard drive is on a VirtIO controller, which the installer views as an alien device.
- Load the VirtIO ISO into a second virtual CD-ROM drive.
- Click "Load Driver" in the installer.
- Browse to the
Win8.1folder on the VirtIO ISO ->amd64. - Select the Red Hat VirtIO SCSI controller.
- The QCOW2 disk will suddenly appear.