index : mkinitcpio-archiso32 | |
Archlinux32 initcpio scripts used by archiso | gitolite user |
summaryrefslogtreecommitdiff |
author | Aaron Griffin <aaronmgriffin@gmail.com> | 2008-09-06 20:39:35 -0500 |
---|---|---|
committer | Aaron Griffin <aaronmgriffin@gmail.com> | 2008-09-06 20:39:35 -0500 |
commit | 153550e23b76592e5bbdc1df809dcff196f42765 (patch) | |
tree | af31a5f30ce8e89bc605ce558ca8adaa7c2c4bb9 /archiso/hooks/boot-cd | |
parent | fa7257340e8b6b492420814efa520cc14c618275 (diff) |
-rw-r--r-- | archiso/hooks/boot-cd | 37 |
diff --git a/archiso/hooks/boot-cd b/archiso/hooks/boot-cd new file mode 100644 index 0000000..1670c6b --- /dev/null +++ b/archiso/hooks/boot-cd @@ -0,0 +1,37 @@ +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: |