summaryrefslogtreecommitdiff
path: root/archiso
diff options
context:
space:
mode:
authorAaron Griffin <aaronmgriffin@gmail.com>2008-12-23 20:12:20 -0800
committerAaron Griffin <aaronmgriffin@gmail.com>2008-12-23 20:12:20 -0800
commit571aa1530949592e5e76ed96354dd92cfda3d502 (patch)
treea7f5bb062c87f33d72083626cab1b6e11fc3ebb5 /archiso
parent67f44f000f99bcc59a7a828dbe4b238cc3983001 (diff)
downloadarchiso32-571aa1530949592e5e76ed96354dd92cfda3d502.tar.xz
Fix the way squashfs mountpoints are handled
This is a hacky way to mount squashfs images at directories other than the root. We mount the image to a loop device and then bind it to another directory. This technically supersedes the 'bind' image type, so that should be removed... Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
Diffstat (limited to 'archiso')
-rw-r--r--archiso/hooks/archiso9
1 files changed, 7 insertions, 2 deletions
diff --git a/archiso/hooks/archiso b/archiso/hooks/archiso
index 0c71abe..f015620 100644
--- a/archiso/hooks/archiso
+++ b/archiso/hooks/archiso
@@ -13,6 +13,7 @@ _mnt_squashfs()
img="${1}"
base_img="${img##*/}";
+ mnt="${2}"
if [ "${copytoram}" = "y" ]; then
msg ":: Copying squashfs image to RAM"
@@ -31,7 +32,11 @@ _mnt_squashfs()
break
fi
/bin/mount -r -t squashfs "/dev/loop${LOOP_NUM}" "/tmpfs/mnt/loop${LOOP_NUM}"
- /bin/mount -t unionfs -o remount,add=:/tmpfs/mnt/loop${LOOP_NUM}=ro none "/real_root"
+ if [ "${mnt}" = "/" ]; then
+ /bin/mount -t unionfs -o remount,add=:/tmpfs/mnt/loop${LOOP_NUM}=ro none "/real_root"
+ else
+ _mnt_bind "/tmpfs/mnt/loop${LOOP_NUM}" "${mnt}"
+ fi
export LOOP_NUM=$(( $LOOP_NUM + 1 ))
}
@@ -118,7 +123,7 @@ run_hook ()
if [ "${type}" = "bind" ]; then
_mnt_bind "/bootmnt/${img}" ${mountpoint}
elif [ "${type}" = "squashfs" ]; then
- _mnt_squashfs "/bootmnt/${img}"
+ _mnt_squashfs "/bootmnt/${img}" "${mountpoint}"
fi
done < "/bootmnt/isomounts"