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.
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 snapd/snaps/ lxd_24322. snap 0 512 snapd/snaps/ snapd_18357. snap 0 512 snapd/snaps/ core20_ 1822.snap 0 512
/dev/loop0 0 0 1 1 /var/lib/
/dev/loop1 0 0 1 1 /var/lib/
/dev/loop2 0 0 1 1 /var/lib/
# 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 name="/ root/test1" , ...}}) = 0
/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_
/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