Ubuntu – Set “older” kernel as default grub entry


I installed a mainline kernel for testing purposes. I would like to set grub to boot from the older kernel by default.

I know I can set the GRUB_DEFAULT=0 setting for the first page of grub but how do I set it to boot by default from one kernel in the second page (Advanced page)?

I would prefer doing this without installing other software (ex. grub-customizer).

Related Questions:
How do I set Windows to boot as the default in the boot loader?
How do I change the grub boot order?

Best Answer

  • First, make a backup copy of /etc/default/grub. If something goes wrong, you can easily revert to the known-good copy.

    sudo cp /etc/default/grub /etc/default/grub.bak

    Then edit the file using the text editor of your choice (e.g. gedit, etc.).

    sudo -H gedit /etc/default/grub

    Find the line that contains GRUB_DEFAULT - this is what you'll want to edit to set the default. You must know the full name of the kernel you want - e.g. Ubuntu, with Linux 3.13.0-53-generic - along with the full name of the "advanced menu" - e.g. Advanced options for Ubuntu.

    You then combine those two strings with > and set GRUB_DEFAULT to them as: GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 3.13.0-53-generic" (including quotes).

    Save it, then build the updated grub menu.

    sudo update-grub

    See also: GNU GRUB Manual 2.02 or more specifically section 15.1.0 on setting the default.

    Note: There is a method utilizing numbers to access kernels and menus but this is not recommended as it is unreliable when kernel updates occur.

  • Related Question