--- trunk/grubby/new-kernel-pkg 2012/10/01 12:33:17 1937 +++ trunk/grubby/new-kernel-pkg 2013/10/21 13:22:08 2237 @@ -206,6 +206,10 @@ # get the root filesystem to use rootdevice=$(awk '{ if ($1 !~ /^[ \t]*#/ && $2 == "/") { print $1; }}' /etc/fstab) + if [[ -z $rootdevice ]] + then + rootdevice=$(grep -o -P "(?<=root=)\S+" /proc/cmdline) + fi if [[ -n ${mbkernel} ]] && [[ -n ${cfgLilo} ]] && [[ ${liloFlag} != elilo ]] then @@ -278,7 +282,7 @@ else title="Magellan Linux [ ${version} ]" fi - ${grubby} --grub2 -c ${grub2EfiConfig} \ + ${grubby} --grub2 -c ${grub2EfiConfig} --efi \ --add-kernel=${bootPrefix}/${kernelName}-${version} \ ${INITRD} --copy-default ${makedefault} --title "${title}" \ ${mbkernel:+--add-multiboot="${mbkernel}"} \ @@ -367,7 +371,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 +507,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}"} \ @@ -796,17 +800,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