@node disk_images @section Disk Images QEMU supports many disk image formats, including growable disk images (their size increase as non empty sectors are written), compressed and encrypted disk images. @menu * disk_images_quickstart:: Quick start for disk image creation * disk_images_snapshot_mode:: Snapshot mode * vm_snapshots:: VM snapshots @end menu @node disk_images_quickstart @subsection Quick start for disk image creation You can create a disk image with the command: @example qemu-img create myimage.img mysize @end example where @var{myimage.img} is the disk image filename and @var{mysize} is its size in kilobytes. You can add an @code{M} suffix to give the size in megabytes and a @code{G} suffix for gigabytes. @c When this document is converted to rst we should make this into @c a proper linked reference to the qemu-img documentation again: See the qemu-img invocation documentation for more information. @node disk_images_snapshot_mode @subsection Snapshot mode If you use the option @option{-snapshot}, all disk images are considered as read only. When sectors in written, they are written in a temporary file created in @file{/tmp}. You can however force the write back to the raw disk images by using the @code{commit} monitor command (or @key{C-a s} in the serial console). @node vm_snapshots @subsection VM snapshots VM snapshots are snapshots of the complete virtual machine including CPU state, RAM, device state and the content of all the writable disks. In order to use VM snapshots, you must have at least one non removable and writable block device using the @code{qcow2} disk image format. Normally this device is the first virtual hard drive. Use the monitor command @code{savevm} to create a new VM snapshot or replace an existing one. A human readable name can be assigned to each snapshot in addition to its numerical ID. Use @code{loadvm} to restore a VM snapshot and @code{delvm} to remove a VM snapshot. @code{info snapshots} lists the available snapshots with their associated information: @example (qemu) info snapshots Snapshot devices: hda Snapshot list (from hda): ID TAG VM SIZE DATE VM CLOCK 1 start 41M 2006-08-06 12:38:02 00:00:14.954 2 40M 2006-08-06 12:43:29 00:00:18.633 3 msys 40M 2006-08-06 12:44:04 00:00:23.514 @end example A VM snapshot is made of a VM state info (its size is shown in @code{info snapshots}) and a snapshot of every writable disk image. The VM state info is stored in the first @code{qcow2} non removable and writable block device. The disk image snapshots are stored in every disk image. The size of a snapshot in a disk image is difficult to evaluate and is not shown by @code{info snapshots} because the associated disk sectors are shared among all the snapshots to save disk space (otherwise each snapshot would need a full copy of all the disk images). When using the (unrelated) @code{-snapshot} option (@ref{disk_images_snapshot_mode}), you can always make VM snapshots, but they are deleted as soon as you exit QEMU. VM snapshots currently have the following known limitations: @itemize @item They cannot cope with removable devices if they are removed or inserted after a snapshot is done. @item A few device drivers still have incomplete snapshot support so their state is not saved or restored properly (in particular USB). @end itemize