Skip to content

QCOW2

QEMU Copy-On-Write version 2

QCOW2 is the disk image format used by QEMU (Quick Emulator, the open-source machine emulator and virtualizer that underpins most Linux virtualization), and therefore the format most Linux image builds naturally produce. Its defining property is that it is sparse: the file only allocates space for blocks that have actually been written, so a 50 GB virtual disk holding 3 GB of data is a roughly 3 GB file. It also supports internal snapshots, backing files (a thin overlay on a shared base image), and compression.

Those features make it a good working format and a poor distribution format. No major cloud imports QCOW2 directly. Publishing a QCOW2-built image means converting it to what each destination expects:

  • AWS — RAW, an unstructured byte-for-byte disk dump (or VHD/VMDK) for AMI import
  • Azure — a fixed-size VHD (Virtual Hard Disk, Microsoft’s format), whose virtual size must be a whole number of MiB
  • Google Cloud — a RAW disk, tarred and gzipped
  • Hyper-V — VHDX, the successor to VHD and the only format a Generation 2 (UEFI) virtual machine will boot
  • VMware — VMDK (Virtual Machine Disk, VMware’s own format)

The conversion is mechanical, usually a qemu-img convert, but the destination-specific constraints are where builds break. Azure’s fixed-VHD alignment requirement in particular rejects images that are correct in every other respect, and the failure surfaces at upload time rather than at build time.

Machine-readable:/glossary/qcow2.md

Get started now.

Request access, describe the image you want, and have your first hardened image in about 15 minutes — a typical estimate, before publishing to your clouds. Primcoat builds, hardens, scans, signs, and publishes it, on the operating systems you already run.