Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I'm currently trying out various distros so when I boot up my laptop I have several OS to choose from. Usually, all those distros install grub2 and locate themselves at the top of the list so they're the default ones to boot up after the installation is complete.

But Manjaro did something different. It installed some version of grub2 that would remember which distro I booted last time and kept booting that one (upon restart) until I selected another one (and then it would boot that one and so on).

Did I imagine this? Does Manjaro actually do that? If so, how can I install that version of grub to my system? Cheers.


This is my /etc/grub.d/40_custom file:

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

and this is my /etc/default/grub file:

# 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_SAVEDEFAULT=true
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=3
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# 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"
share|improve this question
    
I followed the directions in that question (mainly added those two lines to my grub) but it did not work. The top distro boots up upon restarting even though I had chosen another one previously. –  Gabriel Mar 7 '13 at 14:40
    
I followed the directions in the accepted answer. I edited /etc/default/grub and I changed the line GRUB_DEFAULT=0 to GRUB_DEFAULT=saved and added the line GRUB_SAVEDEFAULT=true which wan't there. Then I sudo update-grub. Rebooted and chose a distro to boot, different from the top one. Rebooted again and the top (not the one I had chosen before) distro was chosen by default and booted. –  Gabriel Mar 7 '13 at 14:50
    
I updated my question with what's inside those two files. What is the change I should do? –  Gabriel Mar 7 '13 at 17:29
    
let us continue this discussion in chat –  don_crissti Mar 7 '13 at 18:07
add comment

1 Answer

up vote 3 down vote accepted

As per the GRUB manual:

‘GRUB_DEFAULT’

.................

If you set this to ‘saved’, then the default menu entry will be that saved by ‘GRUB_SAVEDEFAULT’, grub-set-default, or grub-reboot.


‘GRUB_SAVEDEFAULT’

If this option is set to ‘true’, then, when an entry is selected, save it as a new default entry for use by future runs of GRUB. This is only useful if ‘GRUB_DEFAULT=saved’; it is a separate option because ‘GRUB_DEFAULT=saved’ is useful without this option, in conjunction with grub-set-default or grub-reboot. Unset by default. This option relies on the environment block, which may not be available in all situations (see Environment block).

You must add:

GRUB_DEFAULT=saved

and

GRUB_SAVEDEFAULT=true

to your /etc/default/grub. Also, if you are using custom menu files like /etc/grub.d/40_custom you must add the option

savedefault

to the menuentry/menuentries in that file. After that update GRUB:

grub-mkconfig -o /boot/grub/grub.cfg

or

update-grub

If you have several distros installed, make sure you are configuring and updating the active GRUB.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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