diff options
Diffstat (limited to 'archiso/hooks/boot-usb')
-rw-r--r-- | archiso/hooks/boot-usb | 35 |
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: |