150

Grub2 - Community Ubuntu Documentation says the following:

Saving an OS can be achieved by running sudo grub-set-default if DEFAULT=saved is set in /etc/default/grub. It may also be saved if GRUB_SAVEDEFAULT=true is also set in /etc/default/grub. In this case, the default OS remains until a new OS is manually selected from the GRUB 2 menu or the grub-set-default command is executed.

I put the lines DEFAULT=saved AND GRUB_SAVEDEFAULT=true in /etc/default/grub, and ran sudo grub-set-default. Here is the output:

$ sudo grub-set-default
entry not specified.
Usage: grub-set-default [OPTION] entry
Set the default boot entry for GRUB.

  -h, --help              print this message and exit
  -v, --version           print the version information and exit
  --boot-directory=DIR    expect GRUB images under the directory DIR/grub
                          instead of the /boot/grub directory

ENTRY is a number or a menu item title.

Report bugs to <bug-grub@gnu.org>.

Am I not following the documentation correctly? What's the correct way to do this?

2
  • 3
    After changing the grub file you best always run " sudo update-grub" . Jun 9, 2012 at 18:36
  • 1
    Just run: sudo grub-set-default saved It's that simple.
    – T. Coles
    Apr 6, 2017 at 15:01

5 Answers 5

234

The documentation in this case is wrong. All variables in /etc/default/grub start with GRUB_, so it's GRUB_DEFAULT=saved, not DEFAULT=saved. I've corrected the Ubuntu wiki to reflect that.

The official grub manual describes this correctly: http://www.gnu.org/software/grub/manual/grub.html#Simple-configuration

Put the following in /etc/default/grub (command line: gedit admin:///etc/default/grub):

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

Then run:

sudo update-grub
8
  • 7
    +1 for the link, I've edited your answer with the solution that worked for me (which I derived from the link you provided) Jun 18, 2012 at 17:47
  • 1
    The link in this answer is broken. 'Page 404'.
    – sdlins
    Sep 7, 2017 at 20:34
  • 1
    should I remove existing line GRUB_DEFAULT=0 ?
    – user25
    Jun 2, 2018 at 14:01
  • 3
    @user25 yes remove GRUB_DEFAULT=0, the line should read GRUB_DEFAULT=saved Jan 2, 2019 at 21:14
  • I reboot into windows from linux using the above command. But now when i reboot from Windows, it defaults to windows and I cannot reboot from Windows into Linux Nov 16, 2019 at 23:15
12

In my case it was not working for entries defined via /etc/grub.d/40_custom which were missing the savedefault line.

menuentry "Chameleon" {
    savedefault ### <<<< this must be added
    set root="(hd1)"
    chainloader +1
}
4

savedefault will not work, if there is no proper header in auto generated grub.cfg

To generate proper header you need set in /etc/default/grub

GRUB_DEFAULT=saved

and make grub-mkconfig to substitute your copy of grub.cfg

grub-mkconfig -o /boot/grub.cfg

savedefault from Grub 2.02 don't require any additional arguments

You could see source of savedefault in grub.cfg

1
3

You are forgetting the number (ie. the "ENTRY is a number or a menu item title." in your text).

sudo grub-set-default 1

for option 1 to be the default.

Always run sudo update-grub after modifying the /etc/default/grub file to apply the changes.

2
  • 7
    This did not work for me, it just sets the GRUB menu to point to entry #1, not the last choice Jun 18, 2012 at 17:47
  • If your menu option would be buried in a submenu, like within 'Advanced options for ubuntu', the format is 'submenu-index>submenu-item-index'. So you'd need to specify 1>'index-of-your-choice'. You are also supposed to be able to specify by string name for each selection.
    – Epu
    Nov 30, 2015 at 20:29
2

Thanks to ccpizza I figured out, that my Windows-menuentry in /etc/grub.d/40_custom was missing the savedefault Attribute:

menuentry 'Windows 10' {
    savedefault    # <<<<<<<<<<<< THIS Attribute was missing!
    insmod ntfs
    insmod ntldr
    insmod part_msdos
    insmod search_fs_uuid
    search --fs-uuid --no-floppy --set=root <WINDOWS_SSD_UUID>
    ntldr /bootmgr
}

In my case (Arch Linux, not Ubuntu ;) ) I found pacman -S grub-customizer (from this Post on StackOverflow of matt-u) which is a nice GUI Tool for customizing GRUB-Menu!

PS: I could neither upvote nor comment on ccpizza's answer because of missing credits in this forum, so I decided to give another answer :(

1
  • While the accepted answer is probably more relevant, this is what got my config running properly. Thanks!
    – SPRBRN
    Feb 15, 2021 at 11:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.