Skip to content

04 Create Windows virtual machines

Martin Wimpress edited this page Jan 23, 2026 · 6 revisions

Automatically create Windows guests

quickget can download Windows 10 and Windows 11 automatically and create an optimised virtual machine configuration. This configuration also includes the VirtIO drivers for Windows.

quickget can also download Windows Server 2016, 2019, and 2022.

NOTE! Windows Server does not have automated installation and does not automatically configure VirtIO as it uses emulated IDE disks and Intel E1000 network devices instead.

quickget windows 11
quickemu --vm windows-11.conf
  • Complete the installation as you normally would.
  • All relevant drivers and services should be installed automatically.
  • A local administrator user account is automatically created, with these credentials:
    • Username: Quickemu
    • Password: quickemu

Regional versions

By default quickget will download the "English International" release ("English (United States)" for server releases), but you can optionally specify one of the supported languages: For example:

quickget windows 11 "Chinese (Traditional)"

The default Windows 11 configuration looks like this:

guest_os="windows"
disk_img="windows-11/disk.qcow2"
iso="windows-11/windows-11.iso"
fixed_iso="windows-11/virtio-win.iso"
tpm="on"
secureboot="off"
  • guest_os="windows" instructs quickemu to optimise for Windows.
  • fixed_iso= specifies the ISO image that provides VirtIO drivers.
  • tpm="on" instructs quickemu to create a software emulated TPM device using swtpm.

Windows 11 System Requirements

Windows 11 has stricter hardware requirements than previous versions. Microsoft requires:

  • Minimum 2 CPU cores (1 GHz or faster)
  • 4 GB RAM minimum
  • TPM 2.0
  • Secure Boot capable

CPU Core Requirement

As of quickemu 4.9.7, Windows 11 guests automatically receive a minimum of 2 CPU cores, even on hosts with limited resources. This prevents installation failures that occur when Windows 11 detects fewer than 2 cores.

You can still allocate more cores by setting cpu_cores in your configuration file:

cpu_cores="4"

See PR #1797 for implementation details.

Customising Windows VM startup

When quickget downloads Windows 10 or 11, it creates an unattended installation that automatically configures the VM. You can customise this process by modifying the autounattend.xml file.

Adding custom startup scripts

The unattended installation includes a FirstLogonCommands section that runs commands after the first user login. To add your own scripts:

  1. Locate the unattended files in your VM directory:
ls windows-11/unattended/
  1. Edit autounattend.xml and find the FirstLogonCommands section (near the end of the file)

  2. Add your custom commands. Each command needs an Order number (higher numbers run later):

<FirstLogonCommands>
  <!-- Existing commands are here with Order 1-7 -->
  
  <SynchronousCommand wcm:action="add">
    <CommandLine>powershell -ExecutionPolicy Bypass -File F:\setup.ps1</CommandLine>
    <Description>Run custom setup script</Description>
    <Order>8</Order>
  </SynchronousCommand>
</FirstLogonCommands>
  1. Place your script in the unattended/ directory so it's included in the ISO

  2. Regenerate the unattended ISO:

mkisofs -quiet -J -o windows-11/unattended.iso windows-11/unattended/

Drive letter reference

During Windows installation, drives are assigned as follows:

  • C: - Windows system drive
  • E: - VirtIO drivers ISO (virtio-win.iso)
  • F: - Unattended configuration ISO (unattended.iso)

Disabling unattended installation

To perform a manual Windows installation instead:

quickget windows 11 --disable-unattended

This skips creating the autounattend.xml and related files, allowing you to configure Windows manually during installation.

Starting fresh

To regenerate the default unattended configuration after making changes:

  1. Delete the existing unattended files:
rm -rf windows-11/unattended/ windows-11/unattended.iso
  1. Re-run quickget (it will recreate the unattended files):
quickget windows 11

Known Issues

SPICE display causes freezes

Windows 10 and Windows 11 guests may freeze approximately 20 seconds after boot when using --display spice. The freeze typically occurs when interacting with the VM, such as opening files or a web browser.

Workaround: Use the default SDL display instead of SPICE:

# Instead of this (causes freezes):
quickemu --vm windows-11.conf --display spice

# Use this:
quickemu --vm windows-11.conf

Trade-off: Window resizing and SPICE-specific features (clipboard sharing, USB redirection via SPICE) will not be available with SDL display.

This appears to be an upstream SPICE/QEMU limitation rather than a quickemu bug. See issue #1670 for details.

Clone this wiki locally