forked from switnet/quick-jibri-installer
				
			Add tool for grub setup.
This commit is contained in:
		
							parent
							
								
									44e9a98b76
								
							
						
					
					
						commit
						14fceeec6b
					
				| 
						 | 
					@ -0,0 +1,63 @@
 | 
				
			||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					# Automated AWS generic kernel setup for jibri.
 | 
				
			||||||
 | 
					# SwITNet Ltd © - 2022, https://switnet.net/
 | 
				
			||||||
 | 
					# GPLv3 or later.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					####
 | 
				
			||||||
 | 
					# NOTE: Only use this script if you know what you are doing.
 | 
				
			||||||
 | 
					# Under your own risk.
 | 
				
			||||||
 | 
					# This program is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					# but WITHOUT ANY WARRANTY.
 | 
				
			||||||
 | 
					####
 | 
				
			||||||
 | 
					wait_seconds() {
 | 
				
			||||||
 | 
					secs=$(($1))
 | 
				
			||||||
 | 
					while [ $secs -gt 0 ]; do
 | 
				
			||||||
 | 
					   echo -ne "$secs\033[0K\r"
 | 
				
			||||||
 | 
					   sleep 1
 | 
				
			||||||
 | 
					   : $((secs--))
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TMP_DIR="$(mktemp -d)"
 | 
				
			||||||
 | 
					KERNEL_LOG="$TMP_DIR/kernel_log"
 | 
				
			||||||
 | 
					GRUB_FILE="/etc/default/grub"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo "# Check and update HWE kernel if possible..."
 | 
				
			||||||
 | 
					apt-get -q2 update
 | 
				
			||||||
 | 
					HWE_VIR_MOD=$(apt-cache madison linux-image-generic-hwe-$(lsb_release -sr) 2>/dev/null|head -n1|grep -c "hwe-$(lsb_release -sr)")
 | 
				
			||||||
 | 
					if [ "$HWE_VIR_MOD" = "1" ]; then
 | 
				
			||||||
 | 
					    apt-get -y install \
 | 
				
			||||||
 | 
					    linux-image-generic-hwe-$(lsb_release -sr) \
 | 
				
			||||||
 | 
					    linux-tools-generic-hwe-$(lsb_release -sr)
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    apt-get -y install \
 | 
				
			||||||
 | 
					    linux-image-generic \
 | 
				
			||||||
 | 
					    linux-modules-extra-$(uname -r)
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					apt-get -y autoremove
 | 
				
			||||||
 | 
					apt-get autoclean
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#Write update-grub output
 | 
				
			||||||
 | 
					update-grub > $KERNEL_LOG 2>&1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#Get clean output
 | 
				
			||||||
 | 
					cat $KERNEL_LOG | awk -F'boot/' '{print$2}'|sed '/^[[:space:]]*$/d' | \
 | 
				
			||||||
 | 
					tee ${KERNEL_LOG}.tmp
 | 
				
			||||||
 | 
					mv ${KERNEL_LOG}.tmp $KERNEL_LOG
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo "Check if AWS kernel is installed."
 | 
				
			||||||
 | 
					[ $(grep -wc aws $KERNEL_LOG) = 0 ] && echo "No AWS kernel found, exiting..." && exit
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#Get kernel number
 | 
				
			||||||
 | 
					RAW_KERNEL_NUM="$(grep -Fn generic $KERNEL_LOG|head -n1|cut -d ':' -f1)"
 | 
				
			||||||
 | 
					FIXED_KERNEL_NUM="$(awk "BEGIN{ print $RAW_KERNEL_NUM - 1 }")"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#Set up grub kernel number.
 | 
				
			||||||
 | 
					sed -i "s|GRUB_DEFAULT=.*|GRUB_DEFAULT=\"1\>$FIXED_KERNEL_NUM\"|" $GRUB_FILE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					update-grub
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo "Time to reboot..."
 | 
				
			||||||
 | 
					echo "Rebooting in..."
 | 
				
			||||||
 | 
					wait_seconds 15
 | 
				
			||||||
 | 
					reboot
 | 
				
			||||||
		Loading…
	
		Reference in New Issue