Freely Scripted Soul

February 3, 2008

Reinstalling Grub boot loader

Filed under: Software and Technology,Ubuntu — Roshan @ 8:41 am
Tags: , , , ,

REASONS:

 

  • Grub, by default, resides in the Master Boot Record(MBR). When you try to install some other boot loader or try to install/reinstall Windows, the grub information in the MBR will be overwritten. So, Grub might have to be reinstalled.
  • When some/any part of partition information is changed, the grub configuration won’t be automatically notified of it and so, the grub configuration will remain as it is. There maybe many cases in which the partition information maybe changed like when you create an extra partition, which is something trivial and may or may not affect the grub boot loader. However, most of the times, changes in the partition information will result in errors when the grub boot loader is loaded. So, the grub configuration has to be updated and the easiest way is to reinstall Grub.

 

There are many such cases and in these cases, people tend to treat the effect, more than the cause. By this, I mean people tend to usually reinstall Ubuntu or Fedora or whichever GNU/Linux operating system they are using, through which Grub will be automatically reinstalled. But is it necessary? No, Grub can be reinstalled without reinstalling the entire operating system! In fact, Fedora CD/DVD does offer to reinstall Grub if you choose to upgrade your system. However, I have tried to use that option in many of my friends’ computers and it has never worked! I have no idea why it doesn’t work. So I resort to the easiest fool-proof method I know – COMMANDS @ TERMINAL

 

COMMANDS TO REINSTALL GRUB:

 

All you need to do is access the terminal using the installation CD/DVD of your GNU/Linux operating system. Ubuntu installation CD is a live CD and so, when it loads, you can run the terminal from there. Fedora installation CD/DVD offers options through which you will have to choose to upgrade the system using commands(rescue mode).

 

Once you are at the terminal, you will have to access the ‘grub’ shell to change the grub configuration. So, give this command at the terminal:

$ grub

If it says that you don’t have the permission, in which case you will not have logged in as root(as in Ubuntu), give this command at the terminal:

$ sudo grub

You will get the grub-shell prompt:

grub>

 

Now, you will have to find out in which partition Grub had been installed before, so that you reinstall in that partition only. Give this command at the terminal:

grub> find /boot/grub/stage1

(returns value)

It returns the number of the partition in which Grub i.e your GNU/Linux had been installed.

e.g.,

grub> find /boot/grub/stage1

(hd0,2)

 

NOTE:

Sometimes, when Grub has not been installed properly, the file “/boot/grub/stage1” may not exist. So, the output will be “Error 15: File not found”. In such a case, come out of the grub-shell by pressing “Ctrl+c”. Then, at the shell prompt, give this command at the terminal:

$ fdisk -l

Again, if you are not logged in as root, give this command at the terminal:

$ sudo fdisk -l

The output will list all the partitions and it’s properties, including the file system type.

e.g.,

Device Boot Start End Blocks Id System
/dev/sda1   1 654 5253223+ b W95 FAT32
/dev/sda2 * 655 1962 10506510 7 HPFS/NTFS
/dev/sda3   1963 3924 15759765 83 Linux

The “System” attribute of your GNU/Linux operating system will be “Linux”. So note down that partition number.

e.g., sda3

Since it’s array numbering, sdaN is mapped to (hd0,N-1).

Just (hd0) will be the Master Boot Record(MBR).

sda1 will be (hd0,0) and so on.

So, sda3 will be (hd0,2)

Now, log into the grub-shell prompt again.

 

Before reinstalling Grub, you will have to notify the partition that your Grub i.e. GNU/Linux is resided in. So, give this command at the terminal:

grub> root (returned value)

e.g.,

grub> root (hd0,2)

 

Now, reinstall grub in the MBR i.e. the returned value without number part.

e.g., (hd0)

So, give this command at the terminal:

grub> setup (returned value without number part)

e.g.,

grub> setup (hd0)

 

Exit the grub-shell prompt using “Ctrl+c”.

Exit the shell prompt using “Ctrl+d”.

 

PS:

You can also reinstall Grub in your GNU/Linux partition, only if this GNU/Linux partition is “primary” and you have another boot loader installed at the MBR(in case of more than one GNU/Linux operating systems) through which you can boot this primary partition. To do that, give this command at the terminal:

grub> setup (returned value)

e.g.,

grub> setup (hd0,2)

Create a free website or blog at WordPress.com.