質問

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