grub-luks2-improved-stable/archlinux_grub_mkconfig_fixes.patch

144 lines
4.9 KiB
Diff
Raw Normal View History

2012-06-28 19:51:38 +02:00
diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in
index 516be86..5f37db2 100644
--- a/util/grub-mkconfig.in
+++ b/util/grub-mkconfig.in
@@ -213,6 +213,8 @@ export GRUB_DEFAULT \
GRUB_THEME \
GRUB_GFXPAYLOAD_LINUX \
GRUB_DISABLE_OS_PROBER \
+ GRUB_COLOR_NORMAL \
+ GRUB_COLOR_HIGHLIGHT \
GRUB_INIT_TUNE \
GRUB_SAVEDEFAULT \
GRUB_ENABLE_CRYPTODISK \
diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in
index 765bfdc..b148558 100644
--- a/util/grub.d/00_header.in
+++ b/util/grub.d/00_header.in
@@ -115,6 +115,14 @@ cat <<EOF
EOF
+if [ x$GRUB_COLOR_NORMAL != x ] && [ x$GRUB_COLOR_HIGHLIGHT != x ] ; then
+ cat << EOF
+set menu_color_normal=$GRUB_COLOR_NORMAL
+set menu_color_highlight=$GRUB_COLOR_HIGHLIGHT
+
+EOF
+fi
+
serial=0;
gfxterm=0;
for x in ${GRUB_TERMINAL_INPUT} ${GRUB_TERMINAL_OUTPUT}; do
diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
index 14402e8..64c9bb5 100644
--- a/util/grub.d/10_linux.in
+++ b/util/grub.d/10_linux.in
@@ -87,6 +87,8 @@ linux_entry ()
case $type in
recovery)
title="$(gettext_printf "%s, with Linux %s (recovery mode)" "${os}" "${version}")" ;;
+ fallback)
+ title="$(gettext_printf "%s, with Linux %s (Fallback initramfs)" "${os}" "${version}")" ;;
*)
title="$(gettext_printf "%s, with Linux %s" "${os}" "${version}")" ;;
esac
@@ -100,7 +102,7 @@ linux_entry ()
else
echo "menuentry '$(echo "$os" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
fi
- if [ x$type != xrecovery ] ; then
+ if [ x$type != xrecovery ] && [ x$type != xfallback ] ; then
save_default_entry | sed -e "s/^/\t/"
fi
@@ -132,7 +134,8 @@ linux_entry ()
fi
printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/"
fi
- message="$(gettext_printf "Loading Linux %s ..." ${version})"
+
+ message="$(gettext_printf "Loading Linux %s ..." "${version}")"
sed "s/^/$submenu_indentation/" << EOF
echo '$message'
linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args}
@@ -190,7 +193,22 @@ while [ "x$list" != "x" ] ; do
alt_version=`echo $version | sed -e "s,\.old$,,g"`
linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
+ if test -e "/etc/arch-release" ; then
+ if echo "${basename}" | grep -q 'vmlinuz-linux' ; then
+ version="`echo "${basename}" | sed -e 's,vmlinuz-linux,,g'`"
+
+ if [ "x${version}" = "x" ] ; then
+ version="core repo kernel"
+ else
+ version="`echo "${version}" | sed -e 's,-,,g'`"
+ version="${version} kernel"
+ fi
+ fi
+ fi
+
initrd=
+ initrd_arch="`echo "${basename}" | sed -e 's,vmlinuz,initramfs,g'`"
+
for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \
"initrd-${version}" "initramfs-${version}.img" \
"initrd.img-${alt_version}" "initrd-${alt_version}.img" \
@@ -198,7 +216,8 @@ while [ "x$list" != "x" ] ; do
"initramfs-genkernel-${version}" \
"initramfs-genkernel-${alt_version}" \
"initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
- "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do
+ "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}" \
+ "${initrd_arch}.img" ; do
if test -e "${dirname}/${i}" ; then
initrd="$i"
break
@@ -226,6 +245,22 @@ while [ "x$list" != "x" ] ; do
linux_root_device_thisversion=${GRUB_DEVICE}
fi
+ if test -e "/etc/arch-release" ; then
+ is_first_entry="false"
+
+ linux_entry "${OS}" "${version}" true \
+ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
+
+ for i in "${initrd_arch}-fallback.img" "initramfs-${version}-fallback.img" ; do
+ if test -e "${dirname}/${i}" ; then
+ initrd="${i}"
+ linux_entry "${OS}" "${version}" fallback \
+ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
+ break
+ fi
+ done
+ fi
+
if [ "x$is_first_entry" = xtrue ]; then
linux_entry "${OS}" "${version}" simple \
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
@@ -239,8 +274,11 @@ while [ "x$list" != "x" ] ; do
echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | grub_quote)' \$menuentry_id_option 'gnulinux-advanced-$boot_device_id' {"
fi
+ if ! test -e "/etc/arch-release" ; then
linux_entry "${OS}" "${version}" advanced \
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
+ fi
+
if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
linux_entry "${OS}" "${version}" recovery \
"single ${GRUB_CMDLINE_LINUX}"
@@ -252,8 +290,10 @@ done
# If at least one kernel was found, then we need to
# add a closing '}' for the submenu command.
+if ! test -e "/etc/arch-release" ; then
if [ x"$is_first_entry" != xtrue ]; then
echo '}'
fi
+fi
echo "$title_correction_code"