문제

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