permissions: 0.789 architecture: 0.767 semantic: 0.754 device: 0.740 performance: 0.723 assembly: 0.717 kernel: 0.665 PID: 0.657 files: 0.651 graphic: 0.624 user-level: 0.621 debug: 0.612 arm: 0.589 virtual: 0.582 socket: 0.538 network: 0.526 register: 0.501 peripherals: 0.476 TCG: 0.459 hypervisor: 0.425 x86: 0.423 vnc: 0.407 boot: 0.402 VMM: 0.392 mistranslation: 0.392 KVM: 0.390 ppc: 0.355 risc-v: 0.331 i386: 0.272 diffuse handling of image creation from another path see attachement! On Tue, Dec 03, 2013 at 03:22:28PM -0000, Florian Miksch wrote: Hi, This does not look like a bug. Please see the explanation below... Inlining Florian's reproducer script so we can discuss it via email: > #!/bin/bash > # This script does create a backing image and overlay to > # reproduce the reported bug. > #... > > mkdir a > # Create an image from another path e.g. in the directory 'a' > qemu-img create -f qcow2 a/blob.img 10G > > # Create an overlay image from another path in the same directory > qemu-img create -f qcow2 -b a/blob.img a/ovl.img > > # Get Info in the new directory > cd a > qemu-img info ovl.img > # Output: > # image: ovl.img > # file format: qcow2 > # virtual size: 10G (10737418240 bytes) > # disk size: 196K > # cluster_size: 65536 > # backing file: a/blob.img > > # Get the Info from another directory > cd .. > qemu-img info a/ovl.img > # Output: > # image: a/ovl.img > # file format: qcow2 > # virtual size: 10G (10737418240 bytes) > # disk size: 196K > # cluster_size: 65536 > # backing file: a/blob.img (actual path: a/a/blob.img) > > # Bug: > # Compare 'image' > # Compare 'backing file' > # Look at 'actual path' The behavior you are showing here is explained as follows: Backing file paths can be relative or absolute and are stored inside the image file. In this case you are providing a relative backing file path. Relative backing file paths are interpreted against the image filename. In other words: join_path(dirname('a/ovl.img'), 'a/blob.img') -> 'a/a/blob.img' > > # 'qemu-img info' takes the recommended path as name of the image > # and the actual path is then: a/a/blob.img > > qemu-img commit a/ovl.img > # Now commit fails > # --> ERROR "No such file or directory The problem was: > qemu-img create -f qcow2 -b a/blob.img a/ovl.img If you want to use a relative backing file path, remember that it is relative to the image file: cd a && qemu-img create -f qcow2 -b blob.img ovl.img Then 'qemu-img commit a/ovl.img' will work as expected. Stefan