Customize MY_Grub.cfg boot menu with additional text and architecture [i386], [amd64] MX21.

Message
Author
taraxacum
Posts: 81
Joined: Fri Dec 14, 2018 6:24 pm

Customize MY_Grub.cfg boot menu with additional text and architecture [i386], [amd64] MX21.

#21 Post by taraxacum »

fehlix wrote: Tue May 10, 2022 7:07 pm
taraxacum wrote: Tue May 10, 2022 4:35 pm Unfortunately, you are making a mistake in reasoning, so I repeat my steps:
...
You obviously don't use grub customizers to update grub.cfg - so question, what command do you type in a terminal with root privileges SUDO ?
OK, I may now see what your are trying to achieve.

To your last question:
To manually generate the GRUB menu (which is the file /boot/grub/grub.cfg)
you can run this command from the terminal command line:

Code: Select all

sudo update-grub
which may require to enter your password (not shown on the screen) followed by pressing [Enter].

And you are right these three parameters:

PRETTY_NAME, DISTRIB_DESCRIPTION (found in /etc/lsb-release)
and
GRUB_DISTRIBUTOR (found with /etc/default/grub)
are used by update-grub to "construct" the displayed GRUB menu entries.

In addition, the displayed GRUB menu entries consist out of

* "TOP" entries for the current running system
and

* "BELOW" entries for the other installed system.

For the TOP entries, the displayed name is taken from PRETTY_NAME parameter.
This is true for all TOP-entries: The first menu entry and the "advanced" submenu entry
and the entries within the advanced submenu itself.

It is different for all "BELOW" entries:
Within the "BELOW" entries: For the first menu entry + advanced submenu entry
the display name is taken from DISTRIB_DESCRIPTION found with the others
system /etc/lsb-release.
Only the entries within the advanced submenu itself are taken from PRETTY_NAME
of the other lsb-release file (after update-grub have been run with the other system.)

And as you found out GRUB_DISTRIBUTOR within /etc/default/grub is
reset to the original value after point release, which is done
through an update of the package mx-system.

The update of mx-system package will try to replace the original name
with the new point release name.
E.g it will change
PRETTY_NAME="MX 21 Wildflower" to PRETTY_NAME="MX 21.1 Wildflower"
or
PRETTY_NAME="MX 21.1 Wildflower" to PRETTY_NAME="MX 21.2 Wildflower"

Now, in order to let mx-system update PRETTY_NAME with the new values of the version,
you can do the following:

Do not change PRETTY_NAME in /etc/lsb-release

But add this line at the end of /etc/default/grub

Code: Select all

eval GRUB_''DISTRIBUTOR="'fehlix: $GRUB_DISTRIBUTOR'"

(note the single and double quotes!)
where you change "fehlix:" with your own text.

This line will make sure the GRUB_DISTRIBUTOR replacement
during point release update can be done
and
you'r own text will survive the point-release and will be shown within the GRUB menu, where
PRETTY_NAME is relevant, with the update content of PRETTY_NAME.

[/code]
I followed your instruction and added your line at the end.
Result are error messages:
/usr/sbin/grub-mkconfig: 41: /etc/default/grub: Syntax error: EOF in backquote substitution
Last edited by taraxacum on Tue Jun 21, 2022 10:41 am, edited 2 times in total.

User avatar
fehlix
Developer
Posts: 12883
Joined: Wed Apr 11, 2018 5:09 pm

Re: Grub.cfg text entry 'UserName - '

#22 Post by fehlix »

taraxacum wrote: Wed May 11, 2022 4:16 am I followed your instruction and added your line at the end.
Result are error messages:
/usr/sbin/grub-mkconfig: 41: /etc/default/grub: Syntax error: EOF in backquote substitution
OK, this may be either an issue with grub-customizer
or a typo within the changes you made.
Note grub-customizer is known to create invalid config files.

Please do adjust as follows.
Instead of this one line:

Code: Select all

eval GRUB_''DISTRIBUTOR="'fehlix: $GRUB_DISTRIBUTOR'"

Use these two lines:

Code: Select all

MY_DISTRIBUTOR="GRUB_DISTRIBUTOR"
eval $MY_DISTRIBUTOR="'fehlix: $GRUB_DISTRIBUTOR'"

Post the content of /etc/default/grub as text.
Do paste the "text" between those [code]code-tags[/code] - click [</>] button to insert code-tags.

taraxacum
Posts: 81
Joined: Fri Dec 14, 2018 6:24 pm

Customize MY_Grub.cfg boot menu with additional text and architecture [i386], [amd64] MX21.

#23 Post by taraxacum »

I want to expressly point out that both times I updated grub.cfg first with the terminal command and second with the grub customizer (with root). Both times the same error message came up. Maybe your statement is in the wrong place?

Code: Select all

root@mx-01:/home/o21-32/Downloads# sudo update-grub
/usr/sbin/grub-mkconfig: 43: /etc/default/grub: Syntax error: EOF in backquote substitution
root@mx-01:/home/o21-32/Downloads# 

Code: Select all

GRUB_DISTRIBUTOR="$(unset PRETTY_NAME; (. /etc/lsb-release; echo ${PRETTY_NAME:?}) 2>/dev/null || echo Debian) MY_DISTRIBUTOR="GRUB_DISTRIBUTOR"
eval $MY_DISTRIBUTOR="'o21-32 -  $GRUB_DISTRIBUTOR'"
Last edited by taraxacum on Tue Jun 21, 2022 10:42 am, edited 2 times in total.

User avatar
fehlix
Developer
Posts: 12883
Joined: Wed Apr 11, 2018 5:09 pm

Re: Grub.cfg text entry 'UserName - '

#24 Post by fehlix »

taraxacum wrote: Wed May 11, 2022 6:43 pm I want to expressly point out that both times I updated grub.cfg first with the terminal command and second with the grub customizer (with root). Both times the same error message came up. Maybe your statement is in the wrong place?

Code: Select all

root@mx-01:/home/o21-32/Downloads# sudo update-grub
/usr/sbin/grub-mkconfig: 43: /etc/default/grub: Syntax error: EOF in backquote substitution
root@mx-01:/home/o21-32/Downloads# 

Code: Select all

GRUB_DISTRIBUTOR="$(unset PRETTY_NAME; (. /etc/lsb-release; echo ${PRETTY_NAME:?}) 2>/dev/null || echo Debian) MY_DISTRIBUTOR="GRUB_DISTRIBUTOR"
eval $MY_DISTRIBUTOR="'o21-32 -  $GRUB_DISTRIBUTOR'"
Better copy paste the entire conentent of /etc/default/grub as text,
b/c I could than "fix" the "typo", and you would only need to replace the contnent:

OTOH, this is the typo:
Both additional lines need to be on an extra line otherwise the shell creates an error.

Code: Select all

GRUB_DISTRIBUTOR="$(unset PRETTY_NAME; (. /etc/lsb-release; echo ${PRETTY_NAME:?}) 2>/dev/null || echo Debian) 

MY_DISTRIBUTOR="GRUB_DISTRIBUTOR"

eval $MY_DISTRIBUTOR="'o21-32 -  $GRUB_DISTRIBUTOR'"

( here I added an empty line so you see better, that both extra lines need to be separate lines.
You added the first line "MY_DISTRIBUTOR..." at the end of the first line you posted.

Note: You do not need to open a root-terminal,
just open terminal as normal user ( not as root)
and run

Code: Select all

sudo update-grub

taraxacum
Posts: 81
Joined: Fri Dec 14, 2018 6:24 pm

Customize MY_Grub.cfg boot menu with additional text and architecture [i386], [amd64] MX21.

#25 Post by taraxacum »

Does this information help you?
/usr/sbin/grub-mkconfig

Code: Select all

#! /bin/sh
set -e

# Generate grub.cfg by inspecting /boot contents.
# Copyright (C) 2006,2007,2008,2009,2010 Free Software Foundation, Inc.
#
# GRUB is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# GRUB is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GRUB.  If not, see <http://www.gnu.org/licenses/>.

prefix="/usr"
exec_prefix="/usr"
datarootdir="/usr/share"

prefix="/usr"
exec_prefix="/usr"
sbindir="${exec_prefix}/sbin"
bindir="${exec_prefix}/bin"
sysconfdir="/etc"
PACKAGE_NAME=GRUB
PACKAGE_VERSION=2.04-20
host_os=linux-gnu
datadir="${datarootdir}"
if [ "x$pkgdatadir" = x ]; then
    pkgdatadir="${datadir}/grub"
fi
# export it for scripts
export pkgdatadir

grub_cfg=""
grub_mkconfig_dir="${sysconfdir}"/grub.d

self=`basename $0`

grub_probe="${sbindir}/grub-probe"
grub_file="${bindir}/grub-file"
grub_editenv="${bindir}/grub-editenv"
grub_script_check="${bindir}/grub-script-check"

export TEXTDOMAIN=grub
export TEXTDOMAINDIR="${datarootdir}/locale"

. "${pkgdatadir}/grub-mkconfig_lib"

# Usage: usage
# Print the usage.
usage () {
    gettext_printf "Usage: %s [OPTION]\n" "$self"
    gettext "Generate a grub config file"; echo
    echo
    print_option_help "-o, --output=$(gettext FILE)" "$(gettext "output generated config to FILE [default=stdout]")"
    print_option_help "-h, --help" "$(gettext "print this message and exit")"
    print_option_help "-v, --version" "$(gettext "print the version information and exit")"
    echo
    gettext "Report bugs to <bug-grub@gnu.org>."; echo
}

argument () {
  opt=$1
  shift

  if test $# -eq 0; then
      gettext_printf "%s: option requires an argument -- \`%s'\n" "$self" "$opt" 1>&2
      exit 1
  fi
  echo $1
}

# Check the arguments.
while test $# -gt 0
do
    option=$1
    shift

    case "$option" in
    -h | --help)
	usage
	exit 0 ;;
    -V | --version)
	echo "$self (${PACKAGE_NAME}) ${PACKAGE_VERSION}"
	exit 0 ;;
    -o | --output)
	grub_cfg=`argument $option "$@"`; shift;;
    --output=*)
	grub_cfg=`echo "$option" | sed 's/--output=//'`
	;;
    -*)
	gettext_printf "Unrecognized option \`%s'\n" "$option" 1>&2
	usage
	exit 1
	;;
    # Explicitly ignore non-option arguments, for compatibility.
    esac
done

if [ "x$EUID" = "x" ] ; then
  EUID=`id -u`
fi

if [ "$EUID" != 0 ] ; then
  root=f
  case "`uname 2>/dev/null`" in
    CYGWIN*)
      # Cygwin: Assume root if member of admin group
      for g in `id -G 2>/dev/null` ; do
	case $g in
	  0|544) root=t ;;
	esac
      done ;;
  esac
  if [ $root != t ] ; then
    gettext_printf "%s: You must run this as root\n" "$self" >&2
    exit 1
  fi
fi

set $grub_probe dummy
if test -f "$1"; then
    :
else
    gettext_printf "%s: Not found.\n" "$1" 1>&2
    exit 1
fi

# Device containing our userland.  Typically used for root= parameter.
GRUB_DEVICE="`${grub_probe} --target=device /`"
GRUB_DEVICE_UUID="`${grub_probe} --device ${GRUB_DEVICE} --target=fs_uuid 2> /dev/null`" || true
GRUB_DEVICE_PARTUUID="`${grub_probe} --device ${GRUB_DEVICE} --target=partuuid 2> /dev/null`" || true

# Device containing our /boot partition.  Usually the same as GRUB_DEVICE.
GRUB_DEVICE_BOOT="`${grub_probe} --target=device /boot`"
GRUB_DEVICE_BOOT_UUID="`${grub_probe} --device ${GRUB_DEVICE_BOOT} --target=fs_uuid 2> /dev/null`" || true

# Filesystem for the device containing our userland.  Used for stuff like
# choosing Hurd filesystem module.
GRUB_FS="`${grub_probe} --device ${GRUB_DEVICE} --target=fs 2> /dev/null || echo unknown`"

if [ x"$GRUB_FS" = xunknown ]; then
    GRUB_FS="$(stat -f -c %T / || echo unknown)"
fi

# Provide a default set of stock linux early initrd images.
# Define here so the list can be modified in the sourced config file.
if [ "x${GRUB_EARLY_INITRD_LINUX_STOCK}" = "x" ]; then
	GRUB_EARLY_INITRD_LINUX_STOCK="intel-uc.img intel-ucode.img amd-uc.img amd-ucode.img early_ucode.cpio microcode.cpio"
fi

if test -f ${sysconfdir}/default/grub ; then
  . ${sysconfdir}/default/grub
fi
for x in ${sysconfdir}/default/grub.d/*.cfg ; do
  if [ -e "${x}" ]; then
    . "${x}"
  fi
done

# XXX: should this be deprecated at some point?
if [ "x${GRUB_TERMINAL}" != "x" ] ; then
  GRUB_TERMINAL_INPUT="${GRUB_TERMINAL}"
  GRUB_TERMINAL_OUTPUT="${GRUB_TERMINAL}"
fi

termoutdefault=0
if [ "x${GRUB_TERMINAL_OUTPUT}" = "x" ]; then
    GRUB_TERMINAL_OUTPUT=gfxterm;
    termoutdefault=1;
fi

for x in ${GRUB_TERMINAL_OUTPUT}; do
    case "x${x}" in
	xgfxterm) ;;
	xconsole | xserial | xofconsole | xvga_text)
            # make sure all our children behave in conformance with ascii..
	    export LANG=C;;
	*) echo "Invalid output terminal \"${GRUB_TERMINAL_OUTPUT}\"" >&2 ; exit 1 ;;
    esac
done

GRUB_ACTUAL_DEFAULT="$GRUB_DEFAULT"

if [ "x${GRUB_ACTUAL_DEFAULT}" = "xsaved" ] ; then GRUB_ACTUAL_DEFAULT="`"${grub_editenv}" - list | sed -n '/^saved_entry=/ s,^saved_entry=,,p'`" ; fi

if [ "x${GRUB_RECOVERY_TITLE}" = "x" ]; then
  GRUB_RECOVERY_TITLE="recovery mode"
fi


# These are defined in this script, export them here so that user can
# override them.
export GRUB_DEVICE \
  GRUB_DEVICE_UUID \
  GRUB_DEVICE_PARTUUID \
  GRUB_DEVICE_BOOT \
  GRUB_DEVICE_BOOT_UUID \
  GRUB_FS \
  GRUB_FONT \
  GRUB_PRELOAD_MODULES \
  GRUB_ACTUAL_DEFAULT

# These are optional, user-defined variables.
export GRUB_DEFAULT \
  GRUB_HIDDEN_TIMEOUT \
  GRUB_HIDDEN_TIMEOUT_QUIET \
  GRUB_TIMEOUT \
  GRUB_TIMEOUT_STYLE \
  GRUB_DEFAULT_BUTTON \
  GRUB_HIDDEN_TIMEOUT_BUTTON \
  GRUB_TIMEOUT_BUTTON \
  GRUB_TIMEOUT_STYLE_BUTTON \
  GRUB_BUTTON_CMOS_ADDRESS \
  GRUB_BUTTON_CMOS_CLEAN \
  GRUB_DISTRIBUTOR \
  GRUB_CMDLINE_LINUX \
  GRUB_CMDLINE_LINUX_DEFAULT \
  GRUB_CMDLINE_XEN \
  GRUB_CMDLINE_XEN_DEFAULT \
  GRUB_CMDLINE_LINUX_XEN_REPLACE \
  GRUB_CMDLINE_LINUX_XEN_REPLACE_DEFAULT \
  GRUB_CMDLINE_NETBSD \
  GRUB_CMDLINE_NETBSD_DEFAULT \
  GRUB_CMDLINE_GNUMACH \
  GRUB_EARLY_INITRD_LINUX_CUSTOM \
  GRUB_EARLY_INITRD_LINUX_STOCK \
  GRUB_TERMINAL_INPUT \
  GRUB_TERMINAL_OUTPUT \
  GRUB_SERIAL_COMMAND \
  GRUB_DISABLE_LINUX_UUID \
  GRUB_DISABLE_LINUX_PARTUUID \
  GRUB_DISABLE_RECOVERY \
  GRUB_VIDEO_BACKEND \
  GRUB_GFXMODE \
  GRUB_BACKGROUND \
  GRUB_THEME \
  GRUB_GFXPAYLOAD_LINUX \
  GRUB_DISABLE_OS_PROBER \
  GRUB_INIT_TUNE \
  GRUB_SAVEDEFAULT \
  GRUB_ENABLE_CRYPTODISK \
  GRUB_BADRAM \
  GRUB_OS_PROBER_SKIP_LIST \
  GRUB_DISABLE_SUBMENU \
  GRUB_RECORDFAIL_TIMEOUT \
  GRUB_RECOVERY_TITLE

if test "x${grub_cfg}" != "x"; then
  rm -f "${grub_cfg}.new"
  oldumask=$(umask); umask 077
  exec > "${grub_cfg}.new"
  umask $oldumask
fi
gettext "Generating grub configuration file ..." >&2
echo >&2

cat << EOF
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by $self using templates
# from ${grub_mkconfig_dir} and settings from ${sysconfdir}/default/grub
#
EOF


for i in "${grub_mkconfig_dir}"/* ; do
  case "$i" in
    # emacsen backup files. FIXME: support other editors
    *~) ;;
    # emacsen autosave files. FIXME: support other editors
    */\#*\#) ;;
    *)
      if grub_file_is_not_garbage "$i" && test -x "$i" ; then
        echo
        echo "### BEGIN $i ###"
        "$i"
        echo "### END $i ###"
      fi
    ;;
  esac
done

if [ "x${grub_cfg}" != "x" ] && ! grep "^password" ${grub_cfg}.new >/dev/null; then
  chmod 444 ${grub_cfg}.new || true
fi

if test "x${grub_cfg}" != "x" ; then
  if ! ${grub_script_check} ${grub_cfg}.new; then
    # TRANSLATORS: %s is replaced by filename
    gettext_printf "Syntax errors are detected in generated GRUB config file.
Ensure that there are no errors in /etc/default/grub
and /etc/grub.d/* files or please file a bug report with
%s file attached." "${grub_cfg}.new" >&2
    echo >&2
    exit 1
  else
    # none of the children aborted with error, install the new grub.cfg
    mv -f ${grub_cfg}.new ${grub_cfg}
  fi
fi

gettext "done" >&2
echo >&2
Last edited by taraxacum on Tue Jun 21, 2022 10:43 am, edited 2 times in total.

User avatar
fehlix
Developer
Posts: 12883
Joined: Wed Apr 11, 2018 5:09 pm

Re: Grub.cfg text entry 'UserName - '

#26 Post by fehlix »

taraxacum wrote: Wed May 11, 2022 7:00 pm Does this information help you?
/usr/sbin/grub-mkconfig
No, definitely not.
We are talking about this config file:

/etc/default/grub

Post the enter content of /etc/default/grub.

taraxacum
Posts: 81
Joined: Fri Dec 14, 2018 6:24 pm

Customize MY_Grub.cfg boot menu with additional text and architecture [i386], [amd64] MX21.

#27 Post by taraxacum »

I have now tested 3 different runs. Once the two instructions each on a separate line. Then both statements on one line with or without spacebar tab.

The syntax error message appears in all runs. Things are getting interesting. I hope you are satisfied with my learning successes and still have good nerves - at least I still have them....

Code: Select all

o21-32@mx-01:~
$ sudo update-grub
[sudo] Passwort für o21-32: 
/usr/sbin/grub-mkconfig: 43: /etc/default/grub: Syntax error: EOF in backquote substitution
o21-32@mx-01:~
$ 

Code: Select all

GRUB_DEFAULT="saved"
GRUB_TIMEOUT="6"
GRUB_DISTRIBUTOR="$(unset PRETTY_NAME; (. /etc/lsb-release; echo ${PRETTY_NAME:?}) 2>/dev/null || echo Debian) 
MY_DISTRIBUTOR="GRUB_DISTRIBUTOR"
eval $MY_DISTRIBUTOR="'o21-32 -  $GRUB_DISTRIBUTOR'"
GRUB_CMDLINE_LINUX_DEFAULT="vga=791 quiet splash"
GRUB_CMDLINE_LINUX=""
o21-32@mx-01:/etc/apparmor
$ sudo update-grub
/usr/sbin/grub-mkconfig: 42: /etc/default/grub: Syntax error: EOF in backquote substitution
o21-32@mx-01:/etc/apparmor
$

Code: Select all

GRUB_DEFAULT="saved"
GRUB_TIMEOUT="6"
GRUB_DISTRIBUTOR="$(unset PRETTY_NAME; (. /etc/lsb-release; echo ${PRETTY_NAME:?}) 2>/dev/null || echo Debian) 
MY_DISTRIBUTOR="GRUB_DISTRIBUTOR"eval $MY_DISTRIBUTOR="'o21-32 -  $GRUB_DISTRIBUTOR'"
GRUB_CMDLINE_LINUX_DEFAULT="vga=791 quiet splash"
GRUB_CMDLINE_LINUX=""

Code: Select all

o21-32@mx-01:/
$ sudo update-grub
/usr/sbin/grub-mkconfig: 42: /etc/default/grub: Syntax error: EOF in backquote substitution
o21-32@mx-01:/
$ 

Code: Select all

GRUB_DEFAULT="saved"
GRUB_TIMEOUT="6"
GRUB_DISTRIBUTOR="$(unset PRETTY_NAME; (. /etc/lsb-release; echo ${PRETTY_NAME:?}) 2>/dev/null || echo Debian) 
MY_DISTRIBUTOR="GRUB_DISTRIBUTOR" eval $MY_DISTRIBUTOR="'o21-32 -  $GRUB_DISTRIBUTOR'"
GRUB_CMDLINE_LINUX_DEFAULT="vga=791 quiet splash"
GRUB_CMDLINE_LINUX=""
Last edited by taraxacum on Tue Jun 21, 2022 10:43 am, edited 2 times in total.

User avatar
fehlix
Developer
Posts: 12883
Joined: Wed Apr 11, 2018 5:09 pm

Re: Grub.cfg text entry 'UserName - '

#28 Post by fehlix »

I take the last one you posted:

the "error" is with this line:

Code: Select all

GRUB_DISTRIBUTOR="$(unset PRETTY_NAME; (. /etc/lsb-release; echo ${PRETTY_NAME:?}) 2>/dev/null || echo Debian) 
where the last double quote is missing:
and

Code: Select all

MY_DISTRIBUTOR="GRUB_DISTRIBUTOR" eval $MY_DISTRIBUTOR="'o21-32 -  $GRUB_DISTRIBUTOR'"
which should be two lines not one.
Here the corrected one:

Code: Select all

GRUB_DEFAULT="saved"
GRUB_TIMEOUT="6"

GRUB_DISTRIBUTOR="$(unset PRETTY_NAME; (. /etc/lsb-release; echo ${PRETTY_NAME:?}) 2>/dev/null || echo Debian)" 

MY_DISTRIBUTOR="GRUB_DISTRIBUTOR" 

eval $MY_DISTRIBUTOR="'o21-32 -  $GRUB_DISTRIBUTOR'"

GRUB_CMDLINE_LINUX_DEFAULT="vga=791 quiet splash"

GRUB_CMDLINE_LINUX=""
where I add an extra empty line, so you see better the every line separate.
+++EDIT+++ added some more findings of "typos"

taraxacum
Posts: 81
Joined: Fri Dec 14, 2018 6:24 pm

Customize MY_Grub.cfg boot menu with additional text and architecture [i386], [amd64] MX21.

#29 Post by taraxacum »

Wonderful. With the two additional lines, I was able to update grub.cfg without errors and my text entry is preserved!

You could now add the solution to your tips.
Thanks very much.

Code: Select all

o21-32@mx-01:/
$ sudo update-grub
[sudo] Passwort für o21-32: 
Generating grub configuration file ...
Found theme: /boot/grub/themes/mx_linux/theme.txt
Found linux image: /boot/vmlinuz-5.10.0-13-686-pae
Found initrd image: /boot/initrd.img-5.10.0-13-686-pae
Found memtest86+ image: /boot/memtest86+.bin
Found o19-32 - MX 19.4 patito feo (19.4 ) on /dev/sda10
Found o19-32e - MX 19.4 patito feo (19.4 ) on /dev/sda12
Found o21-32e - MX 21.1 Wildflower (21.1 ) on /dev/sda13
Found o21-64 - MX 21.1 Wildflower (21.1 ) on /dev/sda6
done
o21-32@mx-01:/
$ sudo update-grub
Generating grub configuration file ...
Found theme: /boot/grub/themes/mx_linux/theme.txt
Found linux image: /boot/vmlinuz-5.10.0-13-686-pae
Found initrd image: /boot/initrd.img-5.10.0-13-686-pae
Found memtest86+ image: /boot/memtest86+.bin
Found o19-32 - MX 19.4 patito feo (19.4 ) on /dev/sda10
Found o19-32e - MX 19.4 patito feo (19.4 ) on /dev/sda12
Found o21-32e - MX 21.1 Wildflower (21.1 ) on /dev/sda13
Found o21-64 - MX 21.1 Wildflower (21.1 ) on /dev/sda6
done
o21-32@mx-01:/

Code: Select all

GRUB_DEFAULT="saved"
GRUB_TIMEOUT="6"
GRUB_DISTRIBUTOR="$(unset PRETTY_NAME; (. /etc/lsb-release; echo ${PRETTY_NAME:?}) 2>/dev/null || echo Debian)" 
MY_DISTRIBUTOR="GRUB_DISTRIBUTOR" 
eval $MY_DISTRIBUTOR="'o21-32 -  $GRUB_DISTRIBUTOR'"
GRUB_CMDLINE_LINUX_DEFAULT="vga=791 quiet splash"
GRUB_CMDLINE_LINUX=""
You do not have the required permissions to view the files attached to this post.
Last edited by taraxacum on Tue Jun 21, 2022 10:44 am, edited 2 times in total.

taraxacum
Posts: 81
Joined: Fri Dec 14, 2018 6:24 pm

Customize MY_Grub.cfg boot menu with additional text and architecture [i386], [amd64] MX21.

#30 Post by taraxacum »

fehlix wrote: Wed May 11, 2022 8:32 pm I take the last one you posted:

which should be two lines not one.

where I add an extra empty line, so you see better the every line separate.
+++EDIT+++ added some more findings of "typos"
I did another test run with no errors.
Here's a summary of the end result:

In all BELOWER distros I only edit the /etc/lsb-release file:
Value: DISTRIB_DESCRIPTION="UserName-1 MX 21 Wildflower"

In the controlling TOP distro, I only edit the /etc/default/grub file:
The PRETTY_NAME value is left unedited and I add two NEW lines after the GRUB_DISTRIBUTOR= line:

MY_DISTRIBUTOR="GRUB_DISTRIBUTOR"
eval $MY_DISTRIBUTOR=" 'UserName-3 $GRUB_DISTRIBUTOR' "

Do you agree and are satisfied with this overall result?
Or do you have any questions or suggestions?
If not, I would close this thread and mark it as SOLVED.

Thank you for your advice.
You do not have the required permissions to view the files attached to this post.
Last edited by taraxacum on Tue Jun 21, 2022 10:44 am, edited 3 times in total.

Post Reply

Return to “General”