Upgrading from 13.10 to 14.04 broke Grub
I have a dual boot Ubuntu + Windows 8 on an UEFI system. Everything was ok until I upgraded to Ubuntu 14.04 from 13.10.
Now what I get when I boot the pc is a grub rescue screen like this with the following:
Failed to open \EFI\Microsoft\Boot\grubx64.efi - 800000000000000E
Failed to load image
Failed to open \EFI\Microsoft\Boot\MokManager.efi.efi - 800000000000000E
Failed to load image
Welcome to GRUB!
error: symbol 'grub_term_highlight_color' not found.
grub rescue>
Using boot-repair from a live cd (either 13.10 or 14.10) reports that an error occurred and creates this report: http://paste2.org/Y8mDwa0M
(Boot repair says it will install packages from Ubuntu 13.10)
but nothing changes.
If I press f12 at the boot I get to a bios screen (Boot Menu) where I can choose from hdd, usb, dvd reader and if I click on the HDD I get three choices:
Select a device to boot:
Windows Boot Manager
ubuntu
Ubuntu
The Windows option take me back to the grub rescue.
With the other two options I get to a grub menu where I am able to start Ubuntu but the window option doesn't work
I don't know anymore what to do
Update:
Thanks for the answers, I actually tried all of them (reinstalled grub more than 5 times from different versions of Ubuntu on USB sticks and used a lot of times boot repair but nothing worked)
At the end I'm using rEFInd (http://www.rodsbooks.com/refind/getting.html) which is allowing me to get to grub from which I can start Ubuntu (but not windows) and starting windows on its own using rEFInd menu.
But of course it's not the ideal solution
Update 2:
I have only one disk:
Update 3:
this is the error that appears when I try to install grub or run grub-install:
Installing for i386-pc platform.
grub-install: Warning: This GPT partition label has no BIOS Boot Partition, the embed is not possible.
grub-install: Warning: This embed is not possible. GRUB can only be installed in this configuration using blocklist. The blocklist however, are not reliable and it is not recommended to use ..
Installation completed, no errors reported.
Generating grub configuration file ...
Found linux image: / boot/vmlinuz-3.13.0-24-generic
Found initrd image: / boot/initrd.img-3.13.0-24-generic
Found linux image: / boot/vmlinuz-3.11.0-19-generic
Found initrd image: / boot/initrd.img-3.11.0-19-generic
Found linux image: / boot/vmlinuz-3.11.0-7-generic
Found initrd image: / boot/initrd.img-3.11.0-7-generic
Found linux image: / boot/vmlinuz-3.11.0-5-generic
Found initrd image: / boot/initrd.img-3.11.0-5-generic
Found linux image: / boot/vmlinuz-3.11.0-4-generic
Found initrd image: / boot/initrd.img-3.11.0-4-generic
Found linux image: / boot/vmlinuz-3.11.0-3-generic
Found initrd image: / boot/initrd.img-3.11.0-3-generic
Found linux image: / boot/vmlinuz-3.11.0-2-generic
Found initrd image: / boot/initrd.img-3.11.0-2-generic
Found Windows Boot Manager on / dev/sda2 @ / EFI / Microsoft / Boot / Bootmgfw.efi
Adding boot menu entry for the EFI firmware configuration
done
(translated from italian)
I did not test this with a broken grub in 14.04 but I never got in trouble by using these instructions:
https://wiki.ubuntu.com/Grub2#Recover
First of all, you must start your system from a live cd or usb. Then
"METHOD 3 - CHROOT
This method of installation uses the chroot command to gain access to the broken system's files. Once the chroot command is issued, the LiveCD treats the broken system's / as its own. Commands run in a chroot environment will affect the broken systems filesystems and not those of the LiveCD.
1) Boot to the LiveCD Desktop (Ubuntu 9.10 or later). Please note that the Live CD must be the same as the system you are fixing - either 32-bit or 64-bit (if not then the chroot will fail).
2) Open a terminal (Applications > Accessories > Terminal).
3) Determine your normal system partition - (the switch is a lowercase "L")
sudo fdisk -l
If you aren't sure, run
df -Th
Look for the correct disk size and ext3 or ext4 format.
4) Mount your normal system partition:
Substitute the correct partition: sda1, sdb5, etc.
sudo mount /dev/sdXX /mnt
Example: sudo mount /dev/sda1 /mnt
5) Only if you have a separate boot partition: sdYY is the /boot partition designation (for example sdb3)
sudo mount /dev/sdYY /mnt/boot6) Mount the critical virtual filesystems:
sudo mount --bind /dev /mnt/dev sudo mount --bind /dev/pts /mnt/dev/pts sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys7) Chroot into your normal system device:
sudo chroot /mnt
8) If there is no /boot/grub/grub.cfg or it's not correct, create one using
update-grub
9) Reinstall GRUB 2:
Substitute the correct device - sda, sdb, etc. Do not specify a partition number.
grub-install /dev/sdX
10) Verify the install (use the correct device, for example sda. Do not specify a partition):
sudo grub-install --recheck /dev/sdX
11) Exit chroot: CTRL-D on keyboard
12) Unmount virtual filesystems:
sudo umount /mnt/dev/pts sudo umount /mnt/dev sudo umount /mnt/proc sudo umount /mnt/sys
13) If you mounted a separate /boot partition:
sudo umount /mnt/boot
14) Unmount the LiveCD's /usr directory:
sudo umount /mnt/usr
15) Unmount last device:
sudo umount /mnt
16) Reboot.
sudo reboot"
Also these are other ways to repair grub: How can I repair grub? (How to get Ubuntu back after installing Windows?)
Had the same error "symbol 'grub_term_highlight_color' not found", stuck at Grub rescue. Tried boot-repair (recommended option), but didn't work!
Solution: Downloaded bootable boot-repair.iso (http://sourceforge.net/projects/boot-repair-cd/) and made a bootable usb disk. Booted from it and connected to internet and started "Recommended Repair", then followed the instructions in a few steps (deleted/uninstalled grub and then re-installed a new version), which worked for me! I guess in your case grub should be uninstalled and then re-installed on sda8 instead of sdb1.
I have had the same problem. My guess is that, since I have two hard drives, the system is trying to start from the wrong drive where an old version of GRUB is installed. My solution was to start Ubuntu with a USB stick (it does not matter which version). Once you start, these commands will do it, run as root:
mkdir /tmp/drive
sudo mount /dev/sdX1 /tmp/drive
sudo mount --bind /dev /tmp/drive/dev
sudo mount --bind /proc /tmp/drive/proc
sudo mount --bind /sys /tmp/drive/sys
sudo chroot /tmp/drive
dpkg-reconfigure grub-pc
Where sdX1 must be the drive where your system is installed. When you run the last command you should select the sdX drive, though I guess running it multiple times will install the new version of grub on each drive and give you some piece of mind.