Archive for February, 2010

Grub – What will you do with the black screen of failure?

Grub errors – One of the most common/frustrating errors an average Linux user faces. What’s more frustrating is that there are so many threads in so many forums on this issue that its simply impossible to try out all of them, and the probability of hitting the right one is quite low.

So, here’s a method that I use, something that hasn’t failed me till date.

Step 1 : Procure a debian based live cd (essentially something which uses grub) { This BTW is a tip to all Linux users, ALWAYS have a live CD with you, don’t go around in a wild goose chase for it just when you have problems, Murphy always beats you to it. }
And boot into it.

Step 2: Type the following commands, I’m not going to explain in detail what these do, they are pretty simple commands anyway.

sudo mkdir /mnt/root
sudo mount /dev/sdXY /mnt/root [ here sdXY is your root partition, my case it was sda2 ]
sudo mount -t proc none /mnt/root/proc [Hint: Use tab completion here, you’ll know if you’re using the right sdXY]
sudo mount -o bind /dev /mnt/root/dev
sudo chroot /mnt/root /bin/bash

Step 3: Now, type ls, you’ll see a familiar list of files. Yes, you’re in a root shell of your hard disk. Now, you can do any changes you need to do from “your” bash.

Step 4: [The Fix]

EDIT: Seems, things are a lot easier when you deal with grub-pc these days. Your life is much easier. All you have to do is to:

sudo grub-install /dev/sdX [The same X that you had used above]

And you’re done 🙂

If even that fails for you, the one below might work. Atleast it did for me the last time I tried it.

More commands to be executed:

grub

You should be in the grub prompt now.

If it says command not found, you’re in for more work.
The issue is you’re in a newer version of grub, which is grub-pc.
So in order for this fix to work,

aptitude install grub-legacy
grub

and proceed. [Note: the install will probably remove grub and grub-pc, don’t worry]

So, now you’re in grub prompt,

find /boot/grub/stage1

This will give you a list of root partitions in (hdX,Y) format, choose one of them.

root (hdX,Y)
setup (hdX)

This should give you a success result.

If not, make sure you’ve typed the commands in right order and have chosen the right values of X and Y.

{ And how to choose the right values of the (hdX,Y)? If your root partition is at say /dev/sda2, it is (hd0,1) }

Now, more stuff to be taken care of, the issue with grub setup is at times it changes your device map. So make sure you edit the /boot/grub/ment.lst file to have the right values of the root partition and the kernel images, especially if you had grub-pc installed.

Now, exit from the chroot shell, sudo umount /mnt/root and reboot.

You’ll no longer see the grub failure screen or the grub rescue prompt 🙂