I'm running GRUB 2.00 on a Gentoo Linux system.
I compile my own kernels manually, and then I install them in /boot
with make install
. I have the following kernels in /boot
at the moment:
# ls -1 /boot/vmlinuz*
/boot/vmlinuz-3.7.4-gentoo-5
/boot/vmlinuz-3.7.4-gentoo-first
/boot/vmlinuz-3.7.4-gentoo-fourth
/boot/vmlinuz-3.7.4-gentoo-third
Running grub2-mkconfig
results in the following output:
# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.7.4-gentoo-third
Found linux image: /boot/vmlinuz-3.7.4-gentoo-fourth
Found linux image: /boot/vmlinuz-3.7.4-gentoo-first
Found linux image: /boot/vmlinuz-3.7.4-gentoo-5
done
If I now read the resulting /boot/grub2/grub.cfg
file, I notice that the following entries have been created:
- A main default entry which starts
vmlinuz-3.7.4-gentoo-third
- A submenu with the all the other entries (including recovery ones), in the same order as the
grub2-mkconfig
command
The problem is that at boot time I'd like to load by default the fifth revision of my kernel (vmlinuz-3.7.4-gentoo-5
), not the third one (vmlinuz-3.7.4-gentoo-third
). I also prefer not to access the submenu for choosing the right kernel to load.
How can I change this behaviour? How can I tell GRUB that I want to run the fifth revision of my kernel by default and not the older third revision? In general, how can I change the default entry line to match the kernel I want and not a seemingly random one picked by GRUB?
I also tried putting the following lines in /etc/default/grub
:
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
This doesn't fix the problem the way I desire. But at least GRUB seems to remembers the latest kernel I booted from and automatically selects it from the submenu. It's just that I don't like to access the submenu.
Best Answer
To select a menu entry under the sub-menu "Advanced options" set GRUB_DEFAULT="1>3". You can now run grub2-mkconfig to generate the grub config file. On the next reboot vmlinuz-3.7.4-gentoo-5 should boot.
Note: This won't change the default entry in the grub menu, i.e., the default entry will still indicate the same entry as you have right now. But the image which will be booted by default will be the 4th image under the "Advanced options". To make the vmlinuz-3.7.4-gentoo-5 as the default entry in the grub menu, the ordering of images should be such that the vmlinuz-3.7.4-gentoo-5 should be the first image when you run grub2-mkconfig.