|Type of format||Disk image|
|Container for||File system|
qcow is a file format for disk image files used by QEMU, a hosted virtual machine monitor. It stands for "QEMU Copy On Write" and uses a disk storage optimization strategy that delays allocation of storage until it is actually needed. Files in qcow format can contain a variety of disk images which are generally associated with specific guest operating systems. Two versions of the format exist: qcow, and qcow2, which use the .qcow and .qcow2 file extensions, respectively.
One of the main characteristics of qcow disk images is that files with this format can grow as data is added. This allows for smaller file sizes than raw disk images, which allocate the whole image space to a file, even if parts of it are empty. This is particularly useful for file systems that do not support holes, such as FAT32.
The qcow format also allows to store changes made to a read-only base image on a separate qcow file by using copy on write. This new qcow file contains the path to the base image to be able to refer back to it when required. When a particular piece of data has to be read from this new image, the content is retrieved from it if it is new and was stored there; if it is not, the data is fetched from the base image.
One disadvantage of qcow images is that they cannot be mounted directly as raw disk images would. A utility that is able to read qcow files is required before being able to mount one.
qcow2 is an updated version of the qcow format, intended to supersede it. The main difference with the original is that qcow2 supports multiple virtual machine snapshots through a new, flexible model for storing snapshots.
Users can easily convert qcow disk images to the qcow2 format. QEMU and Xen have retained the qcow format for backwards compatibility.
One application of qcow is to handle multiple client virtualization requests on a host machine for a similar infrastructure. In such cases, the image of the operating system is stored in a single base disk image, while any changes done by the different clients are stored in independent qcow images that are linked to the base image. Changes may include updates, software installation, etc. This reduces the total disk space used by keeping only one common base image. Most clients on large virtualization platforms usually demand similar base infrastructure, allowing the provider to have a small amount of common base images (sometimes termed "server templates").
- "QEMU Emulator User Documentation". Wiki.qemu.org. Retrieved 2011-12-12.
- "The QCOW Image Format". People.gnome.org. 2006-06-21. Retrieved 2013-04-23.
- "The QCOW2 Image Format". People.gnome.org. 2008-09-11. Retrieved 2011-12-12.