Click to enlarge

Click to enlarge


GRUB 2 is derived from PUPA which was a research project to investigate the next generation of GRUB. GRUB 2 has been rewritten from scratch to clean up everything for modularity and portability. A mailing list and a wiki have been setup for discussing the development of GRUB 2.

GRUB 2 targets at the following goals:

  • Scripting support, such as conditionals, loops, variables and functions.
  • Graphical interface.
  • Dynamic loading of modules in order to extend itself at the run time rather than at the build time.
  • Portability for various architectures.
  • Internationalization. This includes support for non-ASCII character code, message catalogs like gettext, fonts, graphics console, and so on.
  • Real memory management, to make GNU GRUB more extensible.
  • Modular, hierarchical, object-oriented framework for file systems, files, devices, drives, terminals, commands, partition tables and OS loaders.
  • Cross-platform installation which allows for installing GRUB from a different architecture.
  • Rescue mode saves unbootable cases. Stage 1.5 was eliminated.
  • Fix design mistakes in GRUB Legacy, which could not be solved for backward-compatibility, such as the way of numbering partitions.

Multiboot Specification

Multiboot Specification is a protocol between a boot loader and an OS kernel. Because this specification is generic, you can use the protocol in your own boot loader and/or in your own OS freely. Follow this link, for more details.

Howto Install Grub2 in Debian and Ubuntu?

Here goes.

First remove your grub.

apt-get remove grub

apt-get install grub2 grub2-splashimages

The new GRUB2 splash images are installed at:

# ls /usr/share/images/grub/

Once you’ve rebooted, your default grub will load up and it has a new option called ‘Chainload into Grub 2′.When you are satisfied that GRUB2 works then you can select the second option, “upgrade-from-grub-legacy

You change the grub images from:


# nano /etc/grub.d/05_debian_theme

and change the following line from:

for i in {/boot/grub,/usr/share/images/desktop-base}/moreblue-orbit-grub.{png,tga}
for i in {/boot/grub,/usr/share/images/desktop-base,/usr/share/images/grub}/Plasma-lamp.{png,tga} and save the file.

Reboot and enjoy!

Howto add “Windows Entry” in GRUB2 ?

Edit the /boot/grub/grub.cfg file!

# nano /boot/grub/grub.cfg

Add this at the end of your /boot/grub/grub.cfg

# (2) Windows XP
menuentry "Windows XP" {
set root=(hd0,1)
chainloader +1

With Windows Vista, via EasyBCD and NeoGRUB

Since EasyBCD's NeoGRUB currently can't understand the GRUB v2 menu format, chain-load to it by replacing the contents of your "C:\NST\menu.lst" file with lines similar to the following:

default 0
timeout 1
title       Chainload into GRUB v2
root        (hd0,1)
kernel      /boot/grub/core.img

Grub2 has a new concept of root partition detection.

Unlike previous version of GRUB, if your XP is in hd1 or sda1

then put hda1 and sda1 and not hd0 /sd0