aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorEric Blake <eblake@redhat.com>2020-07-06 15:39:51 -0500
committerKevin Wolf <kwolf@redhat.com>2020-07-14 15:18:59 +0200
commitbc5ee6da7122f6fe93ed07241a44315a331487e9 (patch)
tree93c3d374c430739c300d1413e50408b3baa51de5 /docs
parentadd8200dd14041d059cc376eff91461fadd93ec5 (diff)
downloadqemu-bc5ee6da7122f6fe93ed07241a44315a331487e9.zip
qemu-bc5ee6da7122f6fe93ed07241a44315a331487e9.tar.gz
qemu-bc5ee6da7122f6fe93ed07241a44315a331487e9.tar.bz2
qcow2: Deprecate use of qemu-img amend to change backing file
The use of 'qemu-img amend' to change qcow2 backing files is not tested very well. In particular, our implementation has a bug where if a new backing file is provided without a format, then the prior format is blindly reused, even if this results in data corruption, but this is not caught by iotests. There are also situations where amending other options needs access to the original backing file (for example, on a downgrade to a v2 image, knowing whether a v3 zero cluster must be allocated or may be left unallocated depends on knowing whether the backing file already reads as zero), but the command line does not have a nice way to tell us both the backing file to use for opening the image as well as the backing file to install after the operation is complete. Even if we do allow changing the backing file, it is redundant with the existing ability to change backing files via 'qemu-img rebase -u'. It is time to deprecate this support (leaving the existing behavior intact, even if it is buggy), and at a point in the future, require the use of only 'qemu-img rebase' for adjusting backing chain relations, saving 'qemu-img amend' for changes unrelated to the backing chain. Signed-off-by: Eric Blake <eblake@redhat.com> Message-Id: <20200706203954.341758-8-eblake@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'docs')
-rw-r--r--docs/system/deprecated.rst12
-rw-r--r--docs/tools/qemu-img.rst4
2 files changed, 16 insertions, 0 deletions
diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
index c014e04..c1f019b 100644
--- a/docs/system/deprecated.rst
+++ b/docs/system/deprecated.rst
@@ -427,6 +427,18 @@ kernel in 2018, and has also been dropped from glibc.
Related binaries
----------------
+qemu-img amend to adjust backing file (since 5.1)
+'''''''''''''''''''''''''''''''''''''''''''''''''
+
+The use of ``qemu-img amend`` to modify the name or format of a qcow2
+backing image is deprecated; this functionality was never fully
+documented or tested, and interferes with other amend operations that
+need access to the original backing image (such as deciding whether a
+v3 zero cluster may be left unallocated when converting to a v2
+image). Rather, any changes to the backing chain should be performed
+with ``qemu-img rebase -u`` either before or after the remaining
+changes being performed by amend, as appropriate.
+
Backwards compatibility
-----------------------
diff --git a/docs/tools/qemu-img.rst b/docs/tools/qemu-img.rst
index e33f557..c35bd64 100644
--- a/docs/tools/qemu-img.rst
+++ b/docs/tools/qemu-img.rst
@@ -258,6 +258,10 @@ Command description:
Amends the image format specific *OPTIONS* for the image file
*FILENAME*. Not all file formats support this operation.
+ The set of options that can be amended are dependent on the image
+ format, but note that amending the backing chain relationship should
+ instead be performed with ``qemu-img rebase``.
+
--force allows some unsafe operations. Currently for -f luks, it allows to
erase the last encryption key, and to overwrite an active encryption key.