Installing Grub boot loader

Grub stands for GRand Unified Bootloader. When a PC starts, processor executes code stored in flash memory on the motherboard commonly known as BIOS (Basic Input Output System). Bios performs power-on self test (POST) which checks hardware. It then finds the device from which to boot the PC and loads its first sector into memory. This sector is 512 bytes in size and is known as MBR (master boot record). Grub’s stage1 which is exactly 512 bytes is installed into MBR. The job of stage1 is to load stage2 (optionally stage 1.5) which displays boot menu and loads the kernel.

Ok, enough theory.

Sometimes, the MBR gets written by another operating system or gets corrupted. In that case, it needs to be reinstalled on the MBR.

The system needs to be booted from rescue CD or boot floppy to install grub.

After booting, type grub and press enter to get grub the prompt like below

grub>

Next,we need to tell grub the location of boot parturition (usually /boot) with the following command

grub> root (hd0,0)
 Filesystem type is ext2fs, partition type 0x83

Here we are setting first hard drive’s first partition as boot location. It is where grub’s stage2 and grub.conf or menu.1st files are found.

Note: For grub drives and partitions starts with 0.

By the way, command completion works at grub prompt so if we type root (h and press tab, grub will either fill
in the remaining part on single partition system or give us possible options. In my case

grub> root (hd0,
 Possible partitions are:
   Partition num: 0,  Filesystem type is ext2fs, partition type 0x83
   Partition num: 1,  Filesystem type unknown, partition type 0x8e

Now find where the stage 1 file is located. In multi-boot systems, each installation will have its own stage1 file and the following command returns the location of the first one found.

grub> find /boot/grub/stage1
(hd0,0)

One point is worth noting here though. If you are using LVM or separate /boot partition the find command will return “No file found error”. In that case the following command will find the location of stage1

grub> find /grub/stage1
 (hd0,0)
 

Now to install grub on the MBR of the first harddrive, we issue the following command

grub> setup (hd0)
 Checking if "/boot/grub/stage1" exists... no
 Checking if "/grub/stage1" exists... yes
 Checking if "/grub/stage2" exists... yes
 Checking if "/grub/e2fs_stage1_5" exists... yes
 Running "embed /grub/e2fs_stage1_5 (hd0)"...  15 sectors are embedded.
succeeded
 Running "install /grub/stage1 (hd0) (hd0)1+15 p (hd0,0)/grub/stage2 /grub/grub
.conf"... succeeded
Done.

Type quit to get out of grub prompt and then reboot

grub> quit

For in depth information about grub visit Gnu grub

Reblog this post [with Zemanta]

 

 

2 Responses to “Installing Grub boot loader”

  1. nijam Says:

    GRUB4DOS 0.4.4 2009-4-20,memory 639k/ 1788m Menu End 0×434CE
    [Minimal BASH -like line is supported. For the first word, TAB list possible command completions. Anywhere else TAB lists the possible completion of a
    device/filename.ESC at any time exists.]

    GRUB>root (hd0,1)
    FileSystem type is ntfs,partition type 0×07

    GRUB>setup (hd0)
    Error 15 file not found

    GRUB>setup (hd0,1)
    Error 15 file not found

    please help me immediately………………..

  2. nijam Says:

    GRUB4DOS 0.4.4 2009-4-20,memory 639k/ 1788m Menu End 0×434CE
    [Minimal BASH -like line is supported. For the first word, TAB list possible command completions. Anywhere else TAB lists the possible completion of a
    device/filename.ESC at any time exists.]

    GRUB>root (hd0,1)
    FileSystem type is ntfs,partition type 0×07

    GRUB>setup (hd0)
    Error 15 file not found

    GRUB>setup (hd0,1)
    Error 15 file not found

    please help me immediately………………..

Leave a Reply