How to add more /dev/loop* devices on Fedora 19

34,811

Solution 1

You have to create device nodes into /dev with mknod. The device nodes in dev have a type (block, character and so on), a major number and a minor number. You can find out the type and the major number by doing ls -l /dev/loop0:

user@foo:/sys# ls -l /dev/loop0
brw-rw---- 1 root disk 7, 0 Oct  8 08:12 /dev/loop0

This means loop device nodes should have the block type and major number of 7. The minor numbers increment by one for each device node, starting from 0, so loop0 is simply 0 and loop7 is 7.

To create loop8 you run, as root, command mknod -m 0660 /dev/loop8 b 7 8. This will create the device node /dev/loop8 with permissions specified along the -m switch (that's not necessary as you're probably running a desktop system, but it's a good idea not to let everyone read and write your device nodes).

Solution 2

When you run it as root, losetup -f will automatically create loop devices as needed if there aren't any free ones available.

So rather than doing it yourself with mknod, the easiest way to create a new loop device is with sudo losetup -f. That approach will give you a free existing loop device if one exists, or automatically create a new one if needed.

Solution 3

Heh, incomplete :) Simply use this script for adding new /dev/loops. Remember for changing numbers, script makes to 63'th loop, starts from 8'th because 0-7 is made by default. Notice, rights are copied from /dev/loop0 :)

for i in {8..63}; do if [ -e /dev/loop$i ]; then continue; fi; \
mknod /dev/loop$i b 7 $i; chown --reference=/dev/loop0 /dev/loop$i; \
chmod --reference=/dev/loop0 /dev/loop$i; done
Share:
34,811
user219372
Author by

user219372

Updated on September 18, 2022

Comments

  • user219372
    user219372 almost 2 years

    How to add more /dev/loop* devices on Fedora 19? I do:

    # uname -r
    3.11.2-201.fc19.x86_64
    # lsmod |grep loop
    
    # ls /dev/loop*
    /dev/loop0  /dev/loop1  /dev/loop2  /dev/loop3  /dev/loop4  /dev/loop5  /dev/loop6  /dev/loop7  /dev/loop-control
    # modprobe loop max_loop=128
    # ls /dev/loop*
    /dev/loop0  /dev/loop1  /dev/loop2  /dev/loop3  /dev/loop4  /dev/loop5  /dev/loop6  /dev/loop7  /dev/loop-control
    

    So nothing changes.

    • Sirex
      Sirex over 10 years
      loop isn't a module in fedora 19, its compiled in.
    • user2914606
      user2914606 over 10 years
      you'd probably use mknod. but why would you want to create more loop files without connecting them to anything?
  • Vasilis Lourdas
    Vasilis Lourdas over 8 years
    You forgot the node type after the name, so the command should be mknod -m 0660 /dev/loop8 b 7 8.