$ sudo losetup -f ~/vhost/.test_04was hanging (sat for an hour without finding the next available loop.) So I checked by hand
$ sudo losetup -f
/dev/loop1That looked to be functioning as expected, so I checked for availability with
$ sudo losetup -nl
/dev/loop8 0 0 1 0 ~/vhosts/.test_02 0
/dev/loop2 0 0 1 0 ~/vhosts/.test_03 0
/dev/loop0 0 0 1 0 ~/vhosts/.test_00 0
/dev/loop3 0 0 0 0 ~/vhosts/.test_01 0Good, loop1 seems unoccupied
$ sudo losetup /dev/loop1 ~/vhost/.test_04
losetup: ~/vhost/.test_04: failed to set up loop device: Device or resource busyI checked with
$ for i in $(seq 0 14);do sudo losetup -nl /dev/loop$i; done
/dev/loop0 0 0 1 0 ~/vhosts/.test_00 0
/dev/loop1 0 0 1 0 ~/vhosts/.test_01 0
/dev/loop2 0 0 1 0 ~/vhosts/.test_02 0
/dev/loop3 0 0 0 0 ~/vhosts/.test_03 0
/dev/loop4 0 0 0
/dev/loop5 0 0 0
/dev/loop6 0 0 0
/dev/loop7 0 0 0
/dev/loop8 0 0 1 0 ~/vhosts/.test_01 0
/dev/loop9 0 0 1 0 ~/vhosts/.test_01 0
/dev/loop10 0 0 1 0 ~/vhosts/.test_01 0
/dev/loop11 0 0 1 0 ~/vhosts/.test_01 0
/dev/loop12 0 0 1 0 ~/vhosts/.test_01 0
/dev/loop13 0 0 1 0 ~/vhosts/.test_01 0
losetup: /dev/loop14: failed to use device: No such device$ ls -la /vhosts/.test_01
-rw------- 1 x x 2097152 Oct 17 21:31 ~/vhosts/.test_01
$ sudo cryptsetup status /dev/mapper/vda_01
/dev/mapper/vda_01 is active and is in use. type: PLAIN cipher: aes-xts-plain64 keysize: 256 bits device: /dev/loop8 loop: ~/vhosts/.test_01 offset: 0 sectors size: <good> sectors mode: read/write
$ uname -a
Linux desktop 4.12.0-1-amd64 #1 SMP Debian 4.12.6-1 (2017-08-12) x86_64 GNU/Linux
$ sudo losetup --version
losetup from util-linux 2.30.2Is this a bug in losetup or the linux kernel?
losetup -f Find the first unused loop device and print its name
does not seem to be functioning as expected from the documentation.
$ sudo lsof|grep loop
loop2 3208 root cwd DIR 8,6 4096 2 /
loop2 3208 root rtd DIR 8,6 4096 2 /
loop2 3208 root txt unknown /proc/3208/exe
loop8 6958 root cwd DIR 8,6 4096 2 /
loop8 6958 root rtd DIR 8,6 4096 2 /
loop8 6958 root txt unknown /proc/6958/exe
loop3 19520 root cwd DIR 8,6 4096 2 /
loop3 19520 root rtd DIR 8,6 4096 2 /
loop3 19520 root txt unknown /proc/19520/exe
loop0 19605 root cwd DIR 8,6 4096 2 /
loop0 19605 root rtd DIR 8,6 4096 2 /
loop0 19605 root txt unknown /proc/19605/exe 2 Reset to default