qcow

From HandWiki
Revision as of 19:33, 6 February 2024 by CodeMe (talk | contribs) (linkage)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Short description: Virtual hard drive format

qcow is a file format for disk image files used by QEMU, a hosted virtual machine monitor.[1] 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. Three versions of the format exist: qcow, qcow2 and qcow3[2] which use the .qcow, .qcow2 and .qcow3 file extensions, respectively.

qemu-img command allows to inspect, check, create, convert, resize and take snapshot of qcow images.[3] The e2fsprogs command e2image also has support for generating qcow2 files to avoid the use of sparse file support.[4]

Features

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 sparse files, such as FAT32.[5]

The qcow format also allows storing 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.[5]

Optional features include zlib-based transparent decompression.[6]

qcow2

qcow2 is an updated version of the qcow format. qcow2 supports AES encryption.[7] The difference from the original version is that qcow2 supports multiple snapshots using a newer, more flexible model for storing them. The official documentation for the format is part of the QEMU Git tree.[8]

References