Unify initcpio hooks to one glorious archiso hook
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
This commit is contained in:
parent
98318ea039
commit
9417199206
6 changed files with 55 additions and 110 deletions
|
@ -31,13 +31,56 @@ run_hook ()
|
||||||
mount -t tmpfs -o "size=${ramdisk_size}" tmpfs /tmpfs
|
mount -t tmpfs -o "size=${ramdisk_size}" tmpfs /tmpfs
|
||||||
msg "done."
|
msg "done."
|
||||||
|
|
||||||
if [ "x${BOOT_MOUNT}" = "x" ]; then
|
# external drives may need to settle
|
||||||
echo "ERROR: BOOT_MOUNT is not set. The boot-cd or boot-usb hook MUST"
|
msg ":: Waiting for usb devices to settle..."
|
||||||
echo " be run before this one. This image was improperly built"
|
/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
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
base_img="${BOOT_MOUNT}/archlive.sqfs"
|
base_img="${bootmnt}/archlive.sqfs"
|
||||||
if [ "${copytoram}" = "y" ]; then
|
if [ "${copytoram}" = "y" ]; then
|
||||||
msg ":: Copying squashfs image to RAM"
|
msg ":: Copying squashfs image to RAM"
|
||||||
/bin/cat ${base_img} > /tmpfs/archlive.sqfs
|
/bin/cat ${base_img} > /tmpfs/archlive.sqfs
|
||||||
|
@ -52,7 +95,7 @@ run_hook ()
|
||||||
/bin/mount -t unionfs -o dirs=/tmpfs=rw none /real_root
|
/bin/mount -t unionfs -o dirs=/tmpfs=rw none /real_root
|
||||||
|
|
||||||
export LOOP_NUM="0"
|
export LOOP_NUM="0"
|
||||||
addon_dir="${BOOT_MOUNT}/addons"
|
addon_dir="${bootmnt}/addons"
|
||||||
|
|
||||||
# always layer default configuration
|
# always layer default configuration
|
||||||
_mnt_squashfs "${addon_dir}/overlay.sqfs"
|
_mnt_squashfs "${addon_dir}/overlay.sqfs"
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
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:
|
|
|
@ -1,35 +0,0 @@
|
||||||
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:
|
|
|
@ -1,10 +1,17 @@
|
||||||
install ()
|
install ()
|
||||||
{
|
{
|
||||||
MODULES="cdrom ide-cd_mod ide-core ide-generic unionfs squashfs isofs loop $(all_modules '/kernel/fs' | grep -v "nls") "
|
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=""
|
BINARIES=""
|
||||||
FILES=""
|
FILES=""
|
||||||
add_dir /real_root
|
add_dir /real_root
|
||||||
add_dir /tmpfs
|
add_dir /tmpfs
|
||||||
|
add_dir /bootmnt
|
||||||
SCRIPT="archiso"
|
SCRIPT="archiso"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
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:
|
|
|
@ -1,16 +0,0 @@
|
||||||
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:
|
|
Loading…
Add table
Reference in a new issue