Recovering GRUB after installing Windows 7? [duplicate]
Solution 1:
You can re-install grub in the Master Boot Record using the LiveCD for you distribution version,
It goes like this:
Boot from LiveCD ⋯ please try to use a LiveCD that has the same version of Grub2 as the installed version
Mount the root of the installed Ubuntu at /mnt
Change root
Update grub
Install grub
Reboot
The above steps are from near the bottom of the Ubuntu Community Documentation of Grub2
After booting from the liveCD ( select "Try Ubuntu" on the opening screen)
Then start up a terminal (dash, type-in terminal, … )…
- It may be easier to open this web page while running LiveCD. Firefox should allow you to do this.
Type in the terminal sudo fdisk -l
- and enter your password if asked. That's a lower case L. Find the installed Ubuntu partitions, (from mine with other disks snipped ― here):
me@mycomputer:~$sudo fdisk -l
...
Disk /dev/sde: 300.1 GB, 300089646592 bytes
255 heads, 63 sectors/track, 36483 cylinders, total 586112591 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc3f5ebeb
Device Boot Start End Blocks Id System
/dev/sde2 138464296 586110975 223823340 5 Extended
/dev/sde3 * 2048 138463231 69230592 83 Linux
/dev/sde5 138464298 313460279 87497991 7 HPFS/NTFS/exFAT
/dev/sde6 313460736 317650943 2095104 82 Linux swap / Solaris
/dev/sde7 317652992 581922815 132134912 83 Linux
/dev/sde8 581924864 586110975 2093056 82 Linux swap / Solaris
Partition table entries are not in disk order
Find your Linux installation (Id=83, System=Linux0 then type in
sudo mount /dev/sde3 /mnt
but use your partition instead of /dev/sde3
(my root partition is sde3, sde7 is my home partition).
This is assuming that you do not have a separate /boot
partition. If you do, you will need to also mount it by typing
sudo mount /dev/sd·· /mnt/boot
where sd··
is the partition where you installed the separate boot directory.
ls /mnt
- just checking to see if I got it right:
me@mycomputer:~$ sudo mount /dev/sde3 /mnt
me@mycomputer:~$ ls /mnt
bin cdrom etc initrd.img lib media opt root sbin srv tmp var vmlinuz.old
boot dev home initrd.img.old lost+found mnt proc run selinux sys usr vmlinuz
You should test to see if the boot directory is properly installed. Type in ls /mnt/boot
and if it is empty, the boot directory is not installed. It should look something like this:
me@mycomputer:~$ ls /boot
abi-2.6.35-30-generic initrd.img-2.6.35-30-generic System.map-2.6.35-31-generic
abi-2.6.35-31-generic initrd.img-2.6.35-31-generic vmcoreinfo-2.6.35-30-generic
config-2.6.35-30-generic memtest86+.bin vmcoreinfo-2.6.35-31-generic
config-2.6.35-31-generic memtest86+_multiboot.bin vmlinuz-2.6.35-30-generic
grub System.map-2.6.35-30-generic vmlinuz-2.6.35-31-generic
Then:
for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt #change the root
sudo update-grub # now update grub
Example:
me@mycomputer:~$ sudo for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done
me@mycomputer:~$ sudo chroot /mnt
me@mycomputer:~$ sudo update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.0.0-13-generic
Found initrd image: /boot/initrd.img-3.0.0-13-generic
Found linux image: /boot/vmlinuz-3.0.0-12-generic
Found initrd image: /boot/initrd.img-3.0.0-12-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Microsoft Windows XP Professional on /dev/sdc1
done
Now to re-install grub in the MBR. You will need to know which disk your system boots from, and find it in the fdisk -l
listing you have already done. Then type in sudo grub-install /dev/sd
replacing sd·
with the disk you will boot from.
me@mycomputer:~$ sudo grub-install /dev/sd·
Then type in Crtl-D
to exit chroot.
Then type in sudo for i in /sys /proc /dev/pts /dev; do sudo umount /mnt$i; done
- as one line
me@mycomputer:~$ sudo for i in /sys /proc /dev/pts /dev; do sudo umount /mnt$i; done
If you mounted a separate /boot partition, type in sudo umount /mnt/boot
me@mycomputer:~$ sudo umount /mnt/boot
Then type in sudo umount /mnt
me@mycomputer:~$ sudo umount /mnt
Then type in sudo reboot
to restart he system (remember to remove the LiveCD).
me@mycomputer:~$ sudo reboot
Hopefully, grub will be installed.
Solution 2:
Try this...
To recover grub:
- Open the live version.
- Open the terminal and run
sudo fdisk -l
to see where Linux is installed. - Run
sudo mount /dev/sdaX /mnt
where x is the number you have found Linux word in - Run
sudo grub-install --root-directory=/mnt /dev/sda
to install grub. - Run
sudo update-grub
to update grub and if this command didn't work run it after rebooting. - Reboot.
Solution 3:
Boot-Repair is a simple tool to repair frequent boot issues you may encounter in Ubuntu like when you can't boot Ubuntu after installing Windows or another Linux distribution, or when you can't boot Windows after installing Ubuntu, or when GRUB is not displayed anymore, some upgrade breaks GRUB, etc.
Remark: this can also be performed from a live-CD or live-USB.
Either add ‘ppa:yannubuntu/boot-repair’ to your Software Sources via the Software Centre or, for speeds-sake, add it using a new Terminal session:
sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair
Boot-Repair can be installed & used from any Ubuntu session (normal session, or live-CD, or live-USB). PPA packages are available for Ubuntu 10.04, 10.10, 11.04, 11.10, 12.04 and 12.10. source