#!/bin/sh find_grub_probe_path() { if which grub-probe >/dev/null 2>&1; then which grub-probe elif which grub2-probe >/dev/null 2>&1; then which grub2-probe else echo "XXX" fi } find_grub_mkconfig_path() { if which grub-mkconfig >/dev/null 2>&1; then which grub-mkconfig elif which grub2-mkconfig >/dev/null 2>&1; then which grub2-mkconfig else echo "XXX" fi } find_grub_config_path() { for i in grub.cfg grub2.cfg grub-efi.cfg grub2-efi.cfg; do if readlink -f -e /etc/$i > /dev/null; then cfgfile=$(readlink -f -e /etc/$i) echo $cfgfile return fi done for t in /boot/grub/grub.cfg /boot/grub2/grub.cfg; do if grep -q 'BEGIN' $t 2>/dev/null; then echo $t return fi done echo "xx" } update_grub_config() { GRUB_UPDATE="" if update-grub -V > /dev/null 2>&1; then GRUB_UPDATE=update-grub elif update-grub2 -V > /dev/null 2>&1; then GRUB_UPDATE=update-grub2 else vgrubcfg=$(find_grub_config_path) mkconfig=$(find_grub_mkconfig_path) if [ -f $mkconfig -a -f $vgrubcfg ]; then GRUB_UPDATE="$mkconfig -o $vgrubcfg" else echo "no grub.cfg found." return fi fi if [ -n "$GRUB_UPDATE" ]; then echo "update grub config $GRUB_UPDATE" $GRUB_UPDATE fi } USER=$(whoami) if [ "$USER" != "root" ]; then echo "Please run this script as root or use sudo" echo "" exit 1 fi update_grub_config