[Libguestfs] nbdkit: Could not read L1 table when reading exported qcow2
Richard W.M. Jones
rjones at redhat.com
Wed Nov 21 10:39:30 UTC 2018
On Wed, Nov 21, 2018 at 09:25:05AM +0000, Richard W.M. Jones wrote:
> nbdkit: file.2: error: invalid request: offset and count are out of range: offset=196608 count=512
Actually what happens even more precisely is that the underlying file
is not a multiple of 512 bytes (196624 ≡ 16 mod 512).
qemu-img (the client) issues a request for the final "sector" of the
file which goes beyond the end of the file.
You can "fix" this by using the truncate filter
(https://github.com/libguestfs/nbdkit/blob/master/filters/truncate/nbdkit-truncate-filter.pod)
telling it to round up the size to the next multiple of 512 bytes:
$ nbdkit --filter=truncate file file=disk -f -v round-up=512
and this allows qemu-img to work:
$ qemu-img info nbd://localhost
image: nbd://localhost:10809
file format: qcow2
virtual size: 1.0G (1073741824 bytes)
disk size: unavailable
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
refcount bits: 16
corrupt: false
However the fundamental problem remains that you're exporting qcow2
bytes over the NBD connection which is not really what you wanted to
do.
You should use qemu-nbd instead since it understands qcow2 natively,
or use raw format disks if you want to use nbdkit for its other
features.
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
libguestfs lets you edit virtual machines. Supports shell scripting,
bindings from many languages. http://libguestfs.org
More information about the Libguestfs
mailing list