This version (2022/06/20 09:01) was approved by msiegel.

This is an old revision of the document!


y –update-kernel=$bootPrefix/$kernelName-$version \

    $INITRD \
    ${kernargs:+--args="$kernargs"} \
    ${removeargs:+--remove-args="$removeargs"}	\
	     --$liloFlag
if [ -n "$runLilo" ]; then 
    [ -n "$verbose" ] && echo "running $lilo"
    if [ ! -x $lilo ] ; then
	[ -n "$verbose" ] && echo "$lilo does not exist"
    else
	$lilo > /dev/null
    fi
fi
  else
[ -n "$verbose" ] && echo "$liloConfig does not exist, not running grubby"
  fi

}

mkinitrd() {

  if [ -n "$dracut" ]; then
      tool="/sbin/dracut $dracuthostonly -f $initrdfile $version"
  else
tool="/sbin/mkinitrd --allow-missing -f $initrdfile $version"
  fi
  [ -n "$verbose" ] && echo "creating initrd: $tool"
  $tool
  rc=$?
  if [ $rc != 0 ]; then
echo "mkinitrd failed" >&2
exit 1
  fi

}

rminitrd() {

  [ -n "$verbose" ] && echo "removing initrd $initrdfile"
  [ -f $initrdfile ] && rm -f $initrdfile

}

doDepmod() {

  [ -n "$verbose" ] && echo "running depmod for $version"
  depmod -ae -F /boot/System.map-$version $version

}

doRmmoddep() {

  [ -n "$verbose" ] && echo "removing modules.dep info for $version"
  [ -d /lib/modules/$version ] && rm -f /lib/modules/$version/modules.*    

}

while [ $# -gt 0 ]; do

  case $1 in
--mkinitrd)
    initrd="make"
    ;;
  1. -rminitrd)

initrd=“remove”

    ;;
  1. -dracut)

dracut=–dracut

    ;;
  1. -host-only)

dracuthostonly=-H

    ;;
  1. -initrdfile*)

if echo $1 | grep '=' >/dev/null ; then

    	initrdfile=`echo $1 | sed 's/^--initrdfile=//'`
    else
	initrdfile=$2
	shift
    fi		    
    ;;
  1. -kernel-args*)

if echo $1 | grep '=' >/dev/null ; then

    	kernargs=`echo $1 | sed 's/^--kernel-args=//'`
    else
	kernargs=$2
	shift
    fi		    
    ;;
  1. -remove-args*)

if echo $1 | grep '=' >/dev/null ; then

    	removeargs=`echo $1 | sed 's/^--remove-args=//'`
    else
	removeargs=$2
	shift
    fi		    
    ;;
  1. -banner*)

if echo $1 | grep '=' >/dev/null ; then

    	banner=`echo $1 | sed 's/^--banner=//'`
    else
	banner=$2
	shift
    fi		    
    ;;
  1. -multiboot*)

if echo $1 |grep '=' >/dev/null; then

	mbkernel=`echo $1 | sed 's/^--multiboot=//'`
    else
	# can't really support having an optional second arg here
	# sorry!
	mbkernel="/boot/xen.gz"
    fi
    ;;
  1. -mbargs*)

if echo $1 |grep '=' >/dev/null; then

	mbargs=`echo $1 | sed 's/^--mbargs=//'`
    else
	mbargs="$2"
	shift
    fi
    ;;
  1. -depmod)

moddep=“make”

    ;;
  1. -rmmoddep)

moddep=“remove”

    ;;
  1. -make-default)

makedefault=“–make-default”

    ;;
  1. -package)

if echo $1 | grep '=' >/dev/null ; then

    	package=`echo $1 | sed 's/^--package=//'`
    else
	package=$2
	shift
    fi		    
    ;;
  1. -add-dracut-args)

adddracutargs=–add-dracut-args

    ;;
  1. -add-plymouth-initrd)

addplymouthinitrd=–add-plymouth-initrd

    ;;
  1. v)

verbose=-v

    ;;
  • )

if [ -z “$mode” ]; then

	mode=$1
    elif [ -z "$version" ]; then
	version=$1
    else
	usage
    fi
    ;;
  esac
  shift

done

# make sure the mode is valid if [ “$mode" != "--install" -a "$mode” != “–remove” -a “$mode" != "--update" -a "$mode” != “–rpmposttrans” ] ; then

  usage

fi

if [ -z “$version” ]; then

  usage

fi

if [ “$mode" != "--install" -a "$makedefault” ]; then

  usage

fi

kernelmajor=`echo $kernel | cut -d . -f 1,2`

# kernel image for 2.4 is vmlinux if [ $ARCH = 'ppc64' -o $ARCH = 'ppc' ]; then

if [ "$kernelmajor" == "2.4" ]; then
    kernelName=vmlinux
fi

fi

# set the initrd file based on arch; ia64 is the only currently known oddball if [ -z “$initrdfile” ]; then

  INITRD_NAME_PREFIX="initrd"
  if [ -n "$dracut" ]; then
INITRD_NAME_PREFIX="initramfs"
  fi
  if [ `uname -m` = "ia64" ]; then
initrdfile="/boot/efi/EFI/redhat/$INITRD_NAME_PREFIX-$version.img"
  else
initrdfile="/boot/$INITRD_NAME_PREFIX-$version.img"
  fi

fi [ -n “$verbose" ] && echo "initrdfile is $initrdfile”

# add dracut i18n, keyboard and plymouth kernel args if requested if [ -n “$dracut" -o -n "$adddracutargs” ]; then

  [ -r /etc/sysconfig/keyboard ] && . /etc/sysconfig/keyboard 
  [ -r /etc/sysconfig/i18n ] && . /etc/sysconfig/i18n
  for i in SYSFONT SYSFONTACM UNIMAP LANG KEYTABLE; do
      val=$(eval echo \$$i)
      [ -n "$val" ] && kernargs="$kernargs $i=$val"
  done
  if [ -n "$KEYBOARDTYPE" -a "$KEYBOARDTYPE" != "pc" ]; then
       kernargs="$kernargs KEYBOARDTYPE=$KEYBOARDTYPE"
  fi

fi

# set this as the default if we have the package and it matches if [ “$mode" == "--install" -a "$UPDATEDEFAULT” == “yes” -a -n “$package" -a -n "$DEFAULTKERNEL” -a “$package" == "$DEFAULTKERNEL” ]; then

  makedefault="--make-default"
  [ -n "$verbose" ] && echo "making it the default based on config"

fi

if [ “$moddep” == “make” ]; then

  doDepmod

elif [ “$moddep” == “remove” ]; then

  doRmmoddep

fi

if [ “$initrd” == “make” ]; then

  mkinitrd

elif [ “$initrd” == “remove” ]; then

  rminitrd

fi

if [ ! -x $grubby ] ; then

  [ -n "$verbose" ] && echo "$grubby does not exist"
  exit 0

fi

[ -n “$grubConfig" ] && [ -f "$grubConfig” ] && cfgGrub=1; [ -n “$liloConfig" ] && [ -f "$liloConfig” ] && cfgLilo=1;

# if we have a lilo config on an x86 box, see if the default boot loader # is lilo to determine if it should be run if [ -n “$cfgLilo" -a -n "$isx86” ]; then

  runLilo=$($grubby --bootloader-probe | grep lilo)

fi

if [ “$mode” == “–install” ]; then

  install

elif [ “$mode” == “–remove” ]; then

  remove

elif [ “$mode” == “–update” ]; then

  update

elif [ “$mode” == “–rpmposttrans” ]; then

  rpmposttrans

fi

exit 0

  • doku/advanced_sge.1421920647.txt.gz
  • Last modified: 2024/10/24 10:21
  • (external edit)