AC_SUBST([LIBZFS])
AC_SUBST([LIBNVPAIR])
+AC_ARG_ENABLE([ubuntu-recovery],
+ [AS_HELP_STRING([--enable-ubuntu-recovery],
+ [adjust boot options for the Ubuntu recovery mode (default=no)])],
+ [], [enable_ubuntu_recovery=no])
+if test x"$enable_ubuntu_recovery" = xyes ; then
+ UBUNTU_RECOVERY=1
+else
+ UBUNTU_RECOVERY=0
+fi
+AC_SUBST([UBUNTU_RECOVERY])
+
LIBS=""
AC_SUBST([FONT_SOURCE])
prefix="@prefix@"
exec_prefix="@exec_prefix@"
datarootdir="@datarootdir@"
+ubuntu_recovery="@UBUNTU_RECOVERY@"
. "$pkgdatadir/grub-mkconfig_lib"
;;
esac
-: ${GRUB_CMDLINE_LINUX_RECOVERY:=single}
+if [ -x /lib/recovery-mode/recovery-menu ]; then
+ : ${GRUB_CMDLINE_LINUX_RECOVERY:=recovery}
+else
+ : ${GRUB_CMDLINE_LINUX_RECOVERY:=single}
+fi
# Default to disabling partition uuid support to maintian compatibility with
# older kernels.
title_correction_code=
+if [ "$ubuntu_recovery" = 1 ]; then
+ GRUB_CMDLINE_LINUX_RECOVERY="$GRUB_CMDLINE_LINUX_RECOVERY nomodeset"
+fi
+
linux_entry ()
{
os="$1"
if [ "x$GRUB_GFXPAYLOAD_LINUX" != xtext ]; then
echo " load_video" | sed "s/^/$submenu_indentation/"
fi
- echo " set gfxpayload=$GRUB_GFXPAYLOAD_LINUX" | sed "s/^/$submenu_indentation/"
+ if [ "$ubuntu_recovery" = 0 ] || [ x$type != xrecovery ]; then
+ echo " set gfxpayload=$GRUB_GFXPAYLOAD_LINUX" | sed "s/^/$submenu_indentation/"
+ fi
fi
echo " insmod gzio" | sed "s/^/$submenu_indentation/"
fi
onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
- recovery_params="$(echo "${LPARAMS}" | grep single)" || true
+ recovery_params="$(echo "${LPARAMS}" | grep 'single\|recovery')" || true
counter=1
while echo "$used_osprober_linux_ids" | grep 'osprober-gnulinux-$LKERNEL-${recovery_params}-$counter-$boot_device_id' > /dev/null; do
counter=$((counter+1));