Restore Debian Linux Grub boot loader

by on August 15, 2005 · 16 comments· LAST UPDATED July 26, 2007

in , ,

Recently my hard disk went bad (some bad sectors developed), my boot.ini (Windows XP boot file) corrupted. I was using NT boot loader to load Linux. So I need to repair the Grub i.e. restore Grub in master boot record (MBR).

Today is national holiday (I-DAY) and I wanna watch TV. Problem is neither I can boot to Linux nor using XP. So I just took my Debian GNU/Linux DVD and booting started when I had presented installation option (after networking dialog prompt) :
1) Press ALT+F2 (or ALT+CTRL+F2) to get shell prompt
2) Then get the partition tables for the devices using fdisk command:
# fdisk -l

3)When you type fdisk -l, you should see your partition name: /dev/scsi/host0/bus0/target0/lun0/part1 (for IDE disk it display same device file in IDE directory)

4)Once you identified your device file, mount disk using mount command:
# mkdir /mydisk
# mount /dev/scsi/host0/bus0/target0/lun0/part1 /mydisk

5) Next use chroot command to start interactive shell with special root directory i.e. /mydisk will act as root directory.
# chroot /mydisk

6)Use grub-install command to reinstall grub (SCSI disk):
# grub-install /dev/sda

If you have IDE device following command :
# grub-install /dev/hda

Again replace /dev/hda and /dev/sda with your actual device names.

7)Type exit and reboot the system. You should see your GRUB and Linux again.
# exit

Other choice was to use Linux Live CD (e.g. Mepis) and do the above procedure. Well, I could have used the Mepis to watch TV but I had some data and emails in Tunderbird so I opted to restore the Grub; watched TV, took backup of emails and now I will put new 120 GiB hard disk tomorrow :D

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 16 comments… read them below or add one }

1 krishnakumar January 22, 2008 at 7:39 am

very nice comment

Reply

2 krishnakumar January 22, 2008 at 7:40 am

very nice thank u

Reply

3 danuthaiduc February 5, 2008 at 10:05 am

Saved my life! luckily i had a LiveCD to be able to read this…
Thanks!

Reply

4 raf April 11, 2008 at 6:49 pm

I have a problem regarding dual boot (vista & ubuntu) when successful in installing ubuntu, I can’t boot to vista, only ubuntu. It said virus:….. Is it like a boot virus? how to fix that? thank you

Reply

5 rc July 5, 2008 at 7:10 am

I’ve been following your instructions but it does not work. Since I chrooted to the mounted /dev/sda2 (where grub sould be installed in /boot) grub-install looks for the device file (/dev/sda) in the chrooted dir and thus returns an error; /dev/sda: not found or not a block device. Which makes sense because I did not boot to sda so the /dev/sda device file was never created.

By the time you read this (hopefully) I’ll have it fixed, but would like to know what I’m not getting just for curiosity sake. Will be checking back.

thanks

Reply

6 davidb September 1, 2008 at 2:54 pm

thanks, good instructions.

though, you should probably unmount the drive before restarting (though it really isn’t that important).

Reply

7 Anand October 7, 2008 at 7:52 am

i forgot my linux root password.

so. solve me

root password……….

Reply

8 Ankur April 24, 2009 at 2:31 pm
9 suresh November 9, 2009 at 2:09 pm

Hi..
I tried to restore grub by using the debiam rescue mode…This time I lost windows..!!While selecting windows it is again loading Grub Stage2 and showing the grub menu again….Please help me out..!!

Reply

10 l4mer February 12, 2010 at 9:40 am

I had:
not found or not a block device.
message.
So, next I create node for my /dev/hda
mknod /dev/hda 3 0
mknod /dev/hda5 3 5

Reply

11 Bjoern June 12, 2010 at 1:47 pm

Phew, thanks!. Managed to clone my old disk and now running my old Debian install on my new disk.

Reply

12 LYNXLUNX January 24, 2011 at 2:04 am

Several users have noted that when they chroot into the special directory, and run grub-install, they receive this warning: ‘not found or not a block device’. Also, these users will notice that the devices haven’t been discovered in /dev/

To solve this problem, make sure udev is picking up those devices. Do this instead:

# mount -o bind /dev /mydisk/dev
# mount -o bind /proc /mydisk/proc

Now chroot into the new directory
# chroot /mydisk

Run the grub reinstall
# grub-install /dev/hda

For those users who chroot into the mounted directory, and run the grub-install command only to be left with the message:

Reply

13 Oti September 20, 2011 at 4:11 pm

Thank you very much !
It’s the first tuto that works for me, there’s an awful lot of topics that do not even mention the “chroot” part…

Reply

14 LineshJose February 19, 2012 at 1:32 pm

Nice tut. thanks bro. you saved me :)

Reply

15 Thomas Jobe Lawnmowerman March 31, 2012 at 9:25 am

A very nice tutorial which is still valid today.
This was the howto which got me onto the path of solving my non-booting Debian Server (Sqeeze).

After loading up the Debian-CD rescue mode and entering the rescue shell
update-grub2 would not run.

launching /sbin/bash is a good idea by the way

There is one thing you could have mentioned which I had to do in order to rescure my system. I had to manually mount the /boot paritition and then update-grub2
worked perfectly.

Thanks a lot mate

Reply

16 debman August 13, 2013 at 5:48 pm

I can has Tunderbird???

Reply

Leave a Comment

Tagged as: , , , , , , , , , , , , ,

Previous post:

Next post: