88 lines
2.5 KiB
Bash
88 lines
2.5 KiB
Bash
#!/bin/sh
|
|
set -e
|
|
|
|
case `dpkg --print-architecture` in
|
|
kfreebsd-*)
|
|
# No migration from GRUB Legacy, no Linux cmdline
|
|
exit 0
|
|
;;
|
|
esac
|
|
|
|
. /usr/share/debconf/confmodule
|
|
|
|
priority=medium
|
|
|
|
case @PACKAGE@ in
|
|
grub-pc)
|
|
if test -e /boot/grub/stage2 && test -e /boot/grub/menu.lst && ! test -e /boot/grub/core.img ; then
|
|
|
|
db_input high grub-pc/chainload_from_menu.lst || true
|
|
|
|
db_get grub-pc/kopt_extracted || true
|
|
# this check ensures we only do this once
|
|
if [ "$RET" = "false" ] ; then
|
|
kopt=`sed -ne "s/^# kopt=//p" /boot/grub/menu.lst | tr -s " " "\n" | grep -vx "\(ro\|root=[^ ]*\)" | paste -s -d ' '` || true
|
|
db_set grub2/linux_cmdline "${kopt}" || true
|
|
db_set grub-pc/kopt_extracted true || true
|
|
if [ "${kopt}" = "" ] ; then
|
|
# something smells bad. give user a chance to correct it.
|
|
priority=high
|
|
else
|
|
# if we got something from menu.lst, it must be correct?
|
|
priority=medium
|
|
fi
|
|
timeout=`sed -ne "s/^timeout[[:space:]][[:space:]]*//p" /boot/grub/menu.lst` || true
|
|
if [ "${timeout}" != "" ]; then
|
|
db_set grub-pc/timeout "${timeout}" || true
|
|
fi
|
|
if grep -q '^hiddenmenu\([[:space:]]\|$\)' /boot/grub/menu.lst; then
|
|
db_set grub-pc/hidden_timeout true || true
|
|
else
|
|
db_set grub-pc/hidden_timeout false || true
|
|
fi
|
|
fi
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
# This deliberately doesn't include /etc/default/grub.d/*.cfg, since we're
|
|
# only sourcing this configuration file in order to prompt for values to
|
|
# write back to /etc/default/grub.
|
|
if [ -e /etc/default/grub ]; then
|
|
. /etc/default/grub
|
|
fi
|
|
|
|
if [ "${GRUB_CMDLINE_LINUX+set}" = set ]; then
|
|
db_set grub2/linux_cmdline "$GRUB_CMDLINE_LINUX"
|
|
fi
|
|
if [ "${GRUB_CMDLINE_LINUX_DEFAULT+set}" = set ]; then
|
|
db_set grub2/linux_cmdline_default "$GRUB_CMDLINE_LINUX_DEFAULT"
|
|
fi
|
|
|
|
case @PACKAGE@ in
|
|
grub-pc)
|
|
if [ "${GRUB_TIMEOUT}" != "" ]; then
|
|
db_set grub-pc/timeout "$GRUB_TIMEOUT"
|
|
fi
|
|
if [ "${GRUB_HIDDEN_TIMEOUT}" != "" ]; then
|
|
db_set grub-pc/hidden_timeout true
|
|
elif egrep -qs '^#?[[:space:]]*GRUB_HIDDEN_TIMEOUT=' /etc/default/grub; then
|
|
db_set grub-pc/hidden_timeout false
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
db_input ${priority} grub2/linux_cmdline || true
|
|
db_input medium grub2/linux_cmdline_default || true
|
|
case @PACKAGE@ in
|
|
grub-*efi*)
|
|
db_input low grub2/force_efi_extra_removable || true
|
|
;;
|
|
esac
|
|
case @PACKAGE@ in
|
|
grub-*efi*|grub-ieee1275)
|
|
db_input low grub2/update_nvram || true
|
|
;;
|
|
esac
|
|
db_go
|