From 8966351b12bbcf2f8fffbd8c3a4b00e7529349b8 Mon Sep 17 00:00:00 2001 From: Aaron Griffin Date: Sat, 6 Sep 2008 20:39:35 -0500 Subject: Split mkarchiso and configs into logical parts Signed-off-by: Aaron Griffin --- hooks/archiso | 97 ---------------------------------------------------------- hooks/boot-cd | 37 ---------------------- hooks/boot-usb | 35 --------------------- 3 files changed, 169 deletions(-) delete mode 100644 hooks/archiso delete mode 100644 hooks/boot-cd delete mode 100644 hooks/boot-usb (limited to 'hooks') 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: -- cgit v1.2.3-70-g09d2