This is for my reference

I recently needed to revert the Kernel on my iMac/Linux machine. I had updated to the latest version, which caused a problem with the Brightness not working anymore. On an iMac that meant I had no way to adjust the screen, as it doesn’t have any physical buttons.

I attempted to edit the grub file from the boot loader, but that didn’t work as there doesn’t seem to be an editor in the boot shell. So after booting up a very bright UI I edited from the main UI.

If you are wondering how to access the boot loader screen, mine wasn’t showing by default, you will need to hit Escape as the machine boots up. Just keep tapping it on startup until the menu shows up.

My editable grub file is located in: /etc/default/grub Note: the main file is /boot/grub/grub.cfg Do not edit it though, the file clearly warns that it is automatically generated.

To edit the /etc/default/grub you will need to be root. Below is a copy of my grub file. The key lines are:

GRUB_DEFAULT=saved
GRUB_TIMEOUT=5
GRUB_SAVEDEFAULT=true

The first line sets the default to saved, the second sets the menu timeout before continuing, and the last line saves the last used as default.

After editing the file as root, save the file, and run update-grub to make changes.

This is my current grub file for reference:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=saved
GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
GRUB_SAVEDEFAULT=true

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"