qemu-nbd: Deprecate qemu-nbd --partition
commit0ae2d54645eb2888af6dc7f701bc02ca18e4e656
authorEric Blake <eblake@redhat.com>
Fri, 25 Jan 2019 23:48:37 +0000 (25 17:48 -0600)
committerEric Blake <eblake@redhat.com>
Mon, 4 Feb 2019 21:11:27 +0000 (4 15:11 -0600)
treee613f2d7cf9e1031ad8f5087f5ce64a0cd4aa5cb
parent773c4a6228fd910556cee2d477ee56c591a30000
qemu-nbd: Deprecate qemu-nbd --partition

The existing qemu-nbd --partition code claims to handle logical
partitions up to 8, since its introduction in 2008 (commit 7a5ca86).
However, the implementation is bogus (actual MBR logical partitions
form a sort of linked list, with one partition per extended table
entry, rather than four logical partitions in a single extended
table), making the code unlikely to work for anything beyond -P5 on
actual guest images. What's more, the code does not support GPT
partitions, which are becoming more popular, and maintaining device
subsetting in both NBD and the raw device is unnecessary duplication
of effort (even if it is not too difficult).

Note that obtaining the offsets of a partition (MBR or GPT) can be
learned by using 'qemu-nbd -c /dev/nbd0 file.qcow2 && sfdisk --dump
/dev/nbd0', but by the time you've done that, you might as well
just mount /dev/nbd0p1 that the kernel creates for you instead of
bothering with qemu exporting a subset.  Or, keeping to just
user-space code, use nbdkit's partition filter, which has already
known both GPT and primary MBR partitions for a while, and was
just recently enhanced to support arbitrary logical MBR parititions.

Start the clock on the deprecation cycle, with examples of how
to accomplish device subsetting without using -P.

Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <20190125234837.2272-1-eblake@redhat.com>
Reviewed-by: Richard W.M. Jones <rjones@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
qemu-deprecated.texi
qemu-nbd.c
qemu-nbd.texi