How to get grub2 to remember last choice?
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
ANDGRUB_SAVEDEFAULT=true
in/etc/default/grub
, and ransudo 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 <[email protected]>.
Am I not following the documentation correctly? What's the correct way to do this?
Just run: sudo grub-set-default saved It's that simple.
The documentation in this case is wrong. All variables in
/etc/default/grub
start withGRUB_
, so it'sGRUB_DEFAULT=saved
, notDEFAULT=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
:GRUB_DEFAULT=saved GRUB_SAVEDEFAULT=true
Then run:
sudo update-grub
+1 for the link, I've edited your answer with the solution that worked for me (which I derived from the link you provided)
The link in this answer is broken. 'Page 404'.
should I remove existing line `GRUB_DEFAULT=0` ?
@user25 yes remove `GRUB_DEFAULT=0`, the line should read `GRUB_DEFAULT=saved`
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
In my case it was not working for entries defined via
/etc/grub.d/40_custom
which were missing thesavedefault
line.menuentry "Chameleon" { savedefault ### <<<< this must be added set root="(hd1)" chainloader +1 }
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.This did not work for me, it just sets the GRUB menu to point to entry #1, not the last choice
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.
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
Look at the answer from @ccpizza, may be this will help: https://askubuntu.com/a/674148/97838
Thanks to ccpizza I figured out, that my Windows-
menuentry
in/etc/grub.d/40_custom
was missing thesavedefault
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 :(
License under CC-BY-SA with attribution
Content dated before 6/26/2020 9:53 AM
Julien Chau 8 years ago
After changing the grub file you best always run " `sudo update-grub`" .