summaryrefslogtreecommitdiff
path: root/hooks
diff options
context:
space:
mode:
authorAaron Griffin <aaronmgriffin@gmail.com>2008-09-06 20:39:35 -0500
committerAaron Griffin <aaronmgriffin@gmail.com>2008-09-06 20:39:35 -0500
commit8966351b12bbcf2f8fffbd8c3a4b00e7529349b8 (patch)
treea54505adcbc029bce687788150df4383e5e936e0 /hooks
parent99ed5349b32951fa1ec28cc2ee3caaff83fcd681 (diff)
Split mkarchiso and configs into logical parts
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
Diffstat (limited to 'hooks')
-rw-r--r--hooks/archiso97
-rw-r--r--hooks/boot-cd37
-rw-r--r--hooks/boot-usb35
3 files changed, 0 insertions, 169 deletions
diff --git a/hooks/archiso b/hooks/archiso
deleted file mode 100644
index 8a6b648..0000000
--- a/hooks/archiso
+++ /dev/null
@@ -1,97 +0,0 @@
-# args: source, mountpoint
-_mnt_bind()
-{
- msg "::: Binding ${1} to ${2}"
- mkdir -p /real_root${2}
- /bin/mount -o bind ${addon_dir}/${1} /real_root${2}
-}
-
-# args: image file
-_mnt_squashfs()
-{
- msg "::: Adding new union branch: ${1}"
- /bin/modprobe -q loop >/dev/null 2>&1
- mkdir -p "/tmpfs/mnt/loop${LOOP_NUM}"
- if ! /bin/losetup "/dev/loop${LOOP_NUM}" ${1} > /dev/null 2>&1; then
- echo "ERROR: Cannot mount loop device /dev/loop${LOOP_NUM}"
- echo " Couldn't mount all addons"
- 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"
- export LOOP_NUM=$(( $LOOP_NUM + 1 ))
-}
-
-run_hook ()
-{
- if [ "x${ramdisk_size}" = "x" ]; then
- ramdisk_size="75%"
- fi
- msg -n ":: Mounting tmpfs, size=${ramdisk_size}..."
- mount -t tmpfs -o "size=${ramdisk_size}" tmpfs /tmpfs
- msg "done."
-
- if [ "x${BOOT_MOUNT}" = "x" ]; then
- echo "ERROR: BOOT_MOUNT is not set. The boot-cd or boot-usb hook MUST"
- echo " be run before this one. This image was improperly built"
- exit 1
- fi
-
- base_img="${BOOT_MOUNT}/archlive.sqfs"
- if [ "${copytoram}" = "y" ]; then
- msg ":: Copying squashfs image to RAM"
- /bin/cat ${base_img} > /tmpfs/archlive.sqfs
- base_img="/tmpfs/archlive.sqfs"
- fi
-
- msg ":: Mounting squashfs image"
- /bin/modprobe -q squashfs >/dev/null 2>&1
-
- msg ":: Mounting root (union) filesystem"
- /bin/modprobe -q unionfs >/dev/null 2>&1
- /bin/mount -t unionfs -o dirs=/tmpfs=rw none /real_root
-
- export LOOP_NUM="0"
- addon_dir="${BOOT_MOUNT}/addons"
-
- # always layer default configuration
- _mnt_squashfs "${addon_dir}/default-config.sqfs"
-
- if [ -e "${addon_dir}/config" ]; then
- msg ":: Mounting addons"
- while read img mountpoint type; do
- # check if this line is a comment (starts with #)
- [ "${img#"#"}" != "${img}" ] && continue
-
- if [ "${type}" = "bind" ]; then
- _mnt_bind ${img} ${mountpoint}
- elif [ "${type}" = "squashfs" ]; then
- _mnt_squashfs "${addon_dir}/${img}"
- fi
- done < ${addon_dir}/config
- fi
-
- # layer the "pristine" base system image last
- _mnt_squashfs ${base_img}
-
- if [ -d /proc/sys/dev/cdrom ]; then
- echo 0 > /proc/sys/dev/cdrom/lock
- echo 0 > /proc/sys/dev/cdrom/autoeject
- fi
-
- if [ "${break}" = "y" ]; then
- echo ":: Break requested, type 'exit' to resume operation"
- echo " NOTE: klibc contains no 'ls' binary, use 'echo *' instead"
- PS1="ramfs$ " /bin/sh -i
- fi
-
- udevpid=$(/bin/minips -C udevd -o pid=)
- [ "x${udevpid}" != "x" ] && /bin/kill -9 $udevpid 2>&1 >/dev/null
- #Yep, we're bailing out here. We don't need kinit.
- msg ":: Passing control to Archlinux Initscripts...Please Wait"
- /bin/umount /sys
- /bin/umount /proc
- exec /bin/run-init -c /dev/console /real_root /sbin/init ${CMDLINE}
-}
-
-# vim:ft=sh:ts=4:sw=4:et:
diff --git a/hooks/boot-cd b/hooks/boot-cd
deleted file mode 100644
index 1670c6b..0000000
--- a/hooks/boot-cd
+++ /dev/null
@@ -1,37 +0,0 @@
-run_hook ()
-{
- # external drives may need to settle
- msg ":: Waiting for usb devices to settle..."
- /sbin/udevtrigger --subsystem-match=usb
- /sbin/udevsettle
- sleep 5
-
- msg ":: Scanning for boot cdrom device..."
-
- /bin/mkdir -p /bootmnt
- bootmnt="/bootmnt"
- found=0
-
- /bin/modprobe -q isofs >/dev/null 2>&1
- for cdrom in /dev/cd/*; do
- if mount -r -t iso9660 "${cdrom}" ${bootmnt} >/dev/null 2>&1; then
- if [ -e "${bootmnt}/archlive.sqfs" ]; then
- found=1
- msg "${cdrom}"
- break
- fi
- else
- echo "Failed to mount ${cdrom}"
- fi
- [ ${found} -eq 0 ] && umount ${bootmnt} >/dev/null 2>&1
- done
-
- if [ ${found} -eq 0 ]; then
- echo "ERROR: cannot find booted cdrom device, cannot continue..."
- exit 1
- else
- export BOOT_MOUNT="${bootmnt}"
- fi
-}
-
-# vim:ft=sh:ts=4:sw=4:et:
diff --git a/hooks/boot-usb b/hooks/boot-usb
deleted file mode 100644
index e84dd1c..0000000
--- a/hooks/boot-usb
+++ /dev/null
@@ -1,35 +0,0 @@
-run_hook ()
-{
- msg ":: Waiting for usb devices to settle..."
- /sbin/udevtrigger --subsystem-match=usb
- /sbin/udevsettle
- sleep 5
- msg ":: Scanning for boot usb device..."
-
- /bin/mkdir -p /bootmnt
- bootmnt="/bootmnt"
- found=0
-
- for usb in /dev/sd[a-z][0-9]; do
- if mount -r -t vfat "${usb}" ${bootmnt} >/dev/null 2>&1 ||\
- mount -r -t ext2 "${usb}" ${bootmnt} >/dev/null 2>&1; then
- if [ -e "${bootmnt}/archlive.sqfs" ]; then
- found=1
- msg "${usb}"
- break
- fi
- else
- echo "Failed to mount ${usb}"
- fi
- [ ${found} -eq 0 ] && umount ${bootmnt} >/dev/null 2>&1
- done
-
- if [ ${found} -eq 0 ]; then
- echo "ERROR: cannot find booted usb device, cannot continue..."
- exit 1
- else
- export BOOT_MOUNT="${bootmnt}"
- fi
-}
-
-# vim:ft=sh:ts=4:sw=4:et: