[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 0/2] Improve qemu-img dd
From: |
Eric Blake |
Subject: |
[Qemu-devel] [PATCH 0/2] Improve qemu-img dd |
Date: |
Tue, 14 Aug 2018 21:56:12 -0500 |
I was trying to test NBD fleecing by copying subsets of one
file to another, and had the idea to use:
$ export NBD drive to be fleeced on port 10809
$ qemu-img create -f qcow2 copy $size
$ qemu-nbd -f qcow2 -p 10810 copy
$ qemu-img dd -f raw -O raw if=nbd://localhost:10809 of=nbd://localhost:10810 \
skip=$offset seek=$offset count=$((len/cluster)) bs=$cluster
except that seek= wasn't implemented. And in implementing that,
I learned that skip= is broken when combined with count=.
[In the meantime, I had to use:
$ export NBD drive to be fleeced on port 10809
$ modprobe nbd
$ qemu-nbd -c /dev/nbd0 -f raw nbd://localhost:10809
$ qemu-nbd -c /dev/nbd1 -f qcow2 copy
$ dd if=/dev/nbd0 of/dev/nbd1 \
skip=$offset seek=$offset count=$((len/cluster)) bs=$cluster
to get the behavior I needed (basically, create an empty qcow2
destination file, then plug in the guest-visible data based on
the subsets of the disk of my choosing, by reading the block
status/dirty bitmap over NBD). But bouncing through three
NBD client/server pairs just so I can use plain 'dd' instead
of just two pairs with 'qemu-img dd' feels dirty.
]
Eric Blake (2):
qemu-img: Fix dd with skip= and count=
qemu-img: Add dd seek= option
qemu-img.c | 76 ++++++----
tests/qemu-iotests/160 | 15 +-
tests/qemu-iotests/160.out | 344 ++++++++++++++++++++++++++++++++++++++++++++-
3 files changed, 397 insertions(+), 38 deletions(-)
--
2.14.4