Tuesday, September 21, 2010

How to Fix a Grub2 Selective Boot after Destroying It

This is a copy of an article. It is not plagiarized - I do not claim to have written it. This is simply copied here so I always have it as a reference and others may have it too. This was the best explanation I found and it took a long time to find it. The original posting in the forum is gone - as I expected. It has shown up in another forum now and it will also be gone at some point. I did not edit out the extraneous banter or correct the spelling in respect to the original author who is unknown but I thank him/her. 

From http://www.ubuntu-inside.me/2009/06/howto-recover-grub2-after-windows.html and now http://ubuntuforums.org/archive/index.php/t-1752186.html


I clobbered Grub - now what?

My Grand Unified Boot-loader was failing to be able to load Windows XP and I restored the Windows boot by copying the NTLDR and ntdetect.com from the install disk and using the fixmbr and fixboot commands. Now I can't boot Linux.

The problem probably was that the Ubuntu 10.04 LTS upgrade reset GRUB2.

I found this solution and it works:

Today i destroyed my Grub2 via installing windows on my notebook which i write blog posts.(I quit smoking , so i have to play some games : ) No rush). It may be hard to recover it since there are not much (i did not find anything) howtos around the net about recovering Grub2.Here is the step by step guide to recover it :

You will need a LIVE cd if you are going to recover an Ubuntu Box.Download Ubuntu Jaunty, Karmic whatever you want.Open the system with Live CD (I assume you are using Ubuntu Live CD).Press Alt+F2 and enter gnome-terminal command.And continue by entering :

$sudo fdisk -l

This will show your partition table.Here is my table to understand it better :

/dev/sda1 29 8369 66999082+ 83 Linux
/dev/sda2 * 8370 13995 45190845 7 HPFS/NTFS
/dev/sda3 13996 14593 4803435 5 Extended
/dev/sda5 13996 14593 4803403+ 82 Linux swap / Solaris

Now i will mount Linux (sda1 here), i have no external boot partition as you can see.(IF YOU HAVE external one, do not forget to mount it! )

$sudo mount /dev/sda1 /mnt
$sudo mount --bind /dev /mnt/dev
$sudo mount --bind /proc /mnt/proc

The following command is optional (it copies resolv.conf)

$sudo cp /etc/resolv.conf /mnt/etc/resolv.conf

Now chroot into the enviroment we made :

sudo chroot /mnt

After chrooting, you do not need to add sudo before your commands because from now, you will run commands as root.

You may want to edit /etc/default/grub file to fit your system (timeout options etc)

#nano -w /etc/default/grub

Play with the options if you want.(But do not forget to give grub-update command if you saved it ;) )

Now install/recover Grub2 via :

#grub-install /dev/sda

command.However you may get errors with that code like me.If so please use this command :

#grub-install --recheck /dev/sda

Now you can exit the chroot, umount the system and reboot your box :

#exit
$sudo umount /mnt/dev
$sudo umount /mnt/proc
$sudo umount /mnt
$sudo reboot

No comments:

Post a Comment