It is simple and that is why I will be very straight.
The configuration file for grub2 is /boot/grub/grub.cfg, but you do not have to edit that file directly because it is generated by update-grub command and you will loose all your modification on next update.
The best way is to edit the following files:
- the configuration file: /etc/default/grub
- the snippets: /etc/grub.d/
After you alter any of the above configuration files, you need to run the update-grub command.
Now that you are familiar with grub2, if you want to choose a different default kernel, you just edit /etc/default/grub and modify GRUB_DEFAULT.
The list of kernels starts with number 0, so counting from this number down, you choose the one you desire from /boot/grub/grub.cfg.
For instance, if I want to boot by default from kernel 2.6.32-openvz-042stab113.11-amd64 (from below example), I will set GRUB_DEFAULT as 2.
root@vzc:~# grep menuentry /boot/grub/grub.cfg menuentry 'Debian GNU/Linux, with Linux 3.2.0-4-amd64' --class debian --class gnu-linux --class gnu --class os { menuentry 'Debian GNU/Linux, with Linux 3.2.0-4-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os { menuentry 'Debian GNU/Linux, with Linux 2.6.32-openvz-042stab113.11-amd64' --class debian --class gnu-linux --class gnu --class os { menuentry 'Debian GNU/Linux, with Linux 2.6.32-openvz-042stab113.11-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {