From 83aaaaebb6f77871909b37c1ef3bbdf524b65260 Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Tue, 31 May 2022 14:54:02 -0500 Subject: [PATCH] Extend boot timeouts --- modify_timeout.sh | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100755 modify_timeout.sh diff --git a/modify_timeout.sh b/modify_timeout.sh new file mode 100755 index 0000000..4d2ed82 --- /dev/null +++ b/modify_timeout.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash +set -exo pipefail + +distro="${1}" + +# Find URL +url="$(cat "${distro}" | grep url | cut -f2 -d'"')" +curl -C - -O "${url}" + +# Mount and copy +file=$(printf "${url}" | sed -E -e 's#.*/(.*)$#\1#') +old=$(mktemp -d) +new=$(mktemp -d) +sudo mount -t iso9660 -o loop "${file}" "${old}" +{ + cd "${old}" + tar -cvf - . | (cd "${new}" && tar -xf -) + cd - +} + +# Modify timeout +chmod +w "${new}/boot/grub" "${new}/boot/grub/grub.cfg" +chmod +w "${new}/isolinux" "${new}/isolinux/isolinux.cfg" +sed -i -e 's/set timeout=.*/set timeout=30/' "${new}/boot/grub/grub.cfg" +sed -i -e 's/timeout.*/timeout 300/' "${new}/isolinux/isolinux.cfg" # Uses 10ths of a second +chmod -w "${new}/boot/grub" "${new}/boot/grub/grub.cfg" +chmod -w "${new}/isolinux" "${new}/isolinux/isolinux.cfg" +cat "${new}/boot/grub/grub.cfg" + +# Create new ISO file +sudo umount "${old}" +rm "${file}" +chmod +w "${new}/isolinux/isolinux.bin" +mkisofs -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -J -R -V "Boot" -r -iso-level 4 -chrp-boot -o "${file}" "${new}" +new_sum=$(sha256sum "${file}" | cut -f1 -d' ') + +# Update distro file +sed -i "${distro}" -e "s/checksum = \".*\"/checksum = \"${new_sum}\"/" +sed -i "${distro}" -e "s/url = \".*\"/url = \"${file}\"/" +sed -i "${distro}" -e "s/boot_wait = \".*\"/boot_wait = \"15s\"/" + +# Cleanup remaining directories +rm -r "${old}" +#sudo rm -r "${new}"