| @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 |
| |