Monday, December 27, 2010

Howto create Loop Device on Linux

This mini howto explain how to create more loop device on your operating system.You need to create more loop device in some case like encrypted file system or HVM xen virtualization.  By default there are 7 devices available, named /dev/loop0 through to /dev/loop7.

INFORMATIONS
You can find the loop device like that :


1# ls -al /dev/loop*
2brw-r----- 1 root disk 7, 0 Mar 19 09:34 /dev/loop0
3brw-r----- 1 root disk 7, 1 Mar 19 09:34 /dev/loop1
4brw-r----- 1 root disk 7, 2 Mar 19 09:34 /dev/loop2
5brw-r----- 1 root disk 7, 3 Mar 19 09:34 /dev/loop3
6brw-r----- 1 root disk 7, 4 Mar 19 09:34 /dev/loop4
7brw-r----- 1 root disk 7, 5 Mar 19 09:34 /dev/loop5
8brw-r----- 1 root disk 7, 6 Mar 19 09:34 /dev/loop6
9brw-r----- 1 root disk 7, 7 Mar 19 09:34 /dev/loop7
The creation of the loop device is very simple but you have 2 options for this creation one is without reboot and the other one is with a reboot.


HOT CREATION
Creation of loop8 :

1# mknod -m640 /dev/loop8 b 7 8
2-m640 define the permission of the device
3/dev/loop8 define the name of the device
4b for the creation of the special block device
57 8 the number 7 AND 8 define the MAJOR AND the MINOR
Check if the loop is created

1# ls -l /dev/loop8
2brw-r----- 1 root root 7, 8 Oct 3 14:54 /dev/loop8
Now you have the applied the good owner on this device

1#chown root:disk /dev/loop8
Now you have to change the module limitation and reboot your system.
STANDARD CREATION
You have to modify this file /etc/udev/makedev.d/50-udev.nodes

01#vim /etc/udev/makedev.d/50-udev.nodes
02loop0
03loop1
04loop2
05loop3
06loop4
07loop5
08loop6
09loop7
10loop8
11parport0
12parport1
13parport2
14parport3
15net/tun
16ppp
17console
18null
19zero
Now you have to change the module limitation and reboot your system.

MODULE LIMITATION
In the kernel, you have to allow more creation of loop device.
There is an absolute maximum of 256 devices limited in the kernel. The default limit is set to 8.

01# modinfo loop
02filename: /lib/modules/2.6.18-53.1.14.el5.centos.plusxen/kernel/drivers/block/loop.ko
03alias: block-major-7-*
04license: GPL
05srcversion: 82DB6DB3DABF3B945D6394D
06depends:
07vermagic: 2.6.18-53.1.14.el5.centos.plusxen SMP mod_unload gcc-4.1
08parm: max_loop:Maximum number of loop devices (1-256) (int)
09module_sig: 883f35047d15787f0a982eee333b2d8112f51f09f68f09b79223a34983b3aef66820c08
10
11cc6e8cd3709f6d7c56171e5a579ee1ca2ca56349c56b983a7c46
Now you have to change this value with the modprobe.conf file.

1#vim /etc/modprobe.conf
2 ...
3options loop max_loop=64
4...
TIPS & COMMAND
The commande line losetup is used for set up and control loop device.

1# losetup
2usage:
3losetup loop_device # give info
4losetup -d loop_device # delete
5losetup -f # find unused
6losetup -a # list all used
7losetup -r # read-only loop
8losetup [-e encryption] [-o offset] [-r] {-f|loop_device} file # setup

0 Comments: