While I was thinking about what I'd write for my proposed nbdkit talk at FOSDEM next year, this strikes me as clunky: rm -f /tmp/sock nbdkit -U /tmp/sock file foo nbd-client -u /tmp/sock /dev/nbd0 ... nbd-client -d /dev/nbd0 killall nbdkit In qemu-nbd, all that is just this: qemu-nbd -c /dev/nbd0 foo It seems like it would be nice to implement an ‘nbdkit -c /dev/nbdX’ option. My first idea was: nbdkit -c /dev/nbdX ==> nbdkit -U [sock] & running: nbd-client -nofork -u [sock] /dev/nbdX However that still leaves the need for end users to manually delete the nbdX device & kill nbdkit. If I'm understanding the qemu code correctly, qemu-nbd uses its own internal NBD client running in a pthread, so it doesn't need nbd-client. So it can keep the client running next to the server and neatly handle cleanup of the device & server on exit. (In case it's not clear, the nbd-client userspace process does not persist with modern kernel NBD.) I can't think of a good way to implement this in nbdkit so if anyone's got any ideas ... Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-builder quickly builds VMs from scratch http://libguestfs.org/virt-builder.1.html