Question

Is there an option for the qemu-nbd command to get the next free, i.e. unused NBD like losetup -f does? The manpage of 0.0.1 (which is version of the currently stable release 1.7.0 of qemu) doesn't mention anything.

Was it helpful?

Solution

You can query attributes about nbd devices in sysfs.

For example:

cat /sys/class/block/nbd0/size

Will return 0, or the size of the mapped image file otherwise, if /dev/ndb0 is in use.

So you could iterate each device until you find one with 0 and attempt to try that with qemu-nbd.

Something like this should do it:

for x in /sys/class/block/nbd* ; do
  S=`cat $x/size`
  if [ "$S" == "0" ] ; then
    qemu-nbd -c /dev/`basename $x` some_file.img
    break
  fi
done
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top