Вопрос

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.

Это было полезно?

Решение

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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top