Wednesday, March 28, 2007

Restoring GRUB

Today I had to reinstall windows on a computer (sigh). On the same hard disk there were a Debian and a Gentoo installation too. Of course, reinstalling windows wiped away the grub boot loader (the root of grub is in the Debian installation).

So, in order to restore grub, I started with a Netinst Debian disk and typed rescue at the boot prompt.

This led me to a shell in the root directory of my Debian installation. I then cd to the directory /boot/grub, and entered grub with the command

grub --batch

without the --batch option I got an error complaining about a non supported terminal (bterm).

at the grub prompt I checked that the root directory was actually in /dev/hdb8:

find /boot/grub/stage1

and got the expected answer (hd0,7) (remember that disks and partitions in grub start from 0 and not from 1).

So I set the root for grub

root (hd0,7)

and installed grub on hd0

setup (hd0)

quit grub and reboot... argh... bad surprise: after the message saying that grub was loading, the screen went blank and couldn't load any operating system :-(

I then booted again with the Debian netinst floppy disk. This time I tried to create a grub disk: I cd into /boot/grub and:

dd if=stage1 of=/dev/fd0 bs=512 count=1
dd if=stage2 of=/dev/fd0 bs=512 seek=1

then booted with this disk. I then got a grub prompt, and tried to reinstall grub from there (using the same steps above).

It worked!!! :-)

This time my grub menu was back and can boot all the operating systems I have.

No comments: