diff options
author | Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> | 2010-02-17 18:45:02 -0300 |
---|---|---|
committer | Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> | 2010-02-17 19:07:14 -0300 |
commit | 7d7dad06e2e9aa16fd27608027b1de06f930242b (patch) | |
tree | 8b17cba453371271db077bf78dd28477f481388c | |
parent | 59d7a39994ea975a36aec0f7ead300aa8403a0b5 (diff) | |
download | archiso32-7d7dad06e2e9aa16fd27608027b1de06f930242b.tar.xz |
Take advantage of module autoloading when mounting images as loop
* Make first /dev/loop0 device at archiso install hook.
* Remove unneeded losetup, all is done directly via mount.
* Images are now mounted on /tmpfs/mnt/image-name instead of
/tmpfs/mnt/loopN, removing unneeded counter.
* Add some variables to make code more readable.
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
-rw-r--r-- | archiso/hooks/archiso | 26 | ||||
-rw-r--r-- | archiso/install/archiso | 1 |
2 files changed, 9 insertions, 18 deletions
diff --git a/archiso/hooks/archiso b/archiso/hooks/archiso index aac2d21..9ba539f 100644 --- a/archiso/hooks/archiso +++ b/archiso/hooks/archiso @@ -9,11 +9,11 @@ _mnt_bind() # args: /path/to/image_file _mnt_squashfs() { - /sbin/modprobe -q loop > /dev/null 2>&1 - img="${1}" - base_img="${img##*/}"; mnt="${2}" + img_fullname="${img##*/}"; + img_name="${img_fullname%.*}" + tmp_mnt="/tmpfs/mnt/${img_name}" # FIX: This options does not work (see FS#17182) if [ "${copytoram}" = "y" ]; then @@ -22,23 +22,14 @@ _mnt_squashfs() img="/tmpfs/${base_img}" fi - msg "::: Adding new aufs branch: ${base_img%.*}" - mkdir -p "/tmpfs/mnt/loop${LOOP_NUM}" - # sometimes it takes udev a while to create device nodes - while [ ! -e "/dev/loop${LOOP_NUM}" ]; do - sleep 1 - done - if ! /sbin/losetup "/dev/loop${LOOP_NUM}" ${img}; then - echo "ERROR: Cannot mount loop device /dev/loop${LOOP_NUM}" - break - fi - /bin/mount -r -t squashfs "/dev/loop${LOOP_NUM}" "/tmpfs/mnt/loop${LOOP_NUM}" + msg "::: Adding new aufs branch: ${img_name}" + mkdir -p "${tmp_mnt}" + /bin/mount -r -t squashfs "${img}" "${tmp_mnt}" if [ "${mnt}" = "/" ]; then - /bin/mount -t aufs -o remount,append:/tmpfs/mnt/loop${LOOP_NUM}=ro none "$newroot" + /bin/mount -t aufs -o remount,append:${tmp_mnt}=ro none "$newroot" else - _mnt_bind "/tmpfs/mnt/loop${LOOP_NUM}" "${mnt}" + _mnt_bind "${tmp_mnt}" "${mnt}" fi - export LOOP_NUM=$(( $LOOP_NUM + 1 )) } run_hook () @@ -112,7 +103,6 @@ archiso_mount_handler() { exit 1 fi - export LOOP_NUM="0" msg ":: Mounting images" while read img imgarch mountpoint type; do # check if this line is a comment (starts with #) diff --git a/archiso/install/archiso b/archiso/install/archiso index 5978f33..4d36412 100644 --- a/archiso/install/archiso +++ b/archiso/install/archiso @@ -11,6 +11,7 @@ install () FILES="" add_dir /tmpfs add_dir /bootmnt + add_device /dev/loop0 b 7 0 SCRIPT="archiso" } |