This post provides a brief introduction to Grub 1.99. It presents a few of the differences with earlier versions of Grub "2" - Grub 1.97~beta or Grub 1.98. The actual version of Grub 2 distributed with Ubuntu 11.04, Natty Narwhal, is Grub 1.99 RC1.
With the end of official support for Ubuntu 9.10, Karmic Koala, Grub 2 is now the default bootloader for the entire Ubuntu Desktop family.
Grub 1.99's improvements are especially noteworthy for users booting non-EXT 2/3/4 filesystems. Video capabilities are improved, there are support enhancements for Zen, btrfs, EFI, DM-RAID, grub scripting, USB hotplugging and lots more. For a more complete list of what's new for Grub 1.99, see the release announcement from Vladimir Serbinenko. For detailed descriptions of Grub 1.99, see the GNU Grub 1.99 Manual.
In order to reduce the GRUB menu entries visible on boot, Grub 1.99 will incorporate a submenu feature in the main OS section of the menu. Only the latest kernel (plus its recovery mode if enabled) will be visible. If additional kernels are available, a new entry on the main menu will appear: "Previous Linux versions". Access to these additional kernels is gained by highlighting and selecting this menu, at which time a second page will display.
Users can still set an older kernel as the default, but the format of the GRUB_DEFAULT= setting in /etc/default/grub has changed. Please refer to the following thread for more details on the submenu feature.
Grub 1.99 Submenus
Settings & Command Changes
- Grub will be upgraded to 1.99RC1 during an online upgrade to Natty or with a clean installation.
- grub-gfxpayload-lists is a new dependency for grub-pc (Grub 2). It is used to help the graphical handoff from Grub to the kernel.
- Previous releases of Ubuntu will not be upgraded to 1.99RC1. If desired, the user could temporarily change the main repository to natty, install grub-common, grub-pc and grub-gfxpayload-lists, then return the repository to the installed release. Upgrade only the specified packages. Doing an update of all packages with a combination of natty and another release will likely break your system.
- --boot-directory= option when using grub-install, grub-set-default, or grub-reboot
- NOTE to Forum Helpers! This change is bound to create a bit of confusion in cases where the user needs to repoint the MBR to the actual partition with the Grub files. For several years we have been using the "--root-directory" switch. While the old command/switch will still work, it might be useful when/if using the new switch this change is empahsized. When using the "--boot-directory" switch, don't forget that the specified path must also contain grub's parent folder (normally 'boot').
- When using the grub-install, grub-set-default, or grub-reboot commands, the new '--boot-directory' option is used to specify the target folder DIR/grub; i.e. the folder into which the grub folder will be installed. If the switch is not used, /boot/grub is assumed.
- The default folder is /boot/grub if not specified.
To install on a currently-running Ubuntu installation located on the sda drive:
Code:sudo grub-install /dev/sda
- To install from the LiveCD to an Ubuntu partition mounted on sda's /mnt:
Code:sudo grub-install --boot-directory=/mnt/boot /dev/sda
- Grub will be placed in the sda MBR and point to /mnt/boot/grub
- This command is equivalent to the former "sudo grub-install --root-directory=/mountpoint /dev/sda", which will still work and would place the grub folder in the same location (sda MBR and the mounted partition's /boot/grub folder.)
- Configuration Settings in /etc/default/grub
Replaces GRUB_DISABLE_LINUX_RECOVERY= in /etc/default/grub
Introduced in later versions of Grub 1.98, this setting allows the user to designate the location of a .png, .tga, or .jpg/.jpeg image to be used as a background image on the Grub screen.
A separate post details how to use this capability and how to set the menu text and background colors.
- To see a complete list of available options for /etc/default/grub, run the following command and then refer to the GNU Grub manual for a description.
Code:grep DEVICE -A40 /usr/sbin/grub-mkconfig
- Menuentry Change Error Alert!
Code:search --no-floppy --fs-uuid --set=root <UUID>
- Replaces "search --no-floppy --fs-uuid --set <UUID> in /boot/grub/grub.cfg (auto-generated)
If an old menuentry or a custom menu using the older convention "--set <UUID>" is used, expect one of the following errors when attempting to boot:
Error: No Argument Specified
Error: Invalid Signature
Repairing Grub Problems
There are enough differences between Grub 1.99 and previous versions that it is necessary to use the same version when attempting to repair Grub via a LiveCD. In other words, don't try to repair a Natty Grub problem with a Maverick LiveCD, or vice versa. This includes running the "grub-install" command to rewrite the MBR information.
If you are familiar with changes to common entries in Grub 2 brought about by this upgrade to 1.99 RC1, please feel free to add to this thread.
Grub 1.99 Submenus
Grub 1.99 Drop-In Backgrounds