129

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" . – Julien Chau Jun 9 '12 at 18:36
  • 1
    Just run: sudo grub-set-default saved It's that simple. – T. Coles Apr 6 '17 at 15:01
187

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
6
  • 6
    +1 for the link, I've edited your answer with the solution that worked for me (which I derived from the link you provided) – Jay Sullivan Jun 18 '12 at 17:47
  • 1
    The link in this answer is broken. 'Page 404'. – sdlins Sep 7 '17 at 20:34
  • 1
    should I remove existing line GRUB_DEFAULT=0 ? – user25 Jun 2 '18 at 14:01
  • 3
    @user25 yes remove GRUB_DEFAULT=0, the line should read GRUB_DEFAULT=saved – ctrl-alt-delor Jan 2 '19 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 – revolutionary Nov 16 '19 at 23:15
8

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
}
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 – Jay Sullivan Jun 18 '12 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 '15 at 20:29
3

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
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 at 11:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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