I've committed a patch introducing the same option but more compact and accepting GRUB_DISABLE_SUBMENU=n On 29.01.2013 20:23, Prarit Bhargava wrote: > I'm not sure what the proper patch posting protocol is on this list and > I've never used bzr before. If this is incorrect, please email me and let > me know what I've done wrong. > > Thanks, > > P. > > > > ------------------------------------------------------------ > revno: 4686 > committer: Prarit Bhargava <pra...@redhat.com> > branch nick: grub > timestamp: Tue 2013-01-29 14:14:01 -0500 > message: > Add GRUB_DISABLE_MENU option > > When doing kernel development it is often advantageous to do the following: > > 1. Select a kernel to boot with grub2-reboot > 2. Reboot, capture output from bad kernel. > 3. On subsequent reboot, boot known good or "default" kernel. > > The problem is that the submenus get in the way of doing this. grub2-reboot > does not allow one to set a reboot to a specific kernel. > > I *could* write a rule to be executed on the existing grub.cfg to remove > the submenu entries, however, given that a google search for "grub2 remove > submenus" leads to many many hits, I think a better approach is to make > GRUB_DISABLE_SUBMENU a generally available option. > > Please note I have only tested this on Linux (specifically Fedora 17 and > Fedora 18). > > Signed-off-by: Prarit Bhargava <pra...@redhat.com> > > > diff: > === modified file 'util/grub-mkconfig.in' > --- util/grub-mkconfig.in 2012-12-28 07:21:17 +0000 > +++ util/grub-mkconfig.in 2013-01-29 19:14:01 +0000 > @@ -215,7 +215,8 @@ > GRUB_INIT_TUNE \ > GRUB_SAVEDEFAULT \ > GRUB_ENABLE_CRYPTODISK \ > - GRUB_BADRAM > + GRUB_BADRAM \ > + GRUB_DISABLE_SUBMENU > > if test "x${grub_cfg}" != "x"; then > rm -f "${grub_cfg}.new" > > === modified file 'util/grub.d/10_hurd.in' > --- util/grub.d/10_hurd.in 2012-09-18 11:04:06 +0000 > +++ util/grub.d/10_hurd.in 2013-01-29 19:14:01 +0000 > @@ -156,14 +156,15 @@ > for kernel in ${kernels} > do > > - if [ "x$is_first_entry" = xtrue ]; then > + if [ "x${GRUB_DISABLE_SUBMENU}" = x ]; then > + if [ "x$is_first_entry" = xtrue ]; then > hurd_entry "$kernel" simple > submenu_indentation="$grub_tab" > > # TRANSLATORS: %s is replaced with an OS name > echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | > grub_quote)' \$menuentry_id_option 'gnuhurd-advanced-$(grub_get_device_id > "${GRUB_DEVICE_BOOT}")' {" > + fi > fi > - > hurd_entry "$kernel" advanced > hurd_entry "$kernel" recovery > is_first_entry=false > @@ -171,8 +172,10 @@ > > # If at least one kernel was found, then we need to > # add a closing '}' for the submenu command. > -if [ x"$is_first_entry" != xtrue ]; then > - echo '}' > +if [ "x${GRUB_DISABLE_SUBMENU}" = x ]; then > + if [ x"$is_first_entry" != xtrue ]; then > + echo '}' > + fi > fi > > echo "$title_correction_code" > > === modified file 'util/grub.d/10_kfreebsd.in' > --- util/grub.d/10_kfreebsd.in 2013-01-03 22:19:19 +0000 > +++ util/grub.d/10_kfreebsd.in 2013-01-29 19:14:01 +0000 > @@ -211,15 +211,17 @@ > module_dir_rel=$(make_system_path_relative_to_its_root $module_dir) > fi > > - if [ "x$is_first_entry" = xtrue ]; then > - kfreebsd_entry "${OS}" "${version}" simple > - submenu_indentation="$grub_tab" > - > - if [ -z "$boot_device_id" ]; then > + if [ "x${GRUB_DISABLE_SUBMENU}" = x ]; then > + if [ "x$is_first_entry" = xtrue ]; then > + kfreebsd_entry "${OS}" "${version}" simple > + submenu_indentation="$grub_tab" > + > + if [ -z "$boot_device_id" ]; then > boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" > - fi > - # TRANSLATORS: %s is replaced with an OS name > - echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | > grub_quote)' \$menuentry_id_option 'kfreebsd-advanced-$boot_device_id' {" > + fi > + # TRANSLATORS: %s is replaced with an OS name > + echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | > grub_quote)' \$menuentry_id_option 'kfreebsd-advanced-$boot_device_id' {" > + fi > fi > > kfreebsd_entry "${OS}" "${version}" advanced > @@ -233,8 +235,10 @@ > > # If at least one kernel was found, then we need to > # add a closing '}' for the submenu command. > -if [ x"$is_first_entry" != xtrue ]; then > - echo '}' > +if [ "x${GRUB_DISABLE_SUBMENU}" = x ]; then > + if [ x"$is_first_entry" != xtrue ]; then > + echo '}' > + fi > fi > > echo "$title_correction_code" > > === modified file 'util/grub.d/10_linux.in' > --- util/grub.d/10_linux.in 2012-09-18 11:04:06 +0000 > +++ util/grub.d/10_linux.in 2013-01-29 19:14:01 +0000 > @@ -226,18 +226,20 @@ > linux_root_device_thisversion=${GRUB_DEVICE} > fi > > - if [ "x$is_first_entry" = xtrue ]; then > - linux_entry "${OS}" "${version}" simple \ > - "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" > + if [ "x${GRUB_DISABLE_SUBMENU}" = x ]; then > + if [ "x$is_first_entry" = xtrue ]; then > + linux_entry "${OS}" "${version}" simple \ > + "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" > > - submenu_indentation="$grub_tab" > + submenu_indentation="$grub_tab" > > - if [ -z "$boot_device_id" ]; then > - boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" > + if [ -z "$boot_device_id" ]; then > + boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" > + fi > + # TRANSLATORS: %s is replaced with an OS name > + echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | > grub_quote)' \$menuentry_id_option 'gnulinux-advanced-$boot_device_id' {" > fi > - # TRANSLATORS: %s is replaced with an OS name > - echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | > grub_quote)' \$menuentry_id_option 'gnulinux-advanced-$boot_device_id' {" > - fi > +fi > > linux_entry "${OS}" "${version}" advanced \ > "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" > @@ -252,8 +254,9 @@ > > # If at least one kernel was found, then we need to > # add a closing '}' for the submenu command. > -if [ x"$is_first_entry" != xtrue ]; then > - echo '}' > +if [ "x${GRUB_DISABLE_SUBMENU}" = x ]; then > + if [ x"$is_first_entry" != xtrue ]; then > + echo '}' > + fi > fi > - > echo "$title_correction_code" > > === modified file 'util/grub.d/10_netbsd.in' > --- util/grub.d/10_netbsd.in 2012-10-28 10:55:22 +0000 > +++ util/grub.d/10_netbsd.in 2013-01-29 19:14:01 +0000 > @@ -157,15 +157,17 @@ > > gettext_printf "Found NetBSD kernel: %s\n" "$k" >&2 > > - if [ "x$is_first_entry" = xtrue ]; then > - netbsd_entry "knetbsd" "$k" simple "${GRUB_CMDLINE_NETBSD_DEFAULT}" > - submenu_indentation="$grub_tab" > + if [ "x${GRUB_DISABLE_SUBMENU}" = x ]; then > + if [ "x$is_first_entry" = xtrue ]; then > + netbsd_entry "knetbsd" "$k" simple "${GRUB_CMDLINE_NETBSD_DEFAULT}" > + submenu_indentation="$grub_tab" > > - if [ -z "$boot_device_id" ]; then > - boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" > + if [ -z "$boot_device_id" ]; then > + boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" > + fi > + # TRANSLATORS: %s is replaced with an OS name > + echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | > grub_quote)' \$menuentry_id_option 'netbsd-advanced-$boot_device_id' {" > fi > - # TRANSLATORS: %s is replaced with an OS name > - echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | > grub_quote)' \$menuentry_id_option 'netbsd-advanced-$boot_device_id' {" > fi > > netbsd_entry "knetbsd" "$k" advanced "${GRUB_CMDLINE_NETBSD_DEFAULT}" > @@ -179,8 +181,10 @@ > > # If at least one kernel was found, then we need to > # add a closing '}' for the submenu command. > -if [ x"$is_first_entry" != xtrue ]; then > - echo '}' > +if [ "x${GRUB_DISABLE_SUBMENU}" = x ]; then > + if [ x"$is_first_entry" != xtrue ]; then > + echo '}' > + fi > fi > > echo "$title_correction_code" > > _______________________________________________ > Grub-devel mailing list > Grub-devel@gnu.org > https://lists.gnu.org/mailman/listinfo/grub-devel >
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel