mirror of
https://git.proxmox.com/git/grub2
synced 2025-12-02 03:56:10 +00:00
Generate alternative init entries in advanced menu
Add fallback boot entries for alternative installed init systems. Based on patches from Michael Biebl and Didier Roche. Bug-Debian: https://bugs.debian.org/757298 Bug-Debian: https://bugs.debian.org/773173 Forwarded: no Last-Update: 2015-01-03 Patch-Name: mkconfig_other_inits.patch
This commit is contained in:
parent
57879c9791
commit
f11cdc39e9
@ -32,6 +32,7 @@ export TEXTDOMAIN=@PACKAGE@
|
|||||||
export TEXTDOMAINDIR="@localedir@"
|
export TEXTDOMAINDIR="@localedir@"
|
||||||
|
|
||||||
CLASS="--class gnu-linux --class gnu --class os"
|
CLASS="--class gnu-linux --class gnu --class os"
|
||||||
|
SUPPORTED_INITS="sysvinit:/lib/sysvinit/init systemd:/lib/systemd/systemd upstart:/sbin/upstart"
|
||||||
|
|
||||||
if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
|
if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
|
||||||
OS=GNU/Linux
|
OS=GNU/Linux
|
||||||
@ -115,6 +116,8 @@ linux_entry ()
|
|||||||
case $type in
|
case $type in
|
||||||
recovery)
|
recovery)
|
||||||
title="$(gettext_printf "%s, with Linux %s (%s)" "${os}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" ;;
|
title="$(gettext_printf "%s, with Linux %s (%s)" "${os}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" ;;
|
||||||
|
init-*)
|
||||||
|
title="$(gettext_printf "%s, with Linux %s (%s)" "${os}" "${version}" "${type#init-}")" ;;
|
||||||
*)
|
*)
|
||||||
title="$(gettext_printf "%s, with Linux %s" "${os}" "${version}")" ;;
|
title="$(gettext_printf "%s, with Linux %s" "${os}" "${version}")" ;;
|
||||||
esac
|
esac
|
||||||
@ -340,6 +343,13 @@ while [ "x$list" != "x" ] ; do
|
|||||||
|
|
||||||
linux_entry "${OS}" "${version}" advanced \
|
linux_entry "${OS}" "${version}" advanced \
|
||||||
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
|
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
|
||||||
|
for supported_init in ${SUPPORTED_INITS}; do
|
||||||
|
init_path="${supported_init#*:}"
|
||||||
|
if [ -x "${init_path}" ] && [ "$(readlink -f /sbin/init)" != "${init_path}" ]; then
|
||||||
|
linux_entry "${OS}" "${version}" "init-${supported_init%%:*}" \
|
||||||
|
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT} init=${init_path}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
|
if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
|
||||||
linux_entry "${OS}" "${version}" recovery \
|
linux_entry "${OS}" "${version}" recovery \
|
||||||
"${GRUB_CMDLINE_LINUX_RECOVERY} ${GRUB_CMDLINE_LINUX}"
|
"${GRUB_CMDLINE_LINUX_RECOVERY} ${GRUB_CMDLINE_LINUX}"
|
||||||
|
|||||||
@ -27,6 +27,7 @@ export TEXTDOMAIN=@PACKAGE@
|
|||||||
export TEXTDOMAINDIR="@localedir@"
|
export TEXTDOMAINDIR="@localedir@"
|
||||||
|
|
||||||
CLASS="--class gnu-linux --class gnu --class os --class xen"
|
CLASS="--class gnu-linux --class gnu --class os --class xen"
|
||||||
|
SUPPORTED_INITS="sysvinit:/lib/sysvinit/init systemd:/lib/systemd/systemd upstart:/sbin/upstart"
|
||||||
|
|
||||||
if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
|
if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
|
||||||
OS=GNU/Linux
|
OS=GNU/Linux
|
||||||
@ -94,6 +95,8 @@ linux_entry ()
|
|||||||
if [ x$type != xsimple ] ; then
|
if [ x$type != xsimple ] ; then
|
||||||
if [ x$type = xrecovery ] ; then
|
if [ x$type = xrecovery ] ; then
|
||||||
title="$(gettext_printf "%s, with Xen %s and Linux %s (%s)" "${os}" "${xen_version}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")"
|
title="$(gettext_printf "%s, with Xen %s and Linux %s (%s)" "${os}" "${xen_version}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")"
|
||||||
|
elif [ "${type#init-}" != "$type" ] ; then
|
||||||
|
title="$(gettext_printf "%s, with Xen %s and Linux %s (%s)" "${os}" "${xen_version}" "${version}" "${type#init-}")"
|
||||||
else
|
else
|
||||||
title="$(gettext_printf "%s, with Xen %s and Linux %s" "${os}" "${xen_version}" "${version}")"
|
title="$(gettext_printf "%s, with Xen %s and Linux %s" "${os}" "${xen_version}" "${version}")"
|
||||||
fi
|
fi
|
||||||
@ -255,6 +258,14 @@ while [ "x${xen_list}" != "x" ] ; do
|
|||||||
|
|
||||||
linux_entry "${OS}" "${version}" "${xen_version}" advanced \
|
linux_entry "${OS}" "${version}" "${xen_version}" advanced \
|
||||||
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}"
|
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}"
|
||||||
|
for supported_init in ${SUPPORTED_INITS}; do
|
||||||
|
init_path="${supported_init#*:}"
|
||||||
|
if [ -x "${init_path}" ] && [ "$(readlink -f /sbin/init)" != "${init_path}" ]; then
|
||||||
|
linux_entry "${OS}" "${version}" "${xen_version}" "init-${supported_init%%:*}" \
|
||||||
|
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT} init=${init_path}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}"
|
||||||
|
|
||||||
|
fi
|
||||||
|
done
|
||||||
if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
|
if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
|
||||||
linux_entry "${OS}" "${version}" "${xen_version}" recovery \
|
linux_entry "${OS}" "${version}" "${xen_version}" recovery \
|
||||||
"single ${GRUB_CMDLINE_LINUX}" "${GRUB_CMDLINE_XEN}"
|
"single ${GRUB_CMDLINE_LINUX}" "${GRUB_CMDLINE_XEN}"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user