summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Griffin <aaronmgriffin@gmail.com>2008-09-06 21:06:39 -0500
committerAaron Griffin <aaronmgriffin@gmail.com>2008-09-06 21:06:39 -0500
commit9417199206e59c2015ba764e66a4b536b95629f5 (patch)
treef043d0f9740cb59689d93f26b51830ac384f4ca1
parent98318ea039c39bff953c6b83010e48791ee6d286 (diff)
Unify initcpio hooks to one glorious archiso hook
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
-rw-r--r--archiso/hooks/archiso53
-rw-r--r--archiso/hooks/boot-cd37
-rw-r--r--archiso/hooks/boot-usb35
-rw-r--r--archiso/install/archiso7
-rw-r--r--archiso/install/boot-cd17
-rw-r--r--archiso/install/boot-usb16
6 files changed, 55 insertions, 110 deletions
diff --git a/archiso/hooks/archiso b/archiso/hooks/archiso
index 376593b..1464a6a 100644
--- a/archiso/hooks/archiso
+++ b/archiso/hooks/archiso
@@ -31,13 +31,56 @@ run_hook ()
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"
+ # 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 device..."
+
+ /bin/mkdir -p /bootmnt
+ bootmnt="/bootmnt"
+ found=0
+
+ /bin/modprobe -q isofs >/dev/null 2>&1
+ msg ":: Scanning cd drives..."
+ 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
+ msg ":: Scanning usb drives..."
+ 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
+ fi
+
+ if [ ${found} -eq 0 ]; then
+ echo "ERROR: cannot find boot device, cannot continue..."
exit 1
fi
- base_img="${BOOT_MOUNT}/archlive.sqfs"
+ base_img="${bootmnt}/archlive.sqfs"
if [ "${copytoram}" = "y" ]; then
msg ":: Copying squashfs image to RAM"
/bin/cat ${base_img} > /tmpfs/archlive.sqfs
@@ -52,7 +95,7 @@ run_hook ()
/bin/mount -t unionfs -o dirs=/tmpfs=rw none /real_root
export LOOP_NUM="0"
- addon_dir="${BOOT_MOUNT}/addons"
+ addon_dir="${bootmnt}/addons"
# always layer default configuration
_mnt_squashfs "${addon_dir}/overlay.sqfs"
diff --git a/archiso/hooks/boot-cd b/archiso/hooks/boot-cd
deleted file mode 100644
index 1670c6b..0000000
--- a/archiso/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/archiso/hooks/boot-usb b/archiso/hooks/boot-usb
deleted file mode 100644
index e84dd1c..0000000
--- a/archiso/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:
diff --git a/archiso/install/archiso b/archiso/install/archiso
index 7b58831..1ec09ed 100644
--- a/archiso/install/archiso
+++ b/archiso/install/archiso
@@ -1,10 +1,17 @@
install ()
{
MODULES="cdrom ide-cd_mod ide-core ide-generic unionfs squashfs isofs loop $(all_modules '/kernel/fs' | grep -v "nls") "
+ MODULES="${MODULES} $(checked_modules "/usb/host" | grep -ve "_cs" -e "sl1811-hcd" -e "isp116x-hcd")"
+ MODULES=$(echo ${MODULES}) #trim whitespace
+ if [ "x${MODULES}" != "x" ]; then
+ MODULES="${MODULES} usb_storage sd_mod sr_mod"
+ fi
+
BINARIES=""
FILES=""
add_dir /real_root
add_dir /tmpfs
+ add_dir /bootmnt
SCRIPT="archiso"
}
diff --git a/archiso/install/boot-cd b/archiso/install/boot-cd
deleted file mode 100644
index 2d96869..0000000
--- a/archiso/install/boot-cd
+++ /dev/null
@@ -1,17 +0,0 @@
-install ()
-{
- MODULES="cdrom ide-cd_mod ide-core ide-generic unionfs squashfs isofs $(all_modules '/kernel/fs' | grep -v "nls") "
-
- # need usb modules for external drives
- MODULES="${MODULES} $(checked_modules "/usb/host" | grep -ve "_cs" -e "sl1811-hcd" -e "isp116x-hcd")"
- MODULES=$(echo ${MODULES}) #trim whitespace
- if [ "x${MODULES}" != "x" ]; then
- MODULES="${MODULES} usb_storage sd_mod sr_mod"
- fi
-
- BINARIES=""
- FILES=""
- SCRIPT="boot-cd"
-}
-
-# vim:ft=sh:ts=4:sw=4:et:
diff --git a/archiso/install/boot-usb b/archiso/install/boot-usb
deleted file mode 100644
index 32d451f..0000000
--- a/archiso/install/boot-usb
+++ /dev/null
@@ -1,16 +0,0 @@
-install ()
-{
- MODULES="cdrom ide-cd_mod ide-core ide-generic unionfs squashfs $(all_modules '/kernel/fs' | grep -v "nls") "
-
- MODULES="${MODULES} $(checked_modules "/usb/host" | grep -ve "_cs" -e "sl1811-hcd" -e "isp116x-hcd")"
-
- MODULES=$(echo ${MODULES}) #trim whitespace
- if [ "x${MODULES}" != "x" ]; then
- MODULES="${MODULES} usb_storage sd_mod sr_mod"
- fi
- BINARIES=""
- FILES=""
- SCRIPT="boot-usb"
-}
-
-# vim:ft=sh:ts=4:sw=4:et: