qcow2: Add the 'extended_l2' option and the QCOW2_INCOMPAT_EXTL2 bit
Now that the implementation of subclusters is complete we can finally add the necessary options to create and read images with this feature, which we call "extended L2 entries". Signed-off-by: Alberto Garcia <berto@igalia.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Message-Id: <6476caaa73216bd05b7bb2d504a20415e1665176.1594396418.git.berto@igalia.com> [mreitz: %s/5\.1/5.2/; fixed 302's and 303's reference output] Signed-off-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
parent
40dee94320
commit
7be2025258
@ -1449,6 +1449,12 @@ static int coroutine_fn qcow2_do_open(BlockDriverState *bs, QDict *options,
|
|||||||
s->subcluster_size = s->cluster_size / s->subclusters_per_cluster;
|
s->subcluster_size = s->cluster_size / s->subclusters_per_cluster;
|
||||||
s->subcluster_bits = ctz32(s->subcluster_size);
|
s->subcluster_bits = ctz32(s->subcluster_size);
|
||||||
|
|
||||||
|
if (s->subcluster_size < (1 << MIN_CLUSTER_BITS)) {
|
||||||
|
error_setg(errp, "Unsupported subcluster size: %d", s->subcluster_size);
|
||||||
|
ret = -EINVAL;
|
||||||
|
goto fail;
|
||||||
|
}
|
||||||
|
|
||||||
/* Check support for various header values */
|
/* Check support for various header values */
|
||||||
if (header.refcount_order > 6) {
|
if (header.refcount_order > 6) {
|
||||||
error_setg(errp, "Reference count entry width too large; may not "
|
error_setg(errp, "Reference count entry width too large; may not "
|
||||||
@ -2934,6 +2940,11 @@ int qcow2_update_header(BlockDriverState *bs)
|
|||||||
.bit = QCOW2_INCOMPAT_COMPRESSION_BITNR,
|
.bit = QCOW2_INCOMPAT_COMPRESSION_BITNR,
|
||||||
.name = "compression type",
|
.name = "compression type",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.type = QCOW2_FEAT_TYPE_INCOMPATIBLE,
|
||||||
|
.bit = QCOW2_INCOMPAT_EXTL2_BITNR,
|
||||||
|
.name = "extended L2 entries",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.type = QCOW2_FEAT_TYPE_COMPATIBLE,
|
.type = QCOW2_FEAT_TYPE_COMPATIBLE,
|
||||||
.bit = QCOW2_COMPAT_LAZY_REFCOUNTS_BITNR,
|
.bit = QCOW2_COMPAT_LAZY_REFCOUNTS_BITNR,
|
||||||
@ -3270,7 +3281,8 @@ static int64_t qcow2_calc_prealloc_size(int64_t total_size,
|
|||||||
return meta_size + aligned_total_size;
|
return meta_size + aligned_total_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool validate_cluster_size(size_t cluster_size, Error **errp)
|
static bool validate_cluster_size(size_t cluster_size, bool extended_l2,
|
||||||
|
Error **errp)
|
||||||
{
|
{
|
||||||
int cluster_bits = ctz32(cluster_size);
|
int cluster_bits = ctz32(cluster_size);
|
||||||
if (cluster_bits < MIN_CLUSTER_BITS || cluster_bits > MAX_CLUSTER_BITS ||
|
if (cluster_bits < MIN_CLUSTER_BITS || cluster_bits > MAX_CLUSTER_BITS ||
|
||||||
@ -3280,16 +3292,28 @@ static bool validate_cluster_size(size_t cluster_size, Error **errp)
|
|||||||
"%dk", 1 << MIN_CLUSTER_BITS, 1 << (MAX_CLUSTER_BITS - 10));
|
"%dk", 1 << MIN_CLUSTER_BITS, 1 << (MAX_CLUSTER_BITS - 10));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (extended_l2) {
|
||||||
|
unsigned min_cluster_size =
|
||||||
|
(1 << MIN_CLUSTER_BITS) * QCOW_EXTL2_SUBCLUSTERS_PER_CLUSTER;
|
||||||
|
if (cluster_size < min_cluster_size) {
|
||||||
|
error_setg(errp, "Extended L2 entries are only supported with "
|
||||||
|
"cluster sizes of at least %u bytes", min_cluster_size);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static size_t qcow2_opt_get_cluster_size_del(QemuOpts *opts, Error **errp)
|
static size_t qcow2_opt_get_cluster_size_del(QemuOpts *opts, bool extended_l2,
|
||||||
|
Error **errp)
|
||||||
{
|
{
|
||||||
size_t cluster_size;
|
size_t cluster_size;
|
||||||
|
|
||||||
cluster_size = qemu_opt_get_size_del(opts, BLOCK_OPT_CLUSTER_SIZE,
|
cluster_size = qemu_opt_get_size_del(opts, BLOCK_OPT_CLUSTER_SIZE,
|
||||||
DEFAULT_CLUSTER_SIZE);
|
DEFAULT_CLUSTER_SIZE);
|
||||||
if (!validate_cluster_size(cluster_size, errp)) {
|
if (!validate_cluster_size(cluster_size, extended_l2, errp)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return cluster_size;
|
return cluster_size;
|
||||||
@ -3403,7 +3427,20 @@ qcow2_co_create(BlockdevCreateOptions *create_options, Error **errp)
|
|||||||
cluster_size = DEFAULT_CLUSTER_SIZE;
|
cluster_size = DEFAULT_CLUSTER_SIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!validate_cluster_size(cluster_size, errp)) {
|
if (!qcow2_opts->has_extended_l2) {
|
||||||
|
qcow2_opts->extended_l2 = false;
|
||||||
|
}
|
||||||
|
if (qcow2_opts->extended_l2) {
|
||||||
|
if (version < 3) {
|
||||||
|
error_setg(errp, "Extended L2 entries are only supported with "
|
||||||
|
"compatibility level 1.1 and above (use version=v3 or "
|
||||||
|
"greater)");
|
||||||
|
ret = -EINVAL;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!validate_cluster_size(cluster_size, qcow2_opts->extended_l2, errp)) {
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -3554,6 +3591,11 @@ qcow2_co_create(BlockdevCreateOptions *create_options, Error **errp)
|
|||||||
cpu_to_be64(QCOW2_INCOMPAT_COMPRESSION);
|
cpu_to_be64(QCOW2_INCOMPAT_COMPRESSION);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (qcow2_opts->extended_l2) {
|
||||||
|
header->incompatible_features |=
|
||||||
|
cpu_to_be64(QCOW2_INCOMPAT_EXTL2);
|
||||||
|
}
|
||||||
|
|
||||||
ret = blk_pwrite(blk, 0, header, cluster_size, 0);
|
ret = blk_pwrite(blk, 0, header, cluster_size, 0);
|
||||||
g_free(header);
|
g_free(header);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
@ -3731,6 +3773,7 @@ static int coroutine_fn qcow2_co_create_opts(BlockDriver *drv,
|
|||||||
{ BLOCK_OPT_BACKING_FMT, "backing-fmt" },
|
{ BLOCK_OPT_BACKING_FMT, "backing-fmt" },
|
||||||
{ BLOCK_OPT_CLUSTER_SIZE, "cluster-size" },
|
{ BLOCK_OPT_CLUSTER_SIZE, "cluster-size" },
|
||||||
{ BLOCK_OPT_LAZY_REFCOUNTS, "lazy-refcounts" },
|
{ BLOCK_OPT_LAZY_REFCOUNTS, "lazy-refcounts" },
|
||||||
|
{ BLOCK_OPT_EXTL2, "extended-l2" },
|
||||||
{ BLOCK_OPT_REFCOUNT_BITS, "refcount-bits" },
|
{ BLOCK_OPT_REFCOUNT_BITS, "refcount-bits" },
|
||||||
{ BLOCK_OPT_ENCRYPT, BLOCK_OPT_ENCRYPT_FORMAT },
|
{ BLOCK_OPT_ENCRYPT, BLOCK_OPT_ENCRYPT_FORMAT },
|
||||||
{ BLOCK_OPT_COMPAT_LEVEL, "version" },
|
{ BLOCK_OPT_COMPAT_LEVEL, "version" },
|
||||||
@ -4847,11 +4890,14 @@ static BlockMeasureInfo *qcow2_measure(QemuOpts *opts, BlockDriverState *in_bs,
|
|||||||
PreallocMode prealloc;
|
PreallocMode prealloc;
|
||||||
bool has_backing_file;
|
bool has_backing_file;
|
||||||
bool has_luks;
|
bool has_luks;
|
||||||
bool extended_l2 = false; /* Set to false until the option is added */
|
bool extended_l2;
|
||||||
size_t l2e_size;
|
size_t l2e_size;
|
||||||
|
|
||||||
/* Parse image creation options */
|
/* Parse image creation options */
|
||||||
cluster_size = qcow2_opt_get_cluster_size_del(opts, &local_err);
|
extended_l2 = qemu_opt_get_bool_del(opts, BLOCK_OPT_EXTL2, false);
|
||||||
|
|
||||||
|
cluster_size = qcow2_opt_get_cluster_size_del(opts, extended_l2,
|
||||||
|
&local_err);
|
||||||
if (local_err) {
|
if (local_err) {
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
@ -5047,6 +5093,8 @@ static ImageInfoSpecific *qcow2_get_specific_info(BlockDriverState *bs,
|
|||||||
.corrupt = s->incompatible_features &
|
.corrupt = s->incompatible_features &
|
||||||
QCOW2_INCOMPAT_CORRUPT,
|
QCOW2_INCOMPAT_CORRUPT,
|
||||||
.has_corrupt = true,
|
.has_corrupt = true,
|
||||||
|
.has_extended_l2 = true,
|
||||||
|
.extended_l2 = has_subclusters(s),
|
||||||
.refcount_bits = s->refcount_bits,
|
.refcount_bits = s->refcount_bits,
|
||||||
.has_bitmaps = !!bitmaps,
|
.has_bitmaps = !!bitmaps,
|
||||||
.bitmaps = bitmaps,
|
.bitmaps = bitmaps,
|
||||||
@ -5774,6 +5822,12 @@ static QemuOptsList qcow2_create_opts = {
|
|||||||
.help = "qcow2 cluster size", \
|
.help = "qcow2 cluster size", \
|
||||||
.def_value_str = stringify(DEFAULT_CLUSTER_SIZE) \
|
.def_value_str = stringify(DEFAULT_CLUSTER_SIZE) \
|
||||||
}, \
|
}, \
|
||||||
|
{ \
|
||||||
|
.name = BLOCK_OPT_EXTL2, \
|
||||||
|
.type = QEMU_OPT_BOOL, \
|
||||||
|
.help = "Extended L2 tables", \
|
||||||
|
.def_value_str = "off" \
|
||||||
|
}, \
|
||||||
{ \
|
{ \
|
||||||
.name = BLOCK_OPT_PREALLOC, \
|
.name = BLOCK_OPT_PREALLOC, \
|
||||||
.type = QEMU_OPT_STRING, \
|
.type = QEMU_OPT_STRING, \
|
||||||
|
@ -246,15 +246,18 @@ enum {
|
|||||||
QCOW2_INCOMPAT_CORRUPT_BITNR = 1,
|
QCOW2_INCOMPAT_CORRUPT_BITNR = 1,
|
||||||
QCOW2_INCOMPAT_DATA_FILE_BITNR = 2,
|
QCOW2_INCOMPAT_DATA_FILE_BITNR = 2,
|
||||||
QCOW2_INCOMPAT_COMPRESSION_BITNR = 3,
|
QCOW2_INCOMPAT_COMPRESSION_BITNR = 3,
|
||||||
|
QCOW2_INCOMPAT_EXTL2_BITNR = 4,
|
||||||
QCOW2_INCOMPAT_DIRTY = 1 << QCOW2_INCOMPAT_DIRTY_BITNR,
|
QCOW2_INCOMPAT_DIRTY = 1 << QCOW2_INCOMPAT_DIRTY_BITNR,
|
||||||
QCOW2_INCOMPAT_CORRUPT = 1 << QCOW2_INCOMPAT_CORRUPT_BITNR,
|
QCOW2_INCOMPAT_CORRUPT = 1 << QCOW2_INCOMPAT_CORRUPT_BITNR,
|
||||||
QCOW2_INCOMPAT_DATA_FILE = 1 << QCOW2_INCOMPAT_DATA_FILE_BITNR,
|
QCOW2_INCOMPAT_DATA_FILE = 1 << QCOW2_INCOMPAT_DATA_FILE_BITNR,
|
||||||
QCOW2_INCOMPAT_COMPRESSION = 1 << QCOW2_INCOMPAT_COMPRESSION_BITNR,
|
QCOW2_INCOMPAT_COMPRESSION = 1 << QCOW2_INCOMPAT_COMPRESSION_BITNR,
|
||||||
|
QCOW2_INCOMPAT_EXTL2 = 1 << QCOW2_INCOMPAT_EXTL2_BITNR,
|
||||||
|
|
||||||
QCOW2_INCOMPAT_MASK = QCOW2_INCOMPAT_DIRTY
|
QCOW2_INCOMPAT_MASK = QCOW2_INCOMPAT_DIRTY
|
||||||
| QCOW2_INCOMPAT_CORRUPT
|
| QCOW2_INCOMPAT_CORRUPT
|
||||||
| QCOW2_INCOMPAT_DATA_FILE
|
| QCOW2_INCOMPAT_DATA_FILE
|
||||||
| QCOW2_INCOMPAT_COMPRESSION,
|
| QCOW2_INCOMPAT_COMPRESSION
|
||||||
|
| QCOW2_INCOMPAT_EXTL2,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Compatible feature bits */
|
/* Compatible feature bits */
|
||||||
@ -581,8 +584,7 @@ typedef enum QCow2MetadataOverlap {
|
|||||||
|
|
||||||
static inline bool has_subclusters(BDRVQcow2State *s)
|
static inline bool has_subclusters(BDRVQcow2State *s)
|
||||||
{
|
{
|
||||||
/* FIXME: Return false until this feature is complete */
|
return s->incompatible_features & QCOW2_INCOMPAT_EXTL2;
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline size_t l2_entry_size(BDRVQcow2State *s)
|
static inline size_t l2_entry_size(BDRVQcow2State *s)
|
||||||
|
@ -59,6 +59,7 @@
|
|||||||
#define BLOCK_OPT_DATA_FILE "data_file"
|
#define BLOCK_OPT_DATA_FILE "data_file"
|
||||||
#define BLOCK_OPT_DATA_FILE_RAW "data_file_raw"
|
#define BLOCK_OPT_DATA_FILE_RAW "data_file_raw"
|
||||||
#define BLOCK_OPT_COMPRESSION_TYPE "compression_type"
|
#define BLOCK_OPT_COMPRESSION_TYPE "compression_type"
|
||||||
|
#define BLOCK_OPT_EXTL2 "extended_l2"
|
||||||
|
|
||||||
#define BLOCK_PROBE_BUF_SIZE 512
|
#define BLOCK_PROBE_BUF_SIZE 512
|
||||||
|
|
||||||
|
@ -67,6 +67,9 @@
|
|||||||
# standalone (read-only) raw image without looking at qcow2
|
# standalone (read-only) raw image without looking at qcow2
|
||||||
# metadata (since: 4.0)
|
# metadata (since: 4.0)
|
||||||
#
|
#
|
||||||
|
# @extended-l2: true if the image has extended L2 entries; only valid for
|
||||||
|
# compat >= 1.1 (since 5.2)
|
||||||
|
#
|
||||||
# @lazy-refcounts: on or off; only valid for compat >= 1.1
|
# @lazy-refcounts: on or off; only valid for compat >= 1.1
|
||||||
#
|
#
|
||||||
# @corrupt: true if the image has been marked corrupt; only valid for
|
# @corrupt: true if the image has been marked corrupt; only valid for
|
||||||
@ -88,6 +91,7 @@
|
|||||||
'compat': 'str',
|
'compat': 'str',
|
||||||
'*data-file': 'str',
|
'*data-file': 'str',
|
||||||
'*data-file-raw': 'bool',
|
'*data-file-raw': 'bool',
|
||||||
|
'*extended-l2': 'bool',
|
||||||
'*lazy-refcounts': 'bool',
|
'*lazy-refcounts': 'bool',
|
||||||
'*corrupt': 'bool',
|
'*corrupt': 'bool',
|
||||||
'refcount-bits': 'int',
|
'refcount-bits': 'int',
|
||||||
@ -4304,6 +4308,8 @@
|
|||||||
# @data-file-raw: True if the external data file must stay valid as a
|
# @data-file-raw: True if the external data file must stay valid as a
|
||||||
# standalone (read-only) raw image without looking at qcow2
|
# standalone (read-only) raw image without looking at qcow2
|
||||||
# metadata (default: false; since: 4.0)
|
# metadata (default: false; since: 4.0)
|
||||||
|
# @extended-l2 True to make the image have extended L2 entries
|
||||||
|
# (default: false; since 5.2)
|
||||||
# @size: Size of the virtual disk in bytes
|
# @size: Size of the virtual disk in bytes
|
||||||
# @version: Compatibility level (default: v3)
|
# @version: Compatibility level (default: v3)
|
||||||
# @backing-file: File name of the backing file if a backing file
|
# @backing-file: File name of the backing file if a backing file
|
||||||
@ -4324,6 +4330,7 @@
|
|||||||
'data': { 'file': 'BlockdevRef',
|
'data': { 'file': 'BlockdevRef',
|
||||||
'*data-file': 'BlockdevRef',
|
'*data-file': 'BlockdevRef',
|
||||||
'*data-file-raw': 'bool',
|
'*data-file-raw': 'bool',
|
||||||
|
'*extended-l2': 'bool',
|
||||||
'size': 'size',
|
'size': 'size',
|
||||||
'*version': 'BlockdevQcow2Version',
|
'*version': 'BlockdevQcow2Version',
|
||||||
'*backing-file': 'str',
|
'*backing-file': 'str',
|
||||||
|
@ -117,7 +117,7 @@ header_length 112
|
|||||||
|
|
||||||
Header extension:
|
Header extension:
|
||||||
magic 0x6803f857 (Feature table)
|
magic 0x6803f857 (Feature table)
|
||||||
length 336
|
length 384
|
||||||
data <binary>
|
data <binary>
|
||||||
|
|
||||||
Header extension:
|
Header extension:
|
||||||
@ -150,7 +150,7 @@ header_length 112
|
|||||||
|
|
||||||
Header extension:
|
Header extension:
|
||||||
magic 0x6803f857 (Feature table)
|
magic 0x6803f857 (Feature table)
|
||||||
length 336
|
length 384
|
||||||
data <binary>
|
data <binary>
|
||||||
|
|
||||||
Header extension:
|
Header extension:
|
||||||
@ -164,7 +164,7 @@ No errors were found on the image.
|
|||||||
|
|
||||||
magic 0x514649fb
|
magic 0x514649fb
|
||||||
version 3
|
version 3
|
||||||
backing_file_offset 0x210
|
backing_file_offset 0x240
|
||||||
backing_file_size 0x17
|
backing_file_size 0x17
|
||||||
cluster_bits 16
|
cluster_bits 16
|
||||||
size 67108864
|
size 67108864
|
||||||
@ -188,7 +188,7 @@ data 'host_device'
|
|||||||
|
|
||||||
Header extension:
|
Header extension:
|
||||||
magic 0x6803f857 (Feature table)
|
magic 0x6803f857 (Feature table)
|
||||||
length 336
|
length 384
|
||||||
data <binary>
|
data <binary>
|
||||||
|
|
||||||
Header extension:
|
Header extension:
|
||||||
|
@ -26,7 +26,7 @@ compatible_features []
|
|||||||
autoclear_features [63]
|
autoclear_features [63]
|
||||||
Header extension:
|
Header extension:
|
||||||
magic 0x6803f857 (Feature table)
|
magic 0x6803f857 (Feature table)
|
||||||
length 336
|
length 384
|
||||||
data <binary>
|
data <binary>
|
||||||
|
|
||||||
|
|
||||||
@ -38,7 +38,7 @@ compatible_features []
|
|||||||
autoclear_features []
|
autoclear_features []
|
||||||
Header extension:
|
Header extension:
|
||||||
magic 0x6803f857 (Feature table)
|
magic 0x6803f857 (Feature table)
|
||||||
length 336
|
length 384
|
||||||
data <binary>
|
data <binary>
|
||||||
|
|
||||||
*** done
|
*** done
|
||||||
|
@ -4,90 +4,90 @@ QA output created by 049
|
|||||||
== 1. Traditional size parameter ==
|
== 1. Traditional size parameter ==
|
||||||
|
|
||||||
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1024
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1024
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1024 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1024 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1024b
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1024b
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1024 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1024 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1k
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1k
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1024 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1024 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1K
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1K
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1024 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1024 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1M
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1048576 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1048576 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1G
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1G
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1073741824 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1073741824 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1T
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1T
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1099511627776 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1099511627776 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1024.0
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1024.0
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1024 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1024 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1024.0b
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1024.0b
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1024 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1024 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1.5k
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1.5k
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1536 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1536 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1.5K
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1.5K
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1536 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1536 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1.5M
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1.5M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1572864 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1572864 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1.5G
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1.5G
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1610612736 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1610612736 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1.5T
|
qemu-img create -f qcow2 TEST_DIR/t.qcow2 1.5T
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1649267441664 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1649267441664 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
== 2. Specifying size via -o ==
|
== 2. Specifying size via -o ==
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o size=1024 TEST_DIR/t.qcow2
|
qemu-img create -f qcow2 -o size=1024 TEST_DIR/t.qcow2
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1024 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1024 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o size=1024b TEST_DIR/t.qcow2
|
qemu-img create -f qcow2 -o size=1024b TEST_DIR/t.qcow2
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1024 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1024 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o size=1k TEST_DIR/t.qcow2
|
qemu-img create -f qcow2 -o size=1k TEST_DIR/t.qcow2
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1024 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1024 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o size=1K TEST_DIR/t.qcow2
|
qemu-img create -f qcow2 -o size=1K TEST_DIR/t.qcow2
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1024 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1024 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o size=1M TEST_DIR/t.qcow2
|
qemu-img create -f qcow2 -o size=1M TEST_DIR/t.qcow2
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1048576 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1048576 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o size=1G TEST_DIR/t.qcow2
|
qemu-img create -f qcow2 -o size=1G TEST_DIR/t.qcow2
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1073741824 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1073741824 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o size=1T TEST_DIR/t.qcow2
|
qemu-img create -f qcow2 -o size=1T TEST_DIR/t.qcow2
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1099511627776 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1099511627776 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o size=1024.0 TEST_DIR/t.qcow2
|
qemu-img create -f qcow2 -o size=1024.0 TEST_DIR/t.qcow2
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1024 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1024 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o size=1024.0b TEST_DIR/t.qcow2
|
qemu-img create -f qcow2 -o size=1024.0b TEST_DIR/t.qcow2
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1024 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1024 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o size=1.5k TEST_DIR/t.qcow2
|
qemu-img create -f qcow2 -o size=1.5k TEST_DIR/t.qcow2
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1536 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1536 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o size=1.5K TEST_DIR/t.qcow2
|
qemu-img create -f qcow2 -o size=1.5K TEST_DIR/t.qcow2
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1536 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1536 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o size=1.5M TEST_DIR/t.qcow2
|
qemu-img create -f qcow2 -o size=1.5M TEST_DIR/t.qcow2
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1572864 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1572864 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o size=1.5G TEST_DIR/t.qcow2
|
qemu-img create -f qcow2 -o size=1.5G TEST_DIR/t.qcow2
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1610612736 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1610612736 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o size=1.5T TEST_DIR/t.qcow2
|
qemu-img create -f qcow2 -o size=1.5T TEST_DIR/t.qcow2
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1649267441664 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1649267441664 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
== 3. Invalid sizes ==
|
== 3. Invalid sizes ==
|
||||||
|
|
||||||
@ -129,84 +129,84 @@ qemu-img: TEST_DIR/t.qcow2: The image size must be specified only once
|
|||||||
== Check correct interpretation of suffixes for cluster size ==
|
== Check correct interpretation of suffixes for cluster size ==
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o cluster_size=1024 TEST_DIR/t.qcow2 64M
|
qemu-img create -f qcow2 -o cluster_size=1024 TEST_DIR/t.qcow2 64M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=1024 compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=1024 extended_l2=off compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o cluster_size=1024b TEST_DIR/t.qcow2 64M
|
qemu-img create -f qcow2 -o cluster_size=1024b TEST_DIR/t.qcow2 64M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=1024 compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=1024 extended_l2=off compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o cluster_size=1k TEST_DIR/t.qcow2 64M
|
qemu-img create -f qcow2 -o cluster_size=1k TEST_DIR/t.qcow2 64M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=1024 compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=1024 extended_l2=off compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o cluster_size=1K TEST_DIR/t.qcow2 64M
|
qemu-img create -f qcow2 -o cluster_size=1K TEST_DIR/t.qcow2 64M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=1024 compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=1024 extended_l2=off compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o cluster_size=1M TEST_DIR/t.qcow2 64M
|
qemu-img create -f qcow2 -o cluster_size=1M TEST_DIR/t.qcow2 64M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=1048576 compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=1048576 extended_l2=off compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o cluster_size=1024.0 TEST_DIR/t.qcow2 64M
|
qemu-img create -f qcow2 -o cluster_size=1024.0 TEST_DIR/t.qcow2 64M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=1024 compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=1024 extended_l2=off compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o cluster_size=1024.0b TEST_DIR/t.qcow2 64M
|
qemu-img create -f qcow2 -o cluster_size=1024.0b TEST_DIR/t.qcow2 64M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=1024 compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=1024 extended_l2=off compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o cluster_size=0.5k TEST_DIR/t.qcow2 64M
|
qemu-img create -f qcow2 -o cluster_size=0.5k TEST_DIR/t.qcow2 64M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=512 compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=512 extended_l2=off compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o cluster_size=0.5K TEST_DIR/t.qcow2 64M
|
qemu-img create -f qcow2 -o cluster_size=0.5K TEST_DIR/t.qcow2 64M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=512 compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=512 extended_l2=off compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o cluster_size=0.5M TEST_DIR/t.qcow2 64M
|
qemu-img create -f qcow2 -o cluster_size=0.5M TEST_DIR/t.qcow2 64M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=524288 compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=524288 extended_l2=off compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
== Check compat level option ==
|
== Check compat level option ==
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o compat=0.10 TEST_DIR/t.qcow2 64M
|
qemu-img create -f qcow2 -o compat=0.10 TEST_DIR/t.qcow2 64M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=67108864 compat=0.10 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=67108864 compat=0.10 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o compat=1.1 TEST_DIR/t.qcow2 64M
|
qemu-img create -f qcow2 -o compat=1.1 TEST_DIR/t.qcow2 64M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=67108864 compat=1.1 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=67108864 compat=1.1 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o compat=0.42 TEST_DIR/t.qcow2 64M
|
qemu-img create -f qcow2 -o compat=0.42 TEST_DIR/t.qcow2 64M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=67108864 compat=0.42 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=67108864 compat=0.42 lazy_refcounts=off refcount_bits=16
|
||||||
qemu-img: TEST_DIR/t.qcow2: Invalid parameter '0.42'
|
qemu-img: TEST_DIR/t.qcow2: Invalid parameter '0.42'
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o compat=foobar TEST_DIR/t.qcow2 64M
|
qemu-img create -f qcow2 -o compat=foobar TEST_DIR/t.qcow2 64M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=67108864 compat=foobar lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=67108864 compat=foobar lazy_refcounts=off refcount_bits=16
|
||||||
qemu-img: TEST_DIR/t.qcow2: Invalid parameter 'foobar'
|
qemu-img: TEST_DIR/t.qcow2: Invalid parameter 'foobar'
|
||||||
|
|
||||||
== Check preallocation option ==
|
== Check preallocation option ==
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o preallocation=off TEST_DIR/t.qcow2 64M
|
qemu-img create -f qcow2 -o preallocation=off TEST_DIR/t.qcow2 64M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 preallocation=off compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off preallocation=off compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o preallocation=metadata TEST_DIR/t.qcow2 64M
|
qemu-img create -f qcow2 -o preallocation=metadata TEST_DIR/t.qcow2 64M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 preallocation=metadata compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off preallocation=metadata compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o preallocation=1234 TEST_DIR/t.qcow2 64M
|
qemu-img create -f qcow2 -o preallocation=1234 TEST_DIR/t.qcow2 64M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 preallocation=1234 compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off preallocation=1234 compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
||||||
qemu-img: TEST_DIR/t.qcow2: Invalid parameter '1234'
|
qemu-img: TEST_DIR/t.qcow2: Invalid parameter '1234'
|
||||||
|
|
||||||
== Check encryption option ==
|
== Check encryption option ==
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o encryption=off TEST_DIR/t.qcow2 64M
|
qemu-img create -f qcow2 -o encryption=off TEST_DIR/t.qcow2 64M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 encryption=off cluster_size=65536 compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 encryption=off cluster_size=65536 extended_l2=off compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 --object secret,id=sec0,data=123456 -o encryption=on,encrypt.key-secret=sec0 TEST_DIR/t.qcow2 64M
|
qemu-img create -f qcow2 --object secret,id=sec0,data=123456 -o encryption=on,encrypt.key-secret=sec0 TEST_DIR/t.qcow2 64M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 encryption=on encrypt.key-secret=sec0 cluster_size=65536 compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 encryption=on encrypt.key-secret=sec0 cluster_size=65536 extended_l2=off compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
== Check lazy_refcounts option (only with v3) ==
|
== Check lazy_refcounts option (only with v3) ==
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o compat=1.1,lazy_refcounts=off TEST_DIR/t.qcow2 64M
|
qemu-img create -f qcow2 -o compat=1.1,lazy_refcounts=off TEST_DIR/t.qcow2 64M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=67108864 compat=1.1 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=67108864 compat=1.1 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o compat=1.1,lazy_refcounts=on TEST_DIR/t.qcow2 64M
|
qemu-img create -f qcow2 -o compat=1.1,lazy_refcounts=on TEST_DIR/t.qcow2 64M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=67108864 compat=1.1 lazy_refcounts=on refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=67108864 compat=1.1 lazy_refcounts=on refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o compat=0.10,lazy_refcounts=off TEST_DIR/t.qcow2 64M
|
qemu-img create -f qcow2 -o compat=0.10,lazy_refcounts=off TEST_DIR/t.qcow2 64M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=67108864 compat=0.10 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=67108864 compat=0.10 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
qemu-img create -f qcow2 -o compat=0.10,lazy_refcounts=on TEST_DIR/t.qcow2 64M
|
qemu-img create -f qcow2 -o compat=0.10,lazy_refcounts=on TEST_DIR/t.qcow2 64M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=67108864 compat=0.10 lazy_refcounts=on refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=67108864 compat=0.10 lazy_refcounts=on refcount_bits=16
|
||||||
qemu-img: TEST_DIR/t.qcow2: Lazy refcounts only supported with compatibility level 1.1 and above (use version=v3 or greater)
|
qemu-img: TEST_DIR/t.qcow2: Lazy refcounts only supported with compatibility level 1.1 and above (use version=v3 or greater)
|
||||||
|
|
||||||
*** done
|
*** done
|
||||||
|
@ -21,6 +21,7 @@ Format specific information:
|
|||||||
lazy refcounts: false
|
lazy refcounts: false
|
||||||
refcount bits: 16
|
refcount bits: 16
|
||||||
corrupt: true
|
corrupt: true
|
||||||
|
extended l2: false
|
||||||
qemu-io: can't open device TEST_DIR/t.IMGFMT: IMGFMT: Image is corrupt; cannot be opened read/write
|
qemu-io: can't open device TEST_DIR/t.IMGFMT: IMGFMT: Image is corrupt; cannot be opened read/write
|
||||||
no file open, try 'help open'
|
no file open, try 'help open'
|
||||||
read 512/512 bytes at offset 0
|
read 512/512 bytes at offset 0
|
||||||
|
@ -26,7 +26,7 @@ header_length 112
|
|||||||
|
|
||||||
Header extension:
|
Header extension:
|
||||||
magic 0x6803f857 (Feature table)
|
magic 0x6803f857 (Feature table)
|
||||||
length 336
|
length 384
|
||||||
data <binary>
|
data <binary>
|
||||||
|
|
||||||
magic 0x514649fb
|
magic 0x514649fb
|
||||||
@ -84,7 +84,7 @@ header_length 112
|
|||||||
|
|
||||||
Header extension:
|
Header extension:
|
||||||
magic 0x6803f857 (Feature table)
|
magic 0x6803f857 (Feature table)
|
||||||
length 336
|
length 384
|
||||||
data <binary>
|
data <binary>
|
||||||
|
|
||||||
magic 0x514649fb
|
magic 0x514649fb
|
||||||
@ -140,7 +140,7 @@ header_length 112
|
|||||||
|
|
||||||
Header extension:
|
Header extension:
|
||||||
magic 0x6803f857 (Feature table)
|
magic 0x6803f857 (Feature table)
|
||||||
length 336
|
length 384
|
||||||
data <binary>
|
data <binary>
|
||||||
|
|
||||||
ERROR cluster 5 refcount=0 reference=1
|
ERROR cluster 5 refcount=0 reference=1
|
||||||
@ -195,7 +195,7 @@ header_length 112
|
|||||||
|
|
||||||
Header extension:
|
Header extension:
|
||||||
magic 0x6803f857 (Feature table)
|
magic 0x6803f857 (Feature table)
|
||||||
length 336
|
length 384
|
||||||
data <binary>
|
data <binary>
|
||||||
|
|
||||||
magic 0x514649fb
|
magic 0x514649fb
|
||||||
@ -264,7 +264,7 @@ header_length 112
|
|||||||
|
|
||||||
Header extension:
|
Header extension:
|
||||||
magic 0x6803f857 (Feature table)
|
magic 0x6803f857 (Feature table)
|
||||||
length 336
|
length 384
|
||||||
data <binary>
|
data <binary>
|
||||||
|
|
||||||
read 65536/65536 bytes at offset 44040192
|
read 65536/65536 bytes at offset 44040192
|
||||||
@ -326,7 +326,7 @@ header_length 112
|
|||||||
|
|
||||||
Header extension:
|
Header extension:
|
||||||
magic 0x6803f857 (Feature table)
|
magic 0x6803f857 (Feature table)
|
||||||
length 336
|
length 384
|
||||||
data <binary>
|
data <binary>
|
||||||
|
|
||||||
ERROR cluster 5 refcount=0 reference=1
|
ERROR cluster 5 refcount=0 reference=1
|
||||||
@ -355,7 +355,7 @@ header_length 112
|
|||||||
|
|
||||||
Header extension:
|
Header extension:
|
||||||
magic 0x6803f857 (Feature table)
|
magic 0x6803f857 (Feature table)
|
||||||
length 336
|
length 384
|
||||||
data <binary>
|
data <binary>
|
||||||
|
|
||||||
read 131072/131072 bytes at offset 0
|
read 131072/131072 bytes at offset 0
|
||||||
@ -530,6 +530,7 @@ Format specific information:
|
|||||||
data file: TEST_DIR/t.IMGFMT.data
|
data file: TEST_DIR/t.IMGFMT.data
|
||||||
data file raw: false
|
data file raw: false
|
||||||
corrupt: false
|
corrupt: false
|
||||||
|
extended l2: false
|
||||||
No errors were found on the image.
|
No errors were found on the image.
|
||||||
|
|
||||||
=== Try changing the external data file ===
|
=== Try changing the external data file ===
|
||||||
@ -551,6 +552,7 @@ Format specific information:
|
|||||||
data file: foo
|
data file: foo
|
||||||
data file raw: false
|
data file raw: false
|
||||||
corrupt: false
|
corrupt: false
|
||||||
|
extended l2: false
|
||||||
|
|
||||||
qemu-img: Could not open 'TEST_DIR/t.IMGFMT': 'data-file' is required for this image
|
qemu-img: Could not open 'TEST_DIR/t.IMGFMT': 'data-file' is required for this image
|
||||||
image: TEST_DIR/t.IMGFMT
|
image: TEST_DIR/t.IMGFMT
|
||||||
@ -564,6 +566,7 @@ Format specific information:
|
|||||||
refcount bits: 16
|
refcount bits: 16
|
||||||
data file raw: false
|
data file raw: false
|
||||||
corrupt: false
|
corrupt: false
|
||||||
|
extended l2: false
|
||||||
|
|
||||||
=== Clearing and setting data-file-raw ===
|
=== Clearing and setting data-file-raw ===
|
||||||
|
|
||||||
@ -580,6 +583,7 @@ Format specific information:
|
|||||||
data file: TEST_DIR/t.IMGFMT.data
|
data file: TEST_DIR/t.IMGFMT.data
|
||||||
data file raw: true
|
data file raw: true
|
||||||
corrupt: false
|
corrupt: false
|
||||||
|
extended l2: false
|
||||||
No errors were found on the image.
|
No errors were found on the image.
|
||||||
image: TEST_DIR/t.IMGFMT
|
image: TEST_DIR/t.IMGFMT
|
||||||
file format: IMGFMT
|
file format: IMGFMT
|
||||||
@ -593,6 +597,7 @@ Format specific information:
|
|||||||
data file: TEST_DIR/t.IMGFMT.data
|
data file: TEST_DIR/t.IMGFMT.data
|
||||||
data file raw: false
|
data file raw: false
|
||||||
corrupt: false
|
corrupt: false
|
||||||
|
extended l2: false
|
||||||
No errors were found on the image.
|
No errors were found on the image.
|
||||||
qemu-img: data-file-raw cannot be set on existing images
|
qemu-img: data-file-raw cannot be set on existing images
|
||||||
image: TEST_DIR/t.IMGFMT
|
image: TEST_DIR/t.IMGFMT
|
||||||
@ -607,5 +612,6 @@ Format specific information:
|
|||||||
data file: TEST_DIR/t.IMGFMT.data
|
data file: TEST_DIR/t.IMGFMT.data
|
||||||
data file raw: false
|
data file raw: false
|
||||||
corrupt: false
|
corrupt: false
|
||||||
|
extended l2: false
|
||||||
No errors were found on the image.
|
No errors were found on the image.
|
||||||
*** done
|
*** done
|
||||||
|
@ -98,20 +98,20 @@ class TestQCow3NotLazy(TestQemuImgInfo):
|
|||||||
img_options = 'compat=1.1,lazy_refcounts=off'
|
img_options = 'compat=1.1,lazy_refcounts=off'
|
||||||
json_compare = { 'compat': '1.1', 'lazy-refcounts': False,
|
json_compare = { 'compat': '1.1', 'lazy-refcounts': False,
|
||||||
'refcount-bits': 16, 'corrupt': False,
|
'refcount-bits': 16, 'corrupt': False,
|
||||||
'compression-type': 'zlib' }
|
'compression-type': 'zlib', 'extended-l2': False }
|
||||||
human_compare = [ 'compat: 1.1', 'compression type: zlib',
|
human_compare = [ 'compat: 1.1', 'compression type: zlib',
|
||||||
'lazy refcounts: false', 'refcount bits: 16',
|
'lazy refcounts: false', 'refcount bits: 16',
|
||||||
'corrupt: false' ]
|
'corrupt: false', 'extended l2: false' ]
|
||||||
|
|
||||||
class TestQCow3Lazy(TestQemuImgInfo):
|
class TestQCow3Lazy(TestQemuImgInfo):
|
||||||
'''Testing a qcow2 version 3 image with lazy refcounts enabled'''
|
'''Testing a qcow2 version 3 image with lazy refcounts enabled'''
|
||||||
img_options = 'compat=1.1,lazy_refcounts=on'
|
img_options = 'compat=1.1,lazy_refcounts=on'
|
||||||
json_compare = { 'compat': '1.1', 'lazy-refcounts': True,
|
json_compare = { 'compat': '1.1', 'lazy-refcounts': True,
|
||||||
'refcount-bits': 16, 'corrupt': False,
|
'refcount-bits': 16, 'corrupt': False,
|
||||||
'compression-type': 'zlib' }
|
'compression-type': 'zlib', 'extended-l2': False }
|
||||||
human_compare = [ 'compat: 1.1', 'compression type: zlib',
|
human_compare = [ 'compat: 1.1', 'compression type: zlib',
|
||||||
'lazy refcounts: true', 'refcount bits: 16',
|
'lazy refcounts: true', 'refcount bits: 16',
|
||||||
'corrupt: false' ]
|
'corrupt: false', 'extended l2: false' ]
|
||||||
|
|
||||||
class TestQCow3NotLazyQMP(TestQMP):
|
class TestQCow3NotLazyQMP(TestQMP):
|
||||||
'''Testing a qcow2 version 3 image with lazy refcounts disabled, opening
|
'''Testing a qcow2 version 3 image with lazy refcounts disabled, opening
|
||||||
@ -120,7 +120,7 @@ class TestQCow3NotLazyQMP(TestQMP):
|
|||||||
qemu_options = 'lazy-refcounts=on'
|
qemu_options = 'lazy-refcounts=on'
|
||||||
compare = { 'compat': '1.1', 'lazy-refcounts': False,
|
compare = { 'compat': '1.1', 'lazy-refcounts': False,
|
||||||
'refcount-bits': 16, 'corrupt': False,
|
'refcount-bits': 16, 'corrupt': False,
|
||||||
'compression-type': 'zlib' }
|
'compression-type': 'zlib', 'extended-l2': False }
|
||||||
|
|
||||||
|
|
||||||
class TestQCow3LazyQMP(TestQMP):
|
class TestQCow3LazyQMP(TestQMP):
|
||||||
@ -130,7 +130,7 @@ class TestQCow3LazyQMP(TestQMP):
|
|||||||
qemu_options = 'lazy-refcounts=off'
|
qemu_options = 'lazy-refcounts=off'
|
||||||
compare = { 'compat': '1.1', 'lazy-refcounts': True,
|
compare = { 'compat': '1.1', 'lazy-refcounts': True,
|
||||||
'refcount-bits': 16, 'corrupt': False,
|
'refcount-bits': 16, 'corrupt': False,
|
||||||
'compression-type': 'zlib' }
|
'compression-type': 'zlib', 'extended-l2': False }
|
||||||
|
|
||||||
TestImageInfoSpecific = None
|
TestImageInfoSpecific = None
|
||||||
TestQemuImgInfo = None
|
TestQemuImgInfo = None
|
||||||
|
@ -3,14 +3,14 @@ QA output created by 082
|
|||||||
=== create: Options specified more than once ===
|
=== create: Options specified more than once ===
|
||||||
|
|
||||||
Testing: create -f foo -f qcow2 TEST_DIR/t.qcow2 128M
|
Testing: create -f foo -f qcow2 TEST_DIR/t.qcow2 128M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=134217728 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=134217728 lazy_refcounts=off refcount_bits=16
|
||||||
image: TEST_DIR/t.IMGFMT
|
image: TEST_DIR/t.IMGFMT
|
||||||
file format: IMGFMT
|
file format: IMGFMT
|
||||||
virtual size: 128 MiB (134217728 bytes)
|
virtual size: 128 MiB (134217728 bytes)
|
||||||
cluster_size: 65536
|
cluster_size: 65536
|
||||||
|
|
||||||
Testing: create -f qcow2 -o cluster_size=4k -o lazy_refcounts=on TEST_DIR/t.qcow2 128M
|
Testing: create -f qcow2 -o cluster_size=4k -o lazy_refcounts=on TEST_DIR/t.qcow2 128M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=4096 compression_type=zlib size=134217728 lazy_refcounts=on refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=4096 extended_l2=off compression_type=zlib size=134217728 lazy_refcounts=on refcount_bits=16
|
||||||
image: TEST_DIR/t.IMGFMT
|
image: TEST_DIR/t.IMGFMT
|
||||||
file format: IMGFMT
|
file format: IMGFMT
|
||||||
virtual size: 128 MiB (134217728 bytes)
|
virtual size: 128 MiB (134217728 bytes)
|
||||||
@ -21,9 +21,10 @@ Format specific information:
|
|||||||
lazy refcounts: true
|
lazy refcounts: true
|
||||||
refcount bits: 16
|
refcount bits: 16
|
||||||
corrupt: false
|
corrupt: false
|
||||||
|
extended l2: false
|
||||||
|
|
||||||
Testing: create -f qcow2 -o cluster_size=4k -o lazy_refcounts=on -o cluster_size=8k TEST_DIR/t.qcow2 128M
|
Testing: create -f qcow2 -o cluster_size=4k -o lazy_refcounts=on -o cluster_size=8k TEST_DIR/t.qcow2 128M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=8192 compression_type=zlib size=134217728 lazy_refcounts=on refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=8192 extended_l2=off compression_type=zlib size=134217728 lazy_refcounts=on refcount_bits=16
|
||||||
image: TEST_DIR/t.IMGFMT
|
image: TEST_DIR/t.IMGFMT
|
||||||
file format: IMGFMT
|
file format: IMGFMT
|
||||||
virtual size: 128 MiB (134217728 bytes)
|
virtual size: 128 MiB (134217728 bytes)
|
||||||
@ -34,9 +35,10 @@ Format specific information:
|
|||||||
lazy refcounts: true
|
lazy refcounts: true
|
||||||
refcount bits: 16
|
refcount bits: 16
|
||||||
corrupt: false
|
corrupt: false
|
||||||
|
extended l2: false
|
||||||
|
|
||||||
Testing: create -f qcow2 -o cluster_size=4k,cluster_size=8k TEST_DIR/t.qcow2 128M
|
Testing: create -f qcow2 -o cluster_size=4k,cluster_size=8k TEST_DIR/t.qcow2 128M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=8192 compression_type=zlib size=134217728 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=8192 extended_l2=off compression_type=zlib size=134217728 lazy_refcounts=off refcount_bits=16
|
||||||
image: TEST_DIR/t.IMGFMT
|
image: TEST_DIR/t.IMGFMT
|
||||||
file format: IMGFMT
|
file format: IMGFMT
|
||||||
virtual size: 128 MiB (134217728 bytes)
|
virtual size: 128 MiB (134217728 bytes)
|
||||||
@ -62,6 +64,7 @@ Supported options:
|
|||||||
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
||||||
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
||||||
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
||||||
|
extended_l2=<bool (on/off)> - Extended L2 tables
|
||||||
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
||||||
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
||||||
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
||||||
@ -87,6 +90,7 @@ Supported options:
|
|||||||
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
||||||
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
||||||
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
||||||
|
extended_l2=<bool (on/off)> - Extended L2 tables
|
||||||
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
||||||
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
||||||
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
||||||
@ -112,6 +116,7 @@ Supported options:
|
|||||||
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
||||||
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
||||||
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
||||||
|
extended_l2=<bool (on/off)> - Extended L2 tables
|
||||||
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
||||||
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
||||||
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
||||||
@ -137,6 +142,7 @@ Supported options:
|
|||||||
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
||||||
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
||||||
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
||||||
|
extended_l2=<bool (on/off)> - Extended L2 tables
|
||||||
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
||||||
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
||||||
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
||||||
@ -162,6 +168,7 @@ Supported options:
|
|||||||
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
||||||
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
||||||
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
||||||
|
extended_l2=<bool (on/off)> - Extended L2 tables
|
||||||
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
||||||
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
||||||
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
||||||
@ -187,6 +194,7 @@ Supported options:
|
|||||||
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
||||||
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
||||||
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
||||||
|
extended_l2=<bool (on/off)> - Extended L2 tables
|
||||||
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
||||||
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
||||||
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
||||||
@ -212,6 +220,7 @@ Supported options:
|
|||||||
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
||||||
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
||||||
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
||||||
|
extended_l2=<bool (on/off)> - Extended L2 tables
|
||||||
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
||||||
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
||||||
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
||||||
@ -237,6 +246,7 @@ Supported options:
|
|||||||
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
||||||
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
||||||
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
||||||
|
extended_l2=<bool (on/off)> - Extended L2 tables
|
||||||
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
||||||
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
||||||
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
||||||
@ -245,10 +255,10 @@ Supported options:
|
|||||||
size=<size> - Virtual disk size
|
size=<size> - Virtual disk size
|
||||||
|
|
||||||
Testing: create -f qcow2 -u -o backing_file=TEST_DIR/t.qcow2,,help -F qcow2 TEST_DIR/t.qcow2 128M
|
Testing: create -f qcow2 -u -o backing_file=TEST_DIR/t.qcow2,,help -F qcow2 TEST_DIR/t.qcow2 128M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=134217728 backing_file=TEST_DIR/t.qcow2,,help backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=134217728 backing_file=TEST_DIR/t.qcow2,,help backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
Testing: create -f qcow2 -u -o backing_file=TEST_DIR/t.qcow2,,? -F qcow2 TEST_DIR/t.qcow2 128M
|
Testing: create -f qcow2 -u -o backing_file=TEST_DIR/t.qcow2,,? -F qcow2 TEST_DIR/t.qcow2 128M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=134217728 backing_file=TEST_DIR/t.qcow2,,? backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=134217728 backing_file=TEST_DIR/t.qcow2,,? backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
Testing: create -f qcow2 -o backing_file=TEST_DIR/t.qcow2, -o help TEST_DIR/t.qcow2 128M
|
Testing: create -f qcow2 -o backing_file=TEST_DIR/t.qcow2, -o help TEST_DIR/t.qcow2 128M
|
||||||
qemu-img: Invalid option list: backing_file=TEST_DIR/t.qcow2,
|
qemu-img: Invalid option list: backing_file=TEST_DIR/t.qcow2,
|
||||||
@ -277,6 +287,7 @@ Supported qcow2 options:
|
|||||||
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
||||||
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
||||||
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
||||||
|
extended_l2=<bool (on/off)> - Extended L2 tables
|
||||||
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
||||||
preallocation=<str> - Preallocation mode (allowed values: off, metadata, falloc, full)
|
preallocation=<str> - Preallocation mode (allowed values: off, metadata, falloc, full)
|
||||||
refcount_bits=<num> - Width of a reference count entry in bits
|
refcount_bits=<num> - Width of a reference count entry in bits
|
||||||
@ -298,7 +309,7 @@ qemu-img: Format driver 'bochs' does not support image creation
|
|||||||
=== convert: Options specified more than once ===
|
=== convert: Options specified more than once ===
|
||||||
|
|
||||||
Testing: create -f qcow2 TEST_DIR/t.qcow2 128M
|
Testing: create -f qcow2 TEST_DIR/t.qcow2 128M
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=134217728 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=134217728 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
Testing: convert -f foo -f qcow2 TEST_DIR/t.qcow2 TEST_DIR/t.qcow2.base
|
Testing: convert -f foo -f qcow2 TEST_DIR/t.qcow2 TEST_DIR/t.qcow2.base
|
||||||
image: TEST_DIR/t.IMGFMT.base
|
image: TEST_DIR/t.IMGFMT.base
|
||||||
@ -322,6 +333,7 @@ Format specific information:
|
|||||||
lazy refcounts: true
|
lazy refcounts: true
|
||||||
refcount bits: 16
|
refcount bits: 16
|
||||||
corrupt: false
|
corrupt: false
|
||||||
|
extended l2: false
|
||||||
|
|
||||||
Testing: convert -O qcow2 -o cluster_size=4k -o lazy_refcounts=on -o cluster_size=8k TEST_DIR/t.qcow2 TEST_DIR/t.qcow2.base
|
Testing: convert -O qcow2 -o cluster_size=4k -o lazy_refcounts=on -o cluster_size=8k TEST_DIR/t.qcow2 TEST_DIR/t.qcow2.base
|
||||||
image: TEST_DIR/t.IMGFMT.base
|
image: TEST_DIR/t.IMGFMT.base
|
||||||
@ -334,6 +346,7 @@ Format specific information:
|
|||||||
lazy refcounts: true
|
lazy refcounts: true
|
||||||
refcount bits: 16
|
refcount bits: 16
|
||||||
corrupt: false
|
corrupt: false
|
||||||
|
extended l2: false
|
||||||
|
|
||||||
Testing: convert -O qcow2 -o cluster_size=4k,cluster_size=8k TEST_DIR/t.qcow2 TEST_DIR/t.qcow2.base
|
Testing: convert -O qcow2 -o cluster_size=4k,cluster_size=8k TEST_DIR/t.qcow2 TEST_DIR/t.qcow2.base
|
||||||
image: TEST_DIR/t.IMGFMT.base
|
image: TEST_DIR/t.IMGFMT.base
|
||||||
@ -361,6 +374,7 @@ Supported options:
|
|||||||
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
||||||
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
||||||
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
||||||
|
extended_l2=<bool (on/off)> - Extended L2 tables
|
||||||
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
||||||
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
||||||
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
||||||
@ -386,6 +400,7 @@ Supported options:
|
|||||||
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
||||||
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
||||||
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
||||||
|
extended_l2=<bool (on/off)> - Extended L2 tables
|
||||||
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
||||||
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
||||||
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
||||||
@ -411,6 +426,7 @@ Supported options:
|
|||||||
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
||||||
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
||||||
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
||||||
|
extended_l2=<bool (on/off)> - Extended L2 tables
|
||||||
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
||||||
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
||||||
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
||||||
@ -436,6 +452,7 @@ Supported options:
|
|||||||
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
||||||
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
||||||
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
||||||
|
extended_l2=<bool (on/off)> - Extended L2 tables
|
||||||
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
||||||
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
||||||
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
||||||
@ -461,6 +478,7 @@ Supported options:
|
|||||||
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
||||||
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
||||||
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
||||||
|
extended_l2=<bool (on/off)> - Extended L2 tables
|
||||||
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
||||||
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
||||||
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
||||||
@ -486,6 +504,7 @@ Supported options:
|
|||||||
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
||||||
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
||||||
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
||||||
|
extended_l2=<bool (on/off)> - Extended L2 tables
|
||||||
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
||||||
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
||||||
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
||||||
@ -511,6 +530,7 @@ Supported options:
|
|||||||
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
||||||
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
||||||
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
||||||
|
extended_l2=<bool (on/off)> - Extended L2 tables
|
||||||
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
||||||
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
||||||
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
||||||
@ -536,6 +556,7 @@ Supported options:
|
|||||||
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
||||||
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
||||||
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
||||||
|
extended_l2=<bool (on/off)> - Extended L2 tables
|
||||||
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
extent_size_hint=<size> - Extent size hint for the image file, 0 to disable
|
||||||
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
||||||
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
nocow=<bool (on/off)> - Turn off copy-on-write (valid only on btrfs)
|
||||||
@ -576,6 +597,7 @@ Supported qcow2 options:
|
|||||||
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
encrypt.ivgen-hash-alg=<str> - Name of IV generator hash algorithm
|
||||||
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
encrypt.key-secret=<str> - ID of secret providing qcow AES key or LUKS passphrase
|
||||||
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
encryption=<bool (on/off)> - Encrypt the image with format 'aes'. (Deprecated in favor of encrypt.format=aes)
|
||||||
|
extended_l2=<bool (on/off)> - Extended L2 tables
|
||||||
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
lazy_refcounts=<bool (on/off)> - Postpone refcount updates
|
||||||
preallocation=<str> - Preallocation mode (allowed values: off, metadata, falloc, full)
|
preallocation=<str> - Preallocation mode (allowed values: off, metadata, falloc, full)
|
||||||
refcount_bits=<num> - Width of a reference count entry in bits
|
refcount_bits=<num> - Width of a reference count entry in bits
|
||||||
@ -621,6 +643,7 @@ Format specific information:
|
|||||||
lazy refcounts: true
|
lazy refcounts: true
|
||||||
refcount bits: 16
|
refcount bits: 16
|
||||||
corrupt: false
|
corrupt: false
|
||||||
|
extended l2: false
|
||||||
|
|
||||||
Testing: amend -f qcow2 -o size=130M -o lazy_refcounts=off TEST_DIR/t.qcow2
|
Testing: amend -f qcow2 -o size=130M -o lazy_refcounts=off TEST_DIR/t.qcow2
|
||||||
image: TEST_DIR/t.IMGFMT
|
image: TEST_DIR/t.IMGFMT
|
||||||
@ -633,6 +656,7 @@ Format specific information:
|
|||||||
lazy refcounts: false
|
lazy refcounts: false
|
||||||
refcount bits: 16
|
refcount bits: 16
|
||||||
corrupt: false
|
corrupt: false
|
||||||
|
extended l2: false
|
||||||
|
|
||||||
Testing: amend -f qcow2 -o size=8M -o lazy_refcounts=on -o size=132M TEST_DIR/t.qcow2
|
Testing: amend -f qcow2 -o size=8M -o lazy_refcounts=on -o size=132M TEST_DIR/t.qcow2
|
||||||
image: TEST_DIR/t.IMGFMT
|
image: TEST_DIR/t.IMGFMT
|
||||||
@ -645,6 +669,7 @@ Format specific information:
|
|||||||
lazy refcounts: true
|
lazy refcounts: true
|
||||||
refcount bits: 16
|
refcount bits: 16
|
||||||
corrupt: false
|
corrupt: false
|
||||||
|
extended l2: false
|
||||||
|
|
||||||
Testing: amend -f qcow2 -o size=4M,size=148M TEST_DIR/t.qcow2
|
Testing: amend -f qcow2 -o size=4M,size=148M TEST_DIR/t.qcow2
|
||||||
image: TEST_DIR/t.IMGFMT
|
image: TEST_DIR/t.IMGFMT
|
||||||
|
@ -13,7 +13,7 @@ Formatting 'TEST_DIR/t.IMGFMT.2', fmt=IMGFMT size=134217728
|
|||||||
=== Create a single snapshot on virtio0 ===
|
=== Create a single snapshot on virtio0 ===
|
||||||
|
|
||||||
{ 'execute': 'blockdev-snapshot-sync', 'arguments': { 'device': 'virtio0', 'snapshot-file':'TEST_DIR/1-snapshot-v0.IMGFMT', 'format': 'IMGFMT' } }
|
{ 'execute': 'blockdev-snapshot-sync', 'arguments': { 'device': 'virtio0', 'snapshot-file':'TEST_DIR/1-snapshot-v0.IMGFMT', 'format': 'IMGFMT' } }
|
||||||
Formatting 'TEST_DIR/1-snapshot-v0.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=134217728 backing_file=TEST_DIR/t.qcow2.1 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/1-snapshot-v0.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=134217728 backing_file=TEST_DIR/t.qcow2.1 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
{"return": {}}
|
{"return": {}}
|
||||||
|
|
||||||
=== Invalid command - missing device and nodename ===
|
=== Invalid command - missing device and nodename ===
|
||||||
@ -30,40 +30,40 @@ Formatting 'TEST_DIR/1-snapshot-v0.qcow2', fmt=qcow2 cluster_size=65536 compress
|
|||||||
=== Create several transactional group snapshots ===
|
=== Create several transactional group snapshots ===
|
||||||
|
|
||||||
{ 'execute': 'transaction', 'arguments': {'actions': [ { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio0', 'snapshot-file': 'TEST_DIR/2-snapshot-v0.IMGFMT' } }, { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio1', 'snapshot-file': 'TEST_DIR/2-snapshot-v1.IMGFMT' } } ] } }
|
{ 'execute': 'transaction', 'arguments': {'actions': [ { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio0', 'snapshot-file': 'TEST_DIR/2-snapshot-v0.IMGFMT' } }, { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio1', 'snapshot-file': 'TEST_DIR/2-snapshot-v1.IMGFMT' } } ] } }
|
||||||
Formatting 'TEST_DIR/2-snapshot-v0.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=134217728 backing_file=TEST_DIR/1-snapshot-v0.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/2-snapshot-v0.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=134217728 backing_file=TEST_DIR/1-snapshot-v0.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
Formatting 'TEST_DIR/2-snapshot-v1.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=134217728 backing_file=TEST_DIR/t.qcow2.2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/2-snapshot-v1.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=134217728 backing_file=TEST_DIR/t.qcow2.2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
{"return": {}}
|
{"return": {}}
|
||||||
{ 'execute': 'transaction', 'arguments': {'actions': [ { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio0', 'snapshot-file': 'TEST_DIR/3-snapshot-v0.IMGFMT' } }, { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio1', 'snapshot-file': 'TEST_DIR/3-snapshot-v1.IMGFMT' } } ] } }
|
{ 'execute': 'transaction', 'arguments': {'actions': [ { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio0', 'snapshot-file': 'TEST_DIR/3-snapshot-v0.IMGFMT' } }, { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio1', 'snapshot-file': 'TEST_DIR/3-snapshot-v1.IMGFMT' } } ] } }
|
||||||
Formatting 'TEST_DIR/3-snapshot-v0.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=134217728 backing_file=TEST_DIR/2-snapshot-v0.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/3-snapshot-v0.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=134217728 backing_file=TEST_DIR/2-snapshot-v0.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
Formatting 'TEST_DIR/3-snapshot-v1.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=134217728 backing_file=TEST_DIR/2-snapshot-v1.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/3-snapshot-v1.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=134217728 backing_file=TEST_DIR/2-snapshot-v1.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
{"return": {}}
|
{"return": {}}
|
||||||
{ 'execute': 'transaction', 'arguments': {'actions': [ { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio0', 'snapshot-file': 'TEST_DIR/4-snapshot-v0.IMGFMT' } }, { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio1', 'snapshot-file': 'TEST_DIR/4-snapshot-v1.IMGFMT' } } ] } }
|
{ 'execute': 'transaction', 'arguments': {'actions': [ { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio0', 'snapshot-file': 'TEST_DIR/4-snapshot-v0.IMGFMT' } }, { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio1', 'snapshot-file': 'TEST_DIR/4-snapshot-v1.IMGFMT' } } ] } }
|
||||||
Formatting 'TEST_DIR/4-snapshot-v0.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=134217728 backing_file=TEST_DIR/3-snapshot-v0.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/4-snapshot-v0.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=134217728 backing_file=TEST_DIR/3-snapshot-v0.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
Formatting 'TEST_DIR/4-snapshot-v1.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=134217728 backing_file=TEST_DIR/3-snapshot-v1.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/4-snapshot-v1.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=134217728 backing_file=TEST_DIR/3-snapshot-v1.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
{"return": {}}
|
{"return": {}}
|
||||||
{ 'execute': 'transaction', 'arguments': {'actions': [ { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio0', 'snapshot-file': 'TEST_DIR/5-snapshot-v0.IMGFMT' } }, { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio1', 'snapshot-file': 'TEST_DIR/5-snapshot-v1.IMGFMT' } } ] } }
|
{ 'execute': 'transaction', 'arguments': {'actions': [ { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio0', 'snapshot-file': 'TEST_DIR/5-snapshot-v0.IMGFMT' } }, { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio1', 'snapshot-file': 'TEST_DIR/5-snapshot-v1.IMGFMT' } } ] } }
|
||||||
Formatting 'TEST_DIR/5-snapshot-v0.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=134217728 backing_file=TEST_DIR/4-snapshot-v0.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/5-snapshot-v0.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=134217728 backing_file=TEST_DIR/4-snapshot-v0.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
Formatting 'TEST_DIR/5-snapshot-v1.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=134217728 backing_file=TEST_DIR/4-snapshot-v1.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/5-snapshot-v1.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=134217728 backing_file=TEST_DIR/4-snapshot-v1.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
{"return": {}}
|
{"return": {}}
|
||||||
{ 'execute': 'transaction', 'arguments': {'actions': [ { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio0', 'snapshot-file': 'TEST_DIR/6-snapshot-v0.IMGFMT' } }, { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio1', 'snapshot-file': 'TEST_DIR/6-snapshot-v1.IMGFMT' } } ] } }
|
{ 'execute': 'transaction', 'arguments': {'actions': [ { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio0', 'snapshot-file': 'TEST_DIR/6-snapshot-v0.IMGFMT' } }, { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio1', 'snapshot-file': 'TEST_DIR/6-snapshot-v1.IMGFMT' } } ] } }
|
||||||
Formatting 'TEST_DIR/6-snapshot-v0.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=134217728 backing_file=TEST_DIR/5-snapshot-v0.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/6-snapshot-v0.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=134217728 backing_file=TEST_DIR/5-snapshot-v0.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
Formatting 'TEST_DIR/6-snapshot-v1.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=134217728 backing_file=TEST_DIR/5-snapshot-v1.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/6-snapshot-v1.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=134217728 backing_file=TEST_DIR/5-snapshot-v1.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
{"return": {}}
|
{"return": {}}
|
||||||
{ 'execute': 'transaction', 'arguments': {'actions': [ { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio0', 'snapshot-file': 'TEST_DIR/7-snapshot-v0.IMGFMT' } }, { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio1', 'snapshot-file': 'TEST_DIR/7-snapshot-v1.IMGFMT' } } ] } }
|
{ 'execute': 'transaction', 'arguments': {'actions': [ { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio0', 'snapshot-file': 'TEST_DIR/7-snapshot-v0.IMGFMT' } }, { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio1', 'snapshot-file': 'TEST_DIR/7-snapshot-v1.IMGFMT' } } ] } }
|
||||||
Formatting 'TEST_DIR/7-snapshot-v0.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=134217728 backing_file=TEST_DIR/6-snapshot-v0.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/7-snapshot-v0.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=134217728 backing_file=TEST_DIR/6-snapshot-v0.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
Formatting 'TEST_DIR/7-snapshot-v1.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=134217728 backing_file=TEST_DIR/6-snapshot-v1.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/7-snapshot-v1.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=134217728 backing_file=TEST_DIR/6-snapshot-v1.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
{"return": {}}
|
{"return": {}}
|
||||||
{ 'execute': 'transaction', 'arguments': {'actions': [ { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio0', 'snapshot-file': 'TEST_DIR/8-snapshot-v0.IMGFMT' } }, { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio1', 'snapshot-file': 'TEST_DIR/8-snapshot-v1.IMGFMT' } } ] } }
|
{ 'execute': 'transaction', 'arguments': {'actions': [ { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio0', 'snapshot-file': 'TEST_DIR/8-snapshot-v0.IMGFMT' } }, { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio1', 'snapshot-file': 'TEST_DIR/8-snapshot-v1.IMGFMT' } } ] } }
|
||||||
Formatting 'TEST_DIR/8-snapshot-v0.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=134217728 backing_file=TEST_DIR/7-snapshot-v0.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/8-snapshot-v0.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=134217728 backing_file=TEST_DIR/7-snapshot-v0.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
Formatting 'TEST_DIR/8-snapshot-v1.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=134217728 backing_file=TEST_DIR/7-snapshot-v1.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/8-snapshot-v1.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=134217728 backing_file=TEST_DIR/7-snapshot-v1.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
{"return": {}}
|
{"return": {}}
|
||||||
{ 'execute': 'transaction', 'arguments': {'actions': [ { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio0', 'snapshot-file': 'TEST_DIR/9-snapshot-v0.IMGFMT' } }, { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio1', 'snapshot-file': 'TEST_DIR/9-snapshot-v1.IMGFMT' } } ] } }
|
{ 'execute': 'transaction', 'arguments': {'actions': [ { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio0', 'snapshot-file': 'TEST_DIR/9-snapshot-v0.IMGFMT' } }, { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio1', 'snapshot-file': 'TEST_DIR/9-snapshot-v1.IMGFMT' } } ] } }
|
||||||
Formatting 'TEST_DIR/9-snapshot-v0.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=134217728 backing_file=TEST_DIR/8-snapshot-v0.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/9-snapshot-v0.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=134217728 backing_file=TEST_DIR/8-snapshot-v0.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
Formatting 'TEST_DIR/9-snapshot-v1.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=134217728 backing_file=TEST_DIR/8-snapshot-v1.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/9-snapshot-v1.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=134217728 backing_file=TEST_DIR/8-snapshot-v1.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
{"return": {}}
|
{"return": {}}
|
||||||
{ 'execute': 'transaction', 'arguments': {'actions': [ { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio0', 'snapshot-file': 'TEST_DIR/10-snapshot-v0.IMGFMT' } }, { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio1', 'snapshot-file': 'TEST_DIR/10-snapshot-v1.IMGFMT' } } ] } }
|
{ 'execute': 'transaction', 'arguments': {'actions': [ { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio0', 'snapshot-file': 'TEST_DIR/10-snapshot-v0.IMGFMT' } }, { 'type': 'blockdev-snapshot-sync', 'data' : { 'device': 'virtio1', 'snapshot-file': 'TEST_DIR/10-snapshot-v1.IMGFMT' } } ] } }
|
||||||
Formatting 'TEST_DIR/10-snapshot-v0.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=134217728 backing_file=TEST_DIR/9-snapshot-v0.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/10-snapshot-v0.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=134217728 backing_file=TEST_DIR/9-snapshot-v0.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
Formatting 'TEST_DIR/10-snapshot-v1.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=134217728 backing_file=TEST_DIR/9-snapshot-v1.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/10-snapshot-v1.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=134217728 backing_file=TEST_DIR/9-snapshot-v1.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
{"return": {}}
|
{"return": {}}
|
||||||
|
|
||||||
=== Create a couple of snapshots using blockdev-snapshot ===
|
=== Create a couple of snapshots using blockdev-snapshot ===
|
||||||
|
@ -9,7 +9,7 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=536870912
|
|||||||
{ 'execute': 'qmp_capabilities' }
|
{ 'execute': 'qmp_capabilities' }
|
||||||
{"return": {}}
|
{"return": {}}
|
||||||
{ 'execute': 'blockdev-snapshot-sync', 'arguments': { 'device': 'virtio0', 'snapshot-file':'TEST_DIR/tmp.IMGFMT', 'format': 'IMGFMT' } }
|
{ 'execute': 'blockdev-snapshot-sync', 'arguments': { 'device': 'virtio0', 'snapshot-file':'TEST_DIR/tmp.IMGFMT', 'format': 'IMGFMT' } }
|
||||||
Formatting 'TEST_DIR/tmp.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=536870912 backing_file=TEST_DIR/t.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/tmp.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=536870912 backing_file=TEST_DIR/t.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
{"return": {}}
|
{"return": {}}
|
||||||
|
|
||||||
=== Performing block-commit on active layer ===
|
=== Performing block-commit on active layer ===
|
||||||
@ -31,6 +31,6 @@ Formatting 'TEST_DIR/tmp.qcow2', fmt=qcow2 cluster_size=65536 compression_type=z
|
|||||||
=== Performing Live Snapshot 2 ===
|
=== Performing Live Snapshot 2 ===
|
||||||
|
|
||||||
{ 'execute': 'blockdev-snapshot-sync', 'arguments': { 'device': 'virtio0', 'snapshot-file':'TEST_DIR/tmp2.IMGFMT', 'format': 'IMGFMT' } }
|
{ 'execute': 'blockdev-snapshot-sync', 'arguments': { 'device': 'virtio0', 'snapshot-file':'TEST_DIR/tmp2.IMGFMT', 'format': 'IMGFMT' } }
|
||||||
Formatting 'TEST_DIR/tmp2.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=536870912 backing_file=TEST_DIR/t.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/tmp2.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=536870912 backing_file=TEST_DIR/t.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
{"return": {}}
|
{"return": {}}
|
||||||
*** done
|
*** done
|
||||||
|
@ -13,7 +13,7 @@ Is another process using the image [TEST_DIR/t.qcow2]?
|
|||||||
{'execute': 'blockdev-add', 'arguments': { 'node-name': 'node0', 'driver': 'file', 'filename': 'TEST_DIR/t.IMGFMT', 'locking': 'on' } }
|
{'execute': 'blockdev-add', 'arguments': { 'node-name': 'node0', 'driver': 'file', 'filename': 'TEST_DIR/t.IMGFMT', 'locking': 'on' } }
|
||||||
{"return": {}}
|
{"return": {}}
|
||||||
{'execute': 'blockdev-snapshot-sync', 'arguments': { 'node-name': 'node0', 'snapshot-file': 'TEST_DIR/t.IMGFMT.overlay', 'snapshot-node-name': 'node1' } }
|
{'execute': 'blockdev-snapshot-sync', 'arguments': { 'node-name': 'node0', 'snapshot-file': 'TEST_DIR/t.IMGFMT.overlay', 'snapshot-node-name': 'node1' } }
|
||||||
Formatting 'TEST_DIR/t.qcow2.overlay', fmt=qcow2 cluster_size=65536 compression_type=zlib size=197120 backing_file=TEST_DIR/t.qcow2 backing_fmt=file lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2.overlay', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=197120 backing_file=TEST_DIR/t.qcow2 backing_fmt=file lazy_refcounts=off refcount_bits=16
|
||||||
{"return": {}}
|
{"return": {}}
|
||||||
{'execute': 'blockdev-add', 'arguments': { 'node-name': 'node1', 'driver': 'file', 'filename': 'TEST_DIR/t.IMGFMT', 'locking': 'on' } }
|
{'execute': 'blockdev-add', 'arguments': { 'node-name': 'node1', 'driver': 'file', 'filename': 'TEST_DIR/t.IMGFMT', 'locking': 'on' } }
|
||||||
{"return": {}}
|
{"return": {}}
|
||||||
|
@ -9,14 +9,14 @@ Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=67108864
|
|||||||
=== Creating backing chain ===
|
=== Creating backing chain ===
|
||||||
|
|
||||||
{ 'execute': 'blockdev-snapshot-sync', 'arguments': { 'device': 'disk', 'snapshot-file': 'TEST_DIR/t.IMGFMT.mid', 'format': 'IMGFMT', 'mode': 'absolute-paths' } }
|
{ 'execute': 'blockdev-snapshot-sync', 'arguments': { 'device': 'disk', 'snapshot-file': 'TEST_DIR/t.IMGFMT.mid', 'format': 'IMGFMT', 'mode': 'absolute-paths' } }
|
||||||
Formatting 'TEST_DIR/t.qcow2.mid', fmt=qcow2 cluster_size=65536 compression_type=zlib size=67108864 backing_file=TEST_DIR/t.qcow2.base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2.mid', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=67108864 backing_file=TEST_DIR/t.qcow2.base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
{"return": {}}
|
{"return": {}}
|
||||||
{ 'execute': 'human-monitor-command', 'arguments': { 'command-line': 'qemu-io disk "write 0 4M"' } }
|
{ 'execute': 'human-monitor-command', 'arguments': { 'command-line': 'qemu-io disk "write 0 4M"' } }
|
||||||
wrote 4194304/4194304 bytes at offset 0
|
wrote 4194304/4194304 bytes at offset 0
|
||||||
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
{"return": ""}
|
{"return": ""}
|
||||||
{ 'execute': 'blockdev-snapshot-sync', 'arguments': { 'device': 'disk', 'snapshot-file': 'TEST_DIR/t.IMGFMT', 'format': 'IMGFMT', 'mode': 'absolute-paths' } }
|
{ 'execute': 'blockdev-snapshot-sync', 'arguments': { 'device': 'disk', 'snapshot-file': 'TEST_DIR/t.IMGFMT', 'format': 'IMGFMT', 'mode': 'absolute-paths' } }
|
||||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=67108864 backing_file=TEST_DIR/t.qcow2.mid backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=67108864 backing_file=TEST_DIR/t.qcow2.mid backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
{"return": {}}
|
{"return": {}}
|
||||||
|
|
||||||
=== Start commit job and exit qemu ===
|
=== Start commit job and exit qemu ===
|
||||||
@ -48,7 +48,7 @@ Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zli
|
|||||||
{ 'execute': 'qmp_capabilities' }
|
{ 'execute': 'qmp_capabilities' }
|
||||||
{"return": {}}
|
{"return": {}}
|
||||||
{ 'execute': 'drive-mirror', 'arguments': { 'device': 'disk', 'target': 'TEST_DIR/t.IMGFMT.copy', 'format': 'IMGFMT', 'sync': 'full', 'speed': 65536 } }
|
{ 'execute': 'drive-mirror', 'arguments': { 'device': 'disk', 'target': 'TEST_DIR/t.IMGFMT.copy', 'format': 'IMGFMT', 'sync': 'full', 'speed': 65536 } }
|
||||||
Formatting 'TEST_DIR/t.qcow2.copy', fmt=qcow2 cluster_size=65536 compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2.copy', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
||||||
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "disk"}}
|
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "disk"}}
|
||||||
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "disk"}}
|
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "disk"}}
|
||||||
{"return": {}}
|
{"return": {}}
|
||||||
@ -62,7 +62,7 @@ Formatting 'TEST_DIR/t.qcow2.copy', fmt=qcow2 cluster_size=65536 compression_typ
|
|||||||
{ 'execute': 'qmp_capabilities' }
|
{ 'execute': 'qmp_capabilities' }
|
||||||
{"return": {}}
|
{"return": {}}
|
||||||
{ 'execute': 'drive-backup', 'arguments': { 'device': 'disk', 'target': 'TEST_DIR/t.IMGFMT.copy', 'format': 'IMGFMT', 'sync': 'full', 'speed': 65536 } }
|
{ 'execute': 'drive-backup', 'arguments': { 'device': 'disk', 'target': 'TEST_DIR/t.IMGFMT.copy', 'format': 'IMGFMT', 'sync': 'full', 'speed': 65536 } }
|
||||||
Formatting 'TEST_DIR/t.qcow2.copy', fmt=qcow2 cluster_size=65536 compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/t.qcow2.copy', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
||||||
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "disk"}}
|
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "disk"}}
|
||||||
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "disk"}}
|
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "disk"}}
|
||||||
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "paused", "id": "disk"}}
|
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "paused", "id": "disk"}}
|
||||||
|
@ -94,6 +94,7 @@ echo "== checking image base =="
|
|||||||
$QEMU_IMG info --image-opts $IMGSPECBASE | _filter_img_info --format-specific \
|
$QEMU_IMG info --image-opts $IMGSPECBASE | _filter_img_info --format-specific \
|
||||||
| sed -e "/^disk size:/ D" -e '/refcount bits:/ D' -e '/compat:/ D' \
|
| sed -e "/^disk size:/ D" -e '/refcount bits:/ D' -e '/compat:/ D' \
|
||||||
-e '/lazy refcounts:/ D' -e '/corrupt:/ D' -e '/^\s*data file/ D' \
|
-e '/lazy refcounts:/ D' -e '/corrupt:/ D' -e '/^\s*data file/ D' \
|
||||||
|
-e '/extended l2:/ D' \
|
||||||
| _filter_json_filename
|
| _filter_json_filename
|
||||||
|
|
||||||
echo
|
echo
|
||||||
@ -101,6 +102,7 @@ echo "== checking image layer =="
|
|||||||
$QEMU_IMG info --image-opts $IMGSPECLAYER | _filter_img_info --format-specific \
|
$QEMU_IMG info --image-opts $IMGSPECLAYER | _filter_img_info --format-specific \
|
||||||
| sed -e "/^disk size:/ D" -e '/refcount bits:/ D' -e '/compat:/ D' \
|
| sed -e "/^disk size:/ D" -e '/refcount bits:/ D' -e '/compat:/ D' \
|
||||||
-e '/lazy refcounts:/ D' -e '/corrupt:/ D' -e '/^\s*data file/ D' \
|
-e '/lazy refcounts:/ D' -e '/corrupt:/ D' -e '/^\s*data file/ D' \
|
||||||
|
-e '/extended l2:/ D' \
|
||||||
| _filter_json_filename
|
| _filter_json_filename
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@ Format specific information:
|
|||||||
lazy refcounts: false
|
lazy refcounts: false
|
||||||
refcount bits: 16
|
refcount bits: 16
|
||||||
corrupt: false
|
corrupt: false
|
||||||
|
extended l2: false
|
||||||
|
|
||||||
=== Successful image creation (inline blockdev-add, explicit defaults) ===
|
=== Successful image creation (inline blockdev-add, explicit defaults) ===
|
||||||
|
|
||||||
@ -45,6 +46,7 @@ Format specific information:
|
|||||||
lazy refcounts: false
|
lazy refcounts: false
|
||||||
refcount bits: 16
|
refcount bits: 16
|
||||||
corrupt: false
|
corrupt: false
|
||||||
|
extended l2: false
|
||||||
|
|
||||||
=== Successful image creation (v3 non-default options) ===
|
=== Successful image creation (v3 non-default options) ===
|
||||||
|
|
||||||
@ -68,6 +70,7 @@ Format specific information:
|
|||||||
lazy refcounts: true
|
lazy refcounts: true
|
||||||
refcount bits: 1
|
refcount bits: 1
|
||||||
corrupt: false
|
corrupt: false
|
||||||
|
extended l2: false
|
||||||
|
|
||||||
=== Successful image creation (v2 non-default options) ===
|
=== Successful image creation (v2 non-default options) ===
|
||||||
|
|
||||||
@ -146,6 +149,7 @@ Format specific information:
|
|||||||
payload offset: 528384
|
payload offset: 528384
|
||||||
master key iters: XXX
|
master key iters: XXX
|
||||||
corrupt: false
|
corrupt: false
|
||||||
|
extended l2: false
|
||||||
|
|
||||||
=== Invalid BlockdevRef ===
|
=== Invalid BlockdevRef ===
|
||||||
|
|
||||||
|
@ -16,6 +16,7 @@ Format specific information:
|
|||||||
lazy refcounts: false
|
lazy refcounts: false
|
||||||
refcount bits: 16
|
refcount bits: 16
|
||||||
corrupt: false
|
corrupt: false
|
||||||
|
extended l2: false
|
||||||
|
|
||||||
No bitmap in JSON format output
|
No bitmap in JSON format output
|
||||||
|
|
||||||
@ -42,6 +43,7 @@ Format specific information:
|
|||||||
granularity: 32768
|
granularity: 32768
|
||||||
refcount bits: 16
|
refcount bits: 16
|
||||||
corrupt: false
|
corrupt: false
|
||||||
|
extended l2: false
|
||||||
|
|
||||||
The same bitmaps in JSON format:
|
The same bitmaps in JSON format:
|
||||||
[
|
[
|
||||||
@ -80,6 +82,7 @@ Format specific information:
|
|||||||
granularity: 65536
|
granularity: 65536
|
||||||
refcount bits: 16
|
refcount bits: 16
|
||||||
corrupt: false
|
corrupt: false
|
||||||
|
extended l2: false
|
||||||
|
|
||||||
The same bitmaps in JSON format:
|
The same bitmaps in JSON format:
|
||||||
[
|
[
|
||||||
@ -123,6 +126,7 @@ Format specific information:
|
|||||||
granularity: 65536
|
granularity: 65536
|
||||||
refcount bits: 16
|
refcount bits: 16
|
||||||
corrupt: false
|
corrupt: false
|
||||||
|
extended l2: false
|
||||||
|
|
||||||
The same bitmaps in JSON format:
|
The same bitmaps in JSON format:
|
||||||
[
|
[
|
||||||
@ -167,5 +171,6 @@ Format specific information:
|
|||||||
granularity: 16384
|
granularity: 16384
|
||||||
refcount bits: 16
|
refcount bits: 16
|
||||||
corrupt: false
|
corrupt: false
|
||||||
|
extended l2: false
|
||||||
|
|
||||||
Test complete
|
Test complete
|
||||||
|
@ -3,9 +3,9 @@ Finishing a commit job with background reads
|
|||||||
|
|
||||||
=== Create backing chain and start VM ===
|
=== Create backing chain and start VM ===
|
||||||
|
|
||||||
Formatting 'TEST_DIR/PID-t.qcow2.mid', fmt=qcow2 cluster_size=65536 compression_type=zlib size=134217728 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/PID-t.qcow2.mid', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=134217728 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
Formatting 'TEST_DIR/PID-t.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=134217728 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/PID-t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=134217728 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
=== Start background read requests ===
|
=== Start background read requests ===
|
||||||
|
|
||||||
@ -23,9 +23,9 @@ Closing the VM while a job is being cancelled
|
|||||||
|
|
||||||
=== Create images and start VM ===
|
=== Create images and start VM ===
|
||||||
|
|
||||||
Formatting 'TEST_DIR/PID-src.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=134217728 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/PID-src.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=134217728 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
Formatting 'TEST_DIR/PID-dst.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=134217728 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/PID-dst.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=134217728 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
wrote 1048576/1048576 bytes at offset 0
|
wrote 1048576/1048576 bytes at offset 0
|
||||||
1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
== Commit tests ==
|
== Commit tests ==
|
||||||
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 compression_type=zlib size=2097152 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=2097152 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
Formatting 'TEST_DIR/PID-mid', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1048576 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/PID-mid', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1048576 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 compression_type=zlib size=2097152 backing_file=TEST_DIR/PID-mid backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=2097152 backing_file=TEST_DIR/PID-mid backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
wrote 2097152/2097152 bytes at offset 0
|
wrote 2097152/2097152 bytes at offset 0
|
||||||
2 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
2 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
@ -57,6 +57,7 @@ Format specific information:
|
|||||||
lazy refcounts: false
|
lazy refcounts: false
|
||||||
refcount bits: 16
|
refcount bits: 16
|
||||||
corrupt: false
|
corrupt: false
|
||||||
|
extended l2: false
|
||||||
|
|
||||||
read 1048576/1048576 bytes at offset 0
|
read 1048576/1048576 bytes at offset 0
|
||||||
1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
@ -65,11 +66,11 @@ read 1048576/1048576 bytes at offset 1048576
|
|||||||
1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
|
|
||||||
=== Testing HMP commit (top -> mid) ===
|
=== Testing HMP commit (top -> mid) ===
|
||||||
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 compression_type=zlib size=2097152 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=2097152 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
Formatting 'TEST_DIR/PID-mid', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1048576 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/PID-mid', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1048576 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 compression_type=zlib size=2097152 backing_file=TEST_DIR/PID-mid backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=2097152 backing_file=TEST_DIR/PID-mid backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
wrote 2097152/2097152 bytes at offset 0
|
wrote 2097152/2097152 bytes at offset 0
|
||||||
2 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
2 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
@ -88,6 +89,7 @@ Format specific information:
|
|||||||
lazy refcounts: false
|
lazy refcounts: false
|
||||||
refcount bits: 16
|
refcount bits: 16
|
||||||
corrupt: false
|
corrupt: false
|
||||||
|
extended l2: false
|
||||||
|
|
||||||
read 1048576/1048576 bytes at offset 0
|
read 1048576/1048576 bytes at offset 0
|
||||||
1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
@ -96,11 +98,11 @@ read 1048576/1048576 bytes at offset 1048576
|
|||||||
1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
|
|
||||||
=== Testing QMP active commit (top -> mid) ===
|
=== Testing QMP active commit (top -> mid) ===
|
||||||
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 compression_type=zlib size=2097152 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=2097152 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
Formatting 'TEST_DIR/PID-mid', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1048576 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/PID-mid', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1048576 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 compression_type=zlib size=2097152 backing_file=TEST_DIR/PID-mid backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=2097152 backing_file=TEST_DIR/PID-mid backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
wrote 2097152/2097152 bytes at offset 0
|
wrote 2097152/2097152 bytes at offset 0
|
||||||
2 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
2 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
@ -125,6 +127,7 @@ Format specific information:
|
|||||||
lazy refcounts: false
|
lazy refcounts: false
|
||||||
refcount bits: 16
|
refcount bits: 16
|
||||||
corrupt: false
|
corrupt: false
|
||||||
|
extended l2: false
|
||||||
|
|
||||||
read 1048576/1048576 bytes at offset 0
|
read 1048576/1048576 bytes at offset 0
|
||||||
1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
@ -134,9 +137,9 @@ read 1048576/1048576 bytes at offset 1048576
|
|||||||
|
|
||||||
== Resize tests ==
|
== Resize tests ==
|
||||||
=== preallocation=off ===
|
=== preallocation=off ===
|
||||||
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 compression_type=zlib size=6442450944 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=6442450944 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 compression_type=zlib size=1073741824 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1073741824 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
wrote 65536/65536 bytes at offset 5368709120
|
wrote 65536/65536 bytes at offset 5368709120
|
||||||
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
@ -153,9 +156,9 @@ read 65536/65536 bytes at offset 5368709120
|
|||||||
{ "start": 1073741824, "length": 7516192768, "depth": 0, "zero": true, "data": false}]
|
{ "start": 1073741824, "length": 7516192768, "depth": 0, "zero": true, "data": false}]
|
||||||
|
|
||||||
=== preallocation=metadata ===
|
=== preallocation=metadata ===
|
||||||
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 compression_type=zlib size=34359738368 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=34359738368 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 compression_type=zlib size=32212254720 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=32212254720 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
wrote 65536/65536 bytes at offset 33285996544
|
wrote 65536/65536 bytes at offset 33285996544
|
||||||
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
@ -177,9 +180,9 @@ read 65536/65536 bytes at offset 33285996544
|
|||||||
{ "start": 34896609280, "length": 536870912, "depth": 0, "zero": true, "data": false, "offset": 2685075456}]
|
{ "start": 34896609280, "length": 536870912, "depth": 0, "zero": true, "data": false, "offset": 2685075456}]
|
||||||
|
|
||||||
=== preallocation=falloc ===
|
=== preallocation=falloc ===
|
||||||
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 compression_type=zlib size=10485760 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=10485760 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 compression_type=zlib size=5242880 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=5242880 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
wrote 65536/65536 bytes at offset 9437184
|
wrote 65536/65536 bytes at offset 9437184
|
||||||
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
@ -196,9 +199,9 @@ read 65536/65536 bytes at offset 9437184
|
|||||||
{ "start": 5242880, "length": 10485760, "depth": 0, "zero": false, "data": true, "offset": 327680}]
|
{ "start": 5242880, "length": 10485760, "depth": 0, "zero": false, "data": true, "offset": 327680}]
|
||||||
|
|
||||||
=== preallocation=full ===
|
=== preallocation=full ===
|
||||||
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 compression_type=zlib size=16777216 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=16777216 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 compression_type=zlib size=8388608 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=8388608 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
wrote 65536/65536 bytes at offset 11534336
|
wrote 65536/65536 bytes at offset 11534336
|
||||||
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
@ -215,9 +218,9 @@ read 65536/65536 bytes at offset 11534336
|
|||||||
{ "start": 8388608, "length": 4194304, "depth": 0, "zero": false, "data": true, "offset": 327680}]
|
{ "start": 8388608, "length": 4194304, "depth": 0, "zero": false, "data": true, "offset": 327680}]
|
||||||
|
|
||||||
=== preallocation=off ===
|
=== preallocation=off ===
|
||||||
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 compression_type=zlib size=393216 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=393216 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 compression_type=zlib size=259072 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=259072 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
wrote 65536/65536 bytes at offset 259072
|
wrote 65536/65536 bytes at offset 259072
|
||||||
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
@ -235,9 +238,9 @@ read 65536/65536 bytes at offset 259072
|
|||||||
{ "start": 262144, "length": 262144, "depth": 0, "zero": true, "data": false}]
|
{ "start": 262144, "length": 262144, "depth": 0, "zero": true, "data": false}]
|
||||||
|
|
||||||
=== preallocation=off ===
|
=== preallocation=off ===
|
||||||
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 compression_type=zlib size=409600 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=409600 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 compression_type=zlib size=262144 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=262144 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
wrote 65536/65536 bytes at offset 344064
|
wrote 65536/65536 bytes at offset 344064
|
||||||
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
@ -254,9 +257,9 @@ read 65536/65536 bytes at offset 344064
|
|||||||
{ "start": 262144, "length": 262144, "depth": 0, "zero": true, "data": false}]
|
{ "start": 262144, "length": 262144, "depth": 0, "zero": true, "data": false}]
|
||||||
|
|
||||||
=== preallocation=off ===
|
=== preallocation=off ===
|
||||||
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 compression_type=zlib size=524288 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=524288 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 compression_type=zlib size=262144 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=262144 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
wrote 65536/65536 bytes at offset 446464
|
wrote 65536/65536 bytes at offset 446464
|
||||||
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=67108864 lazy_refcounts=off refcount_bits=16
|
||||||
|
|
||||||
=== Launch VM ===
|
=== Launch VM ===
|
||||||
Enabling migration QMP events on VM...
|
Enabling migration QMP events on VM...
|
||||||
|
@ -41,6 +41,7 @@ Format specific information:
|
|||||||
granularity: 65536
|
granularity: 65536
|
||||||
refcount bits: 16
|
refcount bits: 16
|
||||||
corrupt: false
|
corrupt: false
|
||||||
|
extended l2: false
|
||||||
image: TEST_DIR/t.IMGFMT
|
image: TEST_DIR/t.IMGFMT
|
||||||
file format: IMGFMT
|
file format: IMGFMT
|
||||||
virtual size: 10 MiB (10485760 bytes)
|
virtual size: 10 MiB (10485760 bytes)
|
||||||
@ -65,6 +66,7 @@ Format specific information:
|
|||||||
granularity: 65536
|
granularity: 65536
|
||||||
refcount bits: 16
|
refcount bits: 16
|
||||||
corrupt: false
|
corrupt: false
|
||||||
|
extended l2: false
|
||||||
|
|
||||||
=== Check bitmap contents ===
|
=== Check bitmap contents ===
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@ Format specific information:
|
|||||||
lazy refcounts: false
|
lazy refcounts: false
|
||||||
refcount bits: 16
|
refcount bits: 16
|
||||||
corrupt: false
|
corrupt: false
|
||||||
|
extended l2: false
|
||||||
|
|
||||||
=== Converted image check ===
|
=== Converted image check ===
|
||||||
No errors were found on the image.
|
No errors were found on the image.
|
||||||
|
@ -47,7 +47,7 @@ header_length 112
|
|||||||
|
|
||||||
Header extension:
|
Header extension:
|
||||||
magic 0x6803f857 (Feature table)
|
magic 0x6803f857 (Feature table)
|
||||||
length 336
|
length 384
|
||||||
data <binary>
|
data <binary>
|
||||||
|
|
||||||
Header extension:
|
Header extension:
|
||||||
@ -105,7 +105,7 @@ Bitmap table type size offset
|
|||||||
{
|
{
|
||||||
"name": "Feature table",
|
"name": "Feature table",
|
||||||
"magic": 1745090647,
|
"magic": 1745090647,
|
||||||
"length": 336,
|
"length": 384,
|
||||||
"data_str": "<binary>"
|
"data_str": "<binary>"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -239,6 +239,7 @@ _filter_img_info()
|
|||||||
-e "/adapter_type: '[^']*'/d" \
|
-e "/adapter_type: '[^']*'/d" \
|
||||||
-e "/hwversion: '[^']*'/d" \
|
-e "/hwversion: '[^']*'/d" \
|
||||||
-e "/lazy_refcounts: \\(on\\|off\\)/d" \
|
-e "/lazy_refcounts: \\(on\\|off\\)/d" \
|
||||||
|
-e "/extended_l2=\\(on\\|off\\)/d" \
|
||||||
-e "/block_size: [0-9]\\+/d" \
|
-e "/block_size: [0-9]\\+/d" \
|
||||||
-e "/block_state_zero: \\(on\\|off\\)/d" \
|
-e "/block_state_zero: \\(on\\|off\\)/d" \
|
||||||
-e "/log_size: [0-9]\\+/d" \
|
-e "/log_size: [0-9]\\+/d" \
|
||||||
|
Loading…
Reference in New Issue
Block a user