aboutsummaryrefslogtreecommitdiff
blob: ae8ca922e04e2017c7d30973fa1c524bd4440ca4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
@example
@c man begin SYNOPSIS
usage: qemu-img command [command options]
@c man end
@end example

@c man begin OPTIONS

The following commands are supported:

@include qemu-img-cmds.texi

Command parameters:
@table @var
@item filename
 is a disk image filename
@item base_image
is the read-only disk image which is used as base for a copy on
    write image; the copy on write image only stores the modified data
@item output_base_image
forces the output image to be created as a copy on write
image of the specified base image; @code{output_base_image} should have the same
content as the input's base image, however the path, image format, etc may
differ
@item base_fmt
is the disk image format of @var{base_image}. for more information look at @var{fmt}
@item fmt
is the disk image format. It is guessed automatically in most cases. The following formats are supported:

@table @code
@item raw

Raw disk image format (default). This format has the advantage of
being simple and easily exportable to all other emulators. If your
file system supports @emph{holes} (for example in ext2 or ext3 on
Linux or NTFS on Windows), then only the written sectors will reserve
space. Use @code{qemu-img info} to know the real size used by the
image or @code{ls -ls} on Unix/Linux.

@item host_device

Host device format. This format should be used instead of raw when
converting to block devices or other devices where "holes" are not
supported.

@item qcow2
QEMU image format, the most versatile format. Use it to have smaller
images (useful if your filesystem does not supports holes, for example
on Windows), optional AES encryption, zlib based compression and
support of multiple VM snapshots.
@item qcow
Old QEMU image format. Left for compatibility.
@item cow
User Mode Linux Copy On Write image format. Used to be the only growable
image format in QEMU. It is supported only for compatibility with
previous versions. It does not work on win32.
@item vdi
VirtualBox 1.1 compatible image format.
@item vmdk
VMware 3 and 4 compatible image format.
@item cloop
Linux Compressed Loop image, useful only to reuse directly compressed
CD-ROM images present for example in the Knoppix CD-ROMs.
@end table

@item size
is the disk image size in bytes. Optional suffixes @code{k} or @code{K}
(kilobyte, 1024) @code{M} (megabyte, 1024k) and @code{G} (gigabyte, 1024M)
and T (terabyte, 1024G) are supported.  @code{b} is ignored.

@item output_filename
is the destination disk image filename

@item output_fmt
 is the destination format
@item options
is a comma separated list of format specific options in a
name=value format. Use @code{-o ?} for an overview of the options supported
by the used format


@item -c
indicates that target image must be compressed (qcow format only)
@item -h
with or without a command shows help and lists the supported formats
@end table

Parameters to snapshot subcommand:

@table @option

@item snapshot
is the name of the snapshot to create, apply or delete
@item -a
applies a snapshot (revert disk to saved state)
@item -c
creates a snapshot
@item -d
deletes a snapshot
@item -l
lists all snapshots in the given image
@end table

Command description:

@table @option
@item create [-F @var{base_fmt}] [-b @var{base_image}] [-f @var{fmt}] [-o @var{options}] @var{filename} [@var{size}]

Create the new disk image @var{filename} of size @var{size} and format
@var{fmt}.

If @var{base_image} is specified, then the image will record only the
differences from @var{base_image}. No size needs to be specified in
this case. @var{base_image} will never be modified unless you use the
@code{commit} monitor command.

The size can also be specified using the @var{size} option with @code{-o},
it doesn't need to be specified separately in this case.

@item commit [-f @var{fmt}] @var{filename}

Commit the changes recorded in @var{filename} in its base image.

@item convert [-c] [-f @var{fmt}] [-O @var{output_fmt}] [-o @var{options}] [-B @var{output_base_image}] @var{filename} [@var{filename2} [...]] @var{output_filename}

Convert the disk image @var{filename} to disk image @var{output_filename}
using format @var{output_fmt}. It can be optionally compressed (@code{-c}
option) or use any format specific options like encryption (@code{-o} option).

Only the formats @code{qcow} and @code{qcow2} support encryption or compression. The
compression is read-only. It means that if a compressed sector is
rewritten, then it is rewritten as uncompressed data.

Encryption uses the AES format which is very secure (128 bit keys). Use
a long password (16 characters) to get maximum protection.

Image conversion is also useful to get smaller image when using a
growable format such as @code{qcow} or @code{cow}: the empty sectors
are detected and suppressed from the destination image.

@item info [-f @var{fmt}] @var{filename}

Give information about the disk image @var{filename}. Use it in
particular to know the size reserved on disk which can be different
from the displayed size. If VM snapshots are stored in the disk image,
they are displayed too.

@item snapshot [-l | -a @var{snapshot} | -c @var{snapshot} | -d @var{snapshot} ] @var{filename}

List, apply, create or delete snapshots in image @var{filename}.
@end table

@c man end

@ignore

@setfilename qemu-img
@settitle QEMU disk image utility

@c man begin SEEALSO
The HTML documentation of QEMU for more precise information and Linux
user mode emulator invocation.
@c man end

@c man begin AUTHOR
Fabrice Bellard
@c man end

@end ignore