This patch from Laurent Vivier (with minor changes by Paul Clements) adds partition support to NBD. By default this is turned off, but can be enabled with a new module parameter, max_part. Below, Laurent notes that partition table re-read doesn't automatically occur. For now you'll have to open("/dev/nbdX") to get that to happen. Longer term, nbd-client can be modified to fork just before nbd_do_it() and then call ioctl(BLKRRPART, "/dev/nbdX") in the parent process (probably need to wait for the "pid" file to show up in /sys to avoid a race). Thanks, Paul