qemu-nbd的下一个免费设备选项

Kar*_*ter 3 qemu

qemu-nbd命令是否有一个选项可以获得下一个免费的,即losetup -f之类的未使用的NBD 呢?手册页0.0.1(qemu当前稳定版本1.7.0的版本)没有提及任何内容.

6EQ*_*UJ5 6

您可以在sysfs中查询有关nbd设备的属性.

例如:

cat /sys/class/block/nbd0/size
Run Code Online (Sandbox Code Playgroud)

如果正在使用/ dev/ndb0,则返回0,否则返回映射图像文件的大小.

所以你可以迭代每个设备,直到你找到一个0并尝试尝试qemu-nbd.

这样的事情应该这样做:

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
Run Code Online (Sandbox Code Playgroud)