summaryrefslogtreecommitdiff
path: root/archiso/hooks/boot-usb
diff options
context:
space:
mode:
Diffstat (limited to 'archiso/hooks/boot-usb')
-rw-r--r--archiso/hooks/boot-usb35
1 files changed, 35 insertions, 0 deletions
diff --git a/archiso/hooks/boot-usb b/archiso/hooks/boot-usb
new file mode 100644
index 0000000..e84dd1c
--- /dev/null
+++ b/archiso/hooks/boot-usb
@@ -0,0 +1,35 @@
+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: