diff options
author | Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> | 2011-06-20 00:38:39 -0300 |
---|---|---|
committer | Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> | 2011-07-09 15:14:49 -0300 |
commit | 3101e8d904025ba60f81814003b7e3e069109a80 (patch) | |
tree | e48ba7e908fd6c9761e3f3bd7ee5dbeaf501e49a | |
parent | 729e110eea73cb42bb98c64bfbbc53ece8656e97 (diff) | |
download | archiso32-3101e8d904025ba60f81814003b7e3e069109a80.tar.xz |
[archiso] Create correctly loop devs if loop.max_part > 0
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
-rw-r--r-- | archiso/hooks/archiso | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/archiso/hooks/archiso b/archiso/hooks/archiso index b81bbf7..7e2997a 100644 --- a/archiso/hooks/archiso +++ b/archiso/hooks/archiso @@ -1,22 +1,26 @@ # Initialize loopback device logic (we using on-demand mode) # args: none _init_loop_dev() { - loop_dev_cnt=99 + modprobe loop + loop_dev_count=99 + loop_dev_range=$(cat /sys/block/loop0/range) + loop_dev_minor=$((loop_dev_count*loop_dev_range)) } # Call this function before _make_loop_dev() each time. # args: none _next_loop_dev() { - loop_dev_cnt=$((loop_dev_cnt+1)) + loop_dev_count=$((loop_dev_count+1)) + loop_dev_minor=$((loop_dev_count*loop_dev_range)) } -# Setup a loopback device for image passed as arguemnt and echo the path to loopback device used. +# Setup a loopback device for image passed as argument and echo the path to loopback device used. # args: /path/to/image_file _make_loop_dev() { local img="${1}" - mknod /dev/loop${loop_dev_cnt} b 7 ${loop_dev_cnt} &> /dev/null - losetup /dev/loop${loop_dev_cnt} "${img}" &> /dev/null - echo /dev/loop${loop_dev_cnt} + mknod /dev/loop${loop_dev_count} b 7 ${loop_dev_minor} &> /dev/null + losetup /dev/loop${loop_dev_count} "${img}" &> /dev/null + echo /dev/loop${loop_dev_count} } # args: source, mountpoint |