grub 2

The new structure of Grub 2 (Grand Unified Bootloader 2) which is used in Ubuntu 10.04 :

1. grub.cfg (/boot/grub/grub.cfg)

DO NOT EDIT THIS FILE This is the main Grub 2 file. It "replaces" Grub Legacy's /boot/grub/menu.lst. This file contains the Grub menu instructions. Unlike Grub Legacy's menu.lst file, grub.cfg is NOT MEANT TO BE EDITED!!!

grub.cfg is automatically generated or updated whenever "update-grub" is executed. The command must be run as root.

The scripts used to generate grub.cfg include the files contained in /etc/grub.d and information gathered from /etc/default/grub

The file is divided into sections. Each section of the file is clearly delineated and is recognizable by the section header ### BEGIN. The information on this line references the file in the /etc/grub.d folder which is used to incorporate the information into grub.cfg

By default, and whenever the "update-grub" command is executed, this file is made read-only. This is in keeping with the intent that the file should not be edited manually. If you must edit this file, instructions are provided later on this page

2. grub (/etc/default/grub)

This file contains information previously found in the upper section of /boot/grub/menu.lst. It contains settings primarily affecting Grub's menu display. This file can be edited by root to make changes to these settings; they will be imported into grub.cfg when "update-grub" is executed.

GRUB_DEFAULT=0
Sets the default and pre-selected menu entry. Entries may be numeric or saved

GRUB_DEFAULT=0
Sets the default menu entry by menu position. As with Grub Legacy, the first "menuentry" in grub.cfg is 0, the second is 1, etc.

GRUB_DEFAULT="Windows XP Professional (on /dev/sda1)"
Sets the default menu entry by name.

GRUB_DEFAULT=saved
Sets the default menu entry with either whatever was selected on the last boot (if SAVEDEFAULT=true is set and the entry itself contains savedefault), whatever the last grub-set-default command saved or the first entry if nothing has ever been saved or the saved entry can't be found. If the menu is displayed during boot, the previously selected option will be highlighted. If no action is taken, this is selection which will be booted at the end of the timeout, or if the menu is hidden.

GRUB_TIMEOUT=10
No change from Grub Legacy. This is the number of seconds before the default entry is automatically booted.
Setting a value of -1 will display the menu until the user makes a selection (no timeout).

GRUB_HIDDEN_TIMEOUT=0
The hidden timeout option is available to single-OS computers - if multiple OS's are known to Grub 2, this option is bypassed.

On single-OS systems, the menu will be hidden unless a # symbol is present at the beginning of this line. ( # GRUB_HIDDEN_TIMEOUT=0 )
The default setting initially depends on the presence of other operating systems.
Another OS Detected: The menu will be displayed. ( The line will begin with a # symbol. )

No other OS Detected: This setting is not used, as determined by the
For integers greater than 0, the system will pause, but not display the menu, for the entered number of seconds.

0 The menu will not be displayed. There will be no delay.
The user may force displaying the menu as the computer boots by holding down the SHIFT key (single-OS computers only).

During boot, the system will check the SHIFT key status. If it cannot determine the key status, a short delay will enable the user to display the menu by pressing the ESC key.

If enabled, the splash screen designated in 05_debian_theme will be displayed even if the hidden menu feature is selected.

GRUB_HIDDEN_TIMEOUT_QUIET=true
true - No countdown is displayed. The screen will be blank.
false - A counter will display on a blank screen for the duration of the
GRUB_HIDDEN_TIMEOUT value.

GRUB_DISTRIBUTOR=lsb_release -i -s 2> /dev/null || echo Debian
Determines the descriptive name in the menu entry. (Ubuntu, Xubuntu, Debian, etc.)

GRUB_CMDLINE_LINUX
If it exists, this line imports any entries to the end of the linux command line (Grub Legacy's "kernel" line) for both normal and recovery modes. This is similar to the "altoptions" line in menu.lst

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
This line imports any entries to the end of the 'linux' line (Grub Legacy's "kernel" line). The entries are appended to the end of the normal mode only. This is similar to the "defoptions" line in menu.lst. If you want a black screen with scrolling boot messages, remove "quiet splash". If you want a grub splash screen with limited messages underneath the Ubuntu logo, use only "splash". < This [only "splash"]will not work in Karmic during boot as the xsplash does not display the messages , but the messages at shutdown will be displayed.

#GRUB_TERMINAL=console
Uncomment to disable graphical terminal (grub-pc only).

#GRUB_GFXMODE=640x480
Uncomment (remove '#' from beginning of the line) to change (increase) resolution of your boot loader. Use one of classic (4:3 rate):
GRUB_GFXMODE=640x480 (is used if isn't here a proper value)
GRUB_GFXMODE=800x600
GRUB_GFXMODE=1024x768
GRUB_GFXMODE=1600×1200
or make experiments with some others nonstandards like widescreen (16:10 ratio in my case), here is list of most of commonly use Display resolution:
GRUB_GFXMODE=640x400
GRUB_GFXMODE=800x500
GRUB_GFXMODE=1024x640
GRUB_GFXMODE=1280x800
GRUB_GFXMODE=1680x1050

If you don't know what modes are supported by your graphics card, go to the grub command line and run 'vbeinfo'. It will list all available modes. (You might need to run 'insmod vbe' first if the vbe module isn't loaded yet)
GRUB_GFXPAYLOAD_LINUX=640x480x8 [grub2 >= 1.98-1 (Lucid)]

Use this setting to set the framebuffer resolution (replaces the vga= kernel option). It uses the GFXMODE values with additional color depth. Use 'vbeinfo' from the grub command line to list what modes are available to you.

#GRUB_DISABLE_LINUX_UUID=true
Uncomment this line if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux.

GRUB_DISABLE_LINUX_RECOVERY=true
Add or uncomment this line to prevent "Recovery" mode kernel options from appearing in the menu.

GRUB_DISABLE_OS_PROBER=true
Enables/disables the os-prober check of other partitions for operating systems, including Windows, Linux, OSX and Hurd.