Comment 2 for bug 2015400

Revision history for this message
Mauricio Faria de Oliveira (mfo) wrote :

Possible workaround w/ losetup.

# uname -rv
5.15.0-69-generic #76-Ubuntu SMP Fri Mar 17 17:19:29 UTC 2023

# cat /sys/module/loop/parameters/max_loop
8

# losetup -nl | sort
/dev/loop0 0 0 1 1 /var/lib/snapd/snaps/lxd_24322.snap 0 512
/dev/loop1 0 0 1 1 /var/lib/snapd/snaps/snapd_18357.snap 0 512
/dev/loop2 0 0 1 1 /var/lib/snapd/snaps/core20_1822.snap 0 512

# ls -1 /dev/loop*
/dev/loop-control
/dev/loop0
/dev/loop1
/dev/loop2
/dev/loop3
/dev/loop4
/dev/loop5
/dev/loop6
/dev/loop7

# truncate -s 1g test1
# truncate -s 1g test2
# ls -lh test1 test2
-rw-r--r-- 1 root root 1.0G Apr 6 17:40 test1
-rw-r--r-- 1 root root 1.0G Apr 6 17:40 test2

# losetup /dev/loop7 test1
# losetup /dev/loop8 test2
losetup: /dev/loop8: failed to set up loop device: No such device or address

...

# losetup --show --find test1
/dev/loop3
# losetup --show --find test1
/dev/loop4
# losetup --show --find test1
/dev/loop5
# losetup --show --find test1
/dev/loop6
# losetup --show --find test1
/dev/loop8
# losetup --show --find test1
/dev/loop9
# losetup --show --find test1
/dev/loop10
# losetup --show --find test1
/dev/loop11
# losetup --show --find test1
/dev/loop12
# losetup --show --find test1
/dev/loop13
# strace -e ioctl losetup --show --find test1
ioctl(3, LOOP_CTL_GET_FREE) = 14
ioctl(4, LOOP_CONFIGURE, {fd=3, block_size=0, info={lo_offset=0, lo_number=0, lo_flags=0, lo_file_name="/root/test1", ...}}) = 0
/dev/loop14
+++ exited with 0 +++

# losetup -d /dev/loop3
# losetup -d /dev/loop4
# losetup -d /dev/loop5
# losetup -d /dev/loop6
# losetup -d /dev/loop8
# losetup -d /dev/loop9
# losetup -d /dev/loop10
# losetup -d /dev/loop11
# losetup -d /dev/loop12
# losetup -d /dev/loop13

# losetup /dev/loop8 test2
#

works now.

# cat /sys/module/loop/parameters/max_loop
8