summaryrefslogtreecommitdiff
path: root/boot-cd_hook
diff options
context:
space:
mode:
authorAaron Griffin <aaron@archlinux.org>2006-09-28 04:36:34 +0000
committerAaron Griffin <aaron@archlinux.org>2006-09-28 04:36:34 +0000
commit2b5cd0819fdf0d3f408f3e9d72060b90f4320c38 (patch)
treef1372a7675d1379185c83192cfcee22b03ed4799 /boot-cd_hook
parentc464db595165a847e5fc81a57133f68a9c2e0ef8 (diff)
downloadarchiso32-2b5cd0819fdf0d3f408f3e9d72060b90f4320c38.tar.xz
Broke out boot-device locator for usb and cd booting seperatly.
git-svn-id: http://phraktured.net/archiso@14 00a9fe69-e71b-0410-bb23-df0e5024db41
Diffstat (limited to 'boot-cd_hook')
-rw-r--r--boot-cd_hook30
1 files changed, 30 insertions, 0 deletions
diff --git a/boot-cd_hook b/boot-cd_hook
new file mode 100644
index 0000000..d6d9da6
--- /dev/null
+++ b/boot-cd_hook
@@ -0,0 +1,30 @@
+# vim: set ft=sh:
+run_hook ()
+{
+ msg ":: Scanning for boot cdrom device..."
+
+ /bin/mkdir -p /tmpfs/bootmnt
+ bootmnt="/tmpfs/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}/archiso.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
+}