Recovering GRUB after installing Windows 7?
How can I repair GRUB? (How to get Ubuntu back after installing Windows?)
I installed Windows 7 after it crashed, and now I am unable to boot Ubuntu. Ubuntu partitions are still there. I tried using Boot-Repair, but it didn't work!
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
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):
[email protected]:~$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
/bootpartition. If you do, you will need to also mount it by typing
sudo mount /dev/sd·· /mnt/boot
sd··is the partition where you installed the separate boot directory.
ls /mnt- just checking to see if I got it right:
[email protected]:~$ sudo mount /dev/sde3 /mnt [email protected]:~$ 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/bootand if it is empty, the boot directory is not installed. It should look something like this:
[email protected]:~$ 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
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
[email protected]:~$ sudo for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done [email protected]:~$ sudo chroot /mnt [email protected]:~$ 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 -llisting you have already done. Then type in
sudo grub-install /dev/sdreplacing
sd·with the disk you will boot from.
[email protected]:~$ sudo grub-install /dev/sd·
Then type in
Crtl-Dto exit chroot.
Then type in
sudo for i in /sys /proc /dev/pts /dev; do sudo umount /mnt$i; done- as one line
[email protected]:~$ 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
[email protected]:~$ sudo umount /mnt/boot
Then type in
sudo umount /mnt
[email protected]:~$ sudo umount /mnt
Then type in
sudo rebootto restart he system (remember to remove the LiveCD).
[email protected]:~$ sudo reboot
Hopefully, grub will be installed.
I just installed Win7 for a friend and had to this. Thanks to askubuntu, I didn't have to try to remember. Yea! askubuntu.
Worked great, thanks! Just a note, I didn't bother with all the `umount`ing at the end -- ubuntu automatically unmounts filesystems on shutdown. So I just did a `sudo reboot` and everything worked fine.
You also need to mount the EFI partition for modern installations. `sudo mount /dev/ /mnt/boot/efi`
To recover grub:
- Open the live version.
- Open the terminal and run
sudo fdisk -lto see where Linux is installed.
sudo mount /dev/sdaX /mntwhere x is the number you have found Linux word in
sudo grub-install --root-directory=/mnt /dev/sdato install grub.
sudo update-grubto update grub and if this command didn't work run it after rebooting.
I have problem in step 5. May you explain more? I get this `usr/sbin/grub-probe: error: faild to get canonical path of 'aufs `
@user145959 as i said if you have errors you can run this command after restarting.
That works, in my case was Ubuntu 18.04 and Windows 7 Ultimate. The `sudo update-grub` didn't work for me even after rebooting. Grub worked fine though, thanks a lot for this solution.
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
After installing Windows 7, Windows bootloader has overridden the MBR.
To fix this you can install a program 'EasyBCD' in Windows
Follow these steps to restore GRUB when after installing EasyBCD:
Launch the program and select ADD NEW ENTRY from the EasyBCD Toolbox
Select the 'Linux/BSD' from the operating systems column
Choose GRUB (Legacy) under type and Click on the ADD ENTRY icon
Choose YES to the restart prompt
GRUB will be displayed after the restart which will detect the Ubuntu partition for you to be able to boot into Ubuntu
Download link: http://neosmart.net/download.php?id=1
One nuance to be careful about - the instructions say to check if you have a separate boot partition, and if so then do sudo mount /dev/sd·· /mnt/boot. I got confused here - I did have a boot partition that was not my Linux, it was my base partition (/sda0). So I did that command, and ended up getting a grub menu that only showed my Windows boot. I re-ran the procedure without the doing the sudo mount /dev/sd·· /mnt/boot and it worked beautifully - my old GRUB menu was back, with all the Linux options as well as Windows. The instructions are only referring to a separate Linux boot partition, not for the case where your boot partition is not Linux.