--- trunk/grubby/new-kernel-pkg 2012/10/01 12:39:50 1940 +++ trunk/grubby/new-kernel-pkg 2013/10/21 13:35:28 2240 @@ -205,7 +205,11 @@ fi # get the root filesystem to use - rootdevice=$(awk '{ if ($1 !~ /^[ \t]*#/ && $2 == "/") { print $1; }}' /etc/fstab) + rootdevice=$(awk '{ if ($1 !~ /^[ \t]*#/ && $2 == "/") { print $1; }}' /etc/fstab 2>/dev/null) + if [[ -z $rootdevice ]] + then + rootdevice=$(grep -o -P "(?<=root=)\S+" /proc/cmdline) + fi if [[ -n ${mbkernel} ]] && [[ -n ${cfgLilo} ]] && [[ ${liloFlag} != elilo ]] then @@ -213,22 +217,23 @@ cfgLilo="" fi + if [[ -n ${banner} ]] + then + title="${banner} [ ${version} ]" + elif [[ $(read_os_release id) = magellan ]] + then + title="$(read_os_release name) $(read_os_release version_id) [ ${version} ]" + elif [ -f /etc/mageversion ] + then + title="Magellan Linux $(< /etc/mageversion) [ ${version} ]" + else + title="Magellan Linux [ ${version} ]" + fi + if [[ -n ${cfgGrub} ]] then [[ -n ${verbose} ]] && echo "adding ${version} to ${grubConfig}" - if [[ -n ${banner} ]] - then - title="${banner} [ ${version} ]" - elif [ -f /etc/mageversion ] - then - title="Magellan Linux $(< /etc/mageversion) [ ${version} ]" - elif [[ $(read_os_release id) = magellan ]] - then - title="$(read_os_release name) $(read_os_release version_id) [ ${version} ]" - else - title="Magellan Linux [ ${version} ]" - fi ${grubby} --grub -c ${grubConfig} \ --add-kernel=${bootPrefix}/${kernelName}-${version} \ ${INITRD} --copy-default ${makedefault} --title "${title}" \ @@ -241,18 +246,6 @@ then [[ -n ${verbose} ]] && echo "adding ${version} to ${grub2Config}" - if [[ -n ${banner} ]] - then - title="${banner} [ ${version} ]" - elif [ -f /etc/mageversion ] - then - title="Magellan Linux $(< /etc/mageversion) [ ${version} ]" - elif [[ $(read_os_release id) = magellan ]] - then - title="$(read_os_release name) $(read_os_release version_id) [ ${version} ]" - else - title="Magellan Linux [ ${version} ]" - fi ${grubby} --grub2 -c ${grub2Config} \ --add-kernel=${bootPrefix}/${kernelName}-${version} \ ${INITRD} --copy-default ${makedefault} --title "${title}" \ @@ -266,18 +259,6 @@ then [[ -n ${verbose} ]] && echo "adding ${version} to ${grub2EfiConfig}" - if [[ -n ${banner} ]] - then - title="${banner} [ ${version} ]" - elif [ -f /etc/mageversion ] - then - title="Magellan Linux $(< /etc/mageversion) [ ${version} ]" - elif [[ $(read_os_release id) = magellan ]] - then - title="$(read_os_release name) $(read_os_release version_id) [ ${version} ]" - else - title="Magellan Linux [ ${version} ]" - fi ${grubby} --grub2 -c ${grub2EfiConfig} --efi \ --add-kernel=${bootPrefix}/${kernelName}-${version} \ ${INITRD} --copy-default ${makedefault} --title "${title}" \ @@ -316,18 +297,6 @@ then [[ -n ${verbose} ]] && echo "adding ${version} to ${extlinuxConfig}" - if [[ -n ${banner} ]] - then - title="${banner} [ ${version} ]" - elif [ -f /etc/mageversion ] - then - title="Magellan Linux $(< /etc/mageversion) [ ${version} ]" - elif [[ $(read_os_release id) = magellan ]] - then - title="$(read_os_release name) $(read_os_release version_id) [ ${version} ]" - else - title="Magellan Linux [ ${version} ]" - fi ${grubby} --extlinux -c ${extlinuxConfig} \ --add-kernel=${bootPrefix}/${kernelName}-${version} \ ${INITRD} --copy-default ${makedefault} --title "${title}" \ @@ -367,7 +336,7 @@ if [[ -n ${cfgGrub2Efi} ]] then [[ -n ${verbose} ]] && echo "removing ${version} from ${grub2EfiConfig}" - ${grubby} --grub2 -c ${grub2EfiConfig} \ + ${grubby} --grub2 -c ${grub2EfiConfig} --efi \ --remove-kernel=${bootPrefix}/${kernelName}-${version} else [[ -n ${verbose} ]] && echo "${grub2EfiConfig} does not exist, not running grubby grub 2 with UEFI" @@ -503,7 +472,7 @@ if [[ -n ${cfgGrub2Efi} ]] then [[ -n ${verbose} ]] && echo "updating ${version} from ${grub2EfiConfig}" - ${grubby} --grub2 -c ${grub2EfiConfig} \ + ${grubby} --grub2 -c ${grub2EfiConfig} --efi \ --update-kernel=${bootPrefix}/${kernelName}-${version} \ ${INITRD} \ ${kernargs:+--args="${kernargs}"} \ @@ -638,9 +607,9 @@ ;; --initrdfile*) - if echo $1 | grep '=' >/dev/null + if [[ $1 == --initrdfile\=* ]] then - initrdfile=$(echo $1 | sed 's/^--initrdfile=//') + initrdfile=${1#--initrdfile=} else initrdfile=$2 shift @@ -648,9 +617,9 @@ ;; --kernel-args*) - if echo $1 | grep '=' >/dev/null + if [[ $1 == --kernel-args\=* ]] then - kernargs=$(echo $1 | sed 's/^--kernel-args=//') + kernargs=${1#--kernel-args=} else kernargs=$2 shift @@ -658,9 +627,9 @@ ;; --remove-args*) - if echo $1 | grep '=' >/dev/null + if [[ $1 == --remove-args\=* ]] then - removeargs=$(echo $1 | sed 's/^--remove-args=//') + removeargs=${1#--remove-args=} else removeargs=$2 shift @@ -668,9 +637,9 @@ ;; --banner*) - if echo $1 | grep '=' >/dev/null + if [[ $1 == --banner\=* ]] then - banner=$(echo $1 | sed 's/^--banner=//') + banner=${1#--banner=} else banner=$2 shift @@ -678,9 +647,9 @@ ;; --multiboot*) - if echo $1 |grep '=' >/dev/null + if [[ $1 == --multiboot\=* ]] then - mbkernel=$(echo $1 | sed 's/^--multiboot=//') + mbkernel=${1#--multiboot=} else # can't really support having an optional second arg here # sorry! @@ -689,9 +658,9 @@ ;; --mbargs*) - if echo $1 |grep '=' >/dev/null + if [[ $1 == --mbargs\=* ]] then - mbargs=$(echo $1 | sed 's/^--mbargs=//') + mbargs=${1#--mbargs=} else mbargs="$2" shift @@ -710,10 +679,10 @@ makedefault="--make-default" ;; - --package) - if echo $1 | grep '=' >/dev/null + --package*) + if [[ $1 == --package\=* ]] then - package=$(echo $1 | sed 's/^--package=//') + package=${1#--package=} else package=$2 shift @@ -796,17 +765,45 @@ # add dracut i18n, keyboard and plymouth kernel args if requested if [[ -n ${dracut} ]] || [[ -n ${adddracutargs} ]] then - [ -r /etc/conf.d/keymap ] && . /etc/conf.d/keymap - [ -r /etc/conf.d/consolefont ] && . /etc/conf.d/consolefont - - if [[ -n ${KEYMAP} ]] + if [ -r /etc/vconsole.conf ] then - kernargs="${kernargs} KEYTABLE=${KEYMAP}" + . /etc/vconsole.conf + + for i in SYSFONT SYSFONTACM UNIMAP KEYTABLE + do + val=$(eval echo \$$i) + [[ -n ${val} ]] && kernargs="${kernargs} ${i}=${val}" + done + else + if [ -r /etc/conf.d/consolefont ] + then + . /etc/conf.d/consolefont + + if [[ -n ${CONSOLEFONT} ]] + then + kernargs="${kernargs} SYSFONT=${CONSOLEFONT}" + fi + fi + + if [ -r /etc/conf.d/keymap ] + then + . /etc/conf.d/keymap + + if [[ -n ${KEYMAP} ]] + then + kernargs="${kernargs} KEYTABLE=${KEYMAP}" + fi + fi fi - if [[ -n ${CONSOLEFONT} ]] + if [ -r /etc/locale.conf ] then - kernargs="${kernargs} SYSFONT=${CONSOLEFONT}" + . /etc/locale.conf + + if [[ -n ${LANG} ]] + then + kernargs="${kernargs} LANG=${LANG}" + fi fi fi