diff options
author | Aaron Griffin <aaronmgriffin@gmail.com> | 2008-12-23 20:12:20 -0800 |
---|---|---|
committer | Aaron Griffin <aaronmgriffin@gmail.com> | 2008-12-23 20:12:20 -0800 |
commit | 571aa1530949592e5e76ed96354dd92cfda3d502 (patch) | |
tree | a7f5bb062c87f33d72083626cab1b6e11fc3ebb5 /archiso/hooks | |
parent | 67f44f000f99bcc59a7a828dbe4b238cc3983001 (diff) | |
download | archiso32-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/hooks')
-rw-r--r-- | archiso/hooks/archiso | 9 |
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" |