Commit 94171992 authored by Aaron Griffin's avatar Aaron Griffin
Browse files

Unify initcpio hooks to one glorious archiso hook


Signed-off-by: default avatarAaron Griffin <aaronmgriffin@gmail.com>
parent 98318ea0
......@@ -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"
......
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:
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:
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"
}
......
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:
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:
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment