"error: symbol 'grub_term_highlight_color' not found" in Ubuntu 14.04

Bug #1312787 reported by Gabriel Guerreiro
22
This bug affects 4 people
Affects Status Importance Assigned to Milestone
grub-customizer (Ubuntu)
Expired
Undecided
Unassigned
grub2 (Ubuntu)
Expired
Undecided
Unassigned

Bug Description

The error was detected in the upgrade to 14.04.

Found in 2 HP PCs with identical hardware.
One of them has this problem after a fresh install of 14.04.

They have UEFI. Only one disk.

Although the error message is similar, none of the methods described in the existing bugs fixes the problem:
- Boot Repair
- dpkg-reconfigure grub-efi-amd64

We can avoid this message using the BIOS boot menu.
The option "ubuntu" is present, and after choosing it, there is a functional Grub.
From there, everything works OK.

description: updated
Revision history for this message
Gabriel Guerreiro (gabriel-guerreiro) wrote :

I am not sure this is a duplicate. Probably has the same cause.
Commenting on this issue makes it clearer.

I can boot and use the system, but the problem persists, although it is a minor annoyance.

The 14.04 upgrade did not update several EFI entries in the Windows boot menu.
Selecting them in the bios menus brings out the broken grub.

/boot/efi/EFI/Boot:
total 1443
-rwxr-xr-x 1 root root 1354472 Set 18 2012 bkpbootx64.efi
-rwxr-xr-x 1 root root 122880 Abr 19 2013 bootx64.efi

/boot/efi/EFI/ubuntu:
total 117
-rwxr-xr-x 1 root root 119296 Abr 29 17:11 grubx64.efi

/boot/efi/EFI/Microsoft/Boot:
total 4297
-rwxr-xr-x 1 root root 40960 Abr 21 13:07 BCD
-rwxr-xr-x 1 root root 32768 Abr 2 2013 BCD.LOG
-rwxr-xr-x 1 root root 0 Out 14 2012 BCD.LOG1
-rwxr-xr-x 1 root root 0 Out 14 2012 BCD.LOG2
drwxr-xr-x 2 root root 1024 Out 14 2012 bg-BG
-rwxr-xr-x 1 root root 1354472 Set 18 2012 bkpbootmgfw.efi
-rwxr-xr-x 1 root root 122880 Abr 19 2013 bootmgfw.efi
-rwxr-xr-x 1 root root 1350888 Set 18 2012 bootmgr.efi
-rwxr-xr-x 1 root root 65536 Out 14 2012 BOOTSTAT.DAT
-rwxr-xr-x 1 root root 4186 Jun 26 2012 boot.stl
-rwxr-xr-x 1 root root 122880 Abr 19 2013 bootx64.efi
-rwxr-xr-x 1 root root 0 Abr 19 2013 bootx64.efi.grb

/boot/efi/EFI/ubuntu:
total 117
-rwxr-xr-x 1 root root 119296 Abr 29 17:11 grubx64.efi

$ sudo efibootmgr -o 1,0
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0001,0000
Boot0000* Windows Boot Manager
Boot0001* ubuntu

If I do:

$ sudo efibootmgr -n 1

The next boot works OK.

dpkg-reconfigure grub-efi is not working as expected.

Revision history for this message
Phillip Susi (psusi) wrote :

If I understand you correctly, you are saying that the Windows EFI directory has copies of the grub efi file, and these copies are now out of date after upgrading ubuntu, so when you try to use them from the Windows boot loader menu, they fail.

How did these copies get there? I do not believe that they were put there by Ubuntu, and they should not be there. If the windows loader is going to chain load grub, it needs to load the correct file from the ubuntu directory instead of keeping its own copy.

Changed in grub2 (Ubuntu):
status: New → Incomplete
Revision history for this message
Gabriel Guerreiro (gabriel-guerreiro) wrote :

I have grub-customizer.
Other than that, I never installed GRUB manually, as long a I can remember.

The dates of the files in April 2013 make me guess these entries were created in the upgrade from 12.10 to 13.04.
The upgrade to 13.10 did not update these files, as well as to 14.04
It failed only now because the new GRUB bootloader is binary incompatible.

The changes in the Windows EFI direcory were almost certainly made by Ubuntu.
The installed Windows 8 was never even started since Ubuntu was installed.

Was there some change in the EFI configuration or devices used by the installer or GRUB from 13.04 to 13.10?
It seems now it works differently but the old configs were kept and ignored and are still used by default.

Revision history for this message
Phillip Susi (psusi) wrote :

It isn't a configuration issue, what changed is grub itself, and for some reason there is an old copy stored in the windows efi directory. I'm almost certain that grub did not put that there, perhaps it was grub-customizer?

Revision history for this message
Gabriel Guerreiro (gabriel-guerreiro) wrote :

The copy in the windows directory was not the one causing the problem.

I manually copied the one in
     /boot/efi/EFI/ubuntu/grubx64.efi
to
     /boot/efi/EFI/Boot/bootx64.efi
The system boots normally now.
I don't think this is a non-standard BIOS configuration.
Ubuntu managed it well since 12.10.

None of these options
    boot-rescue
    grub-install
    dpkg-reconfigure grub-efi
are updating this file.

The option "backup and windows EFI files" of grub-rescue could not handle an hibernated Windows 8.
Maybe this option works, as repoted by some users in the comments to the related bug.
I did not test it.

The problem exists in a new installation of 14.04 where the EFI partition was recreated by the installer.

Revision history for this message
Jason Rennie (jrennie) wrote :

I think this is essentially the same issue/fix as described by https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1289977/comments/138 (which I believe is distinct from MBR issues described in 1289977). I also ran into the out-of-date EFI file issue. SatPhil's fix worked for me, but I suspect that Gabriel's fix would have also worked.

My machine is ~3 years old. It came with Windows. I did a clean install of Ubuntu (I don't use windows). I have 3 partitions: (1) EFI, (2) Ubuntu, (3) swap.

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in grub-customizer (Ubuntu):
status: New → Confirmed
Revision history for this message
Gabriel Guerreiro (gabriel-guerreiro) wrote :

I also think the cause/fix is the same.

These are also HP laptops: EliteBook 8470p.

There are a lot of .efi files around, but the BIOS picks
    /boot/efi/EFI/Boot/bootx64.efi
 and I couldn't find how to configure another.

This file is not updated by any of the installers and we have to manually replace it with a working version.

My solution was essentially what was described by https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1289977/comments/138.
Though I was careless enough not to create a backup.

Jason Rennie (jrennie)
Changed in grub2 (Ubuntu):
status: Incomplete → Confirmed
Revision history for this message
aldo (coffee4kepi) wrote :

i have the same issue, on an HP notebook with a fresh install. i previously had a 13.04 which worked regularly.
i tried with boot-repair and manual purge-reinstall of grub-efi-amd64 plus grub-install, even with different target destination directories, aka --boot-directory and --efi-directory. none of that worked.
i tried to use efibootmgr, set the ubuntu boot device from livecd and at the first startup grub works, but the next one doesn't.
i guess pc's efi re-writes efi booting sequence and always looks in a particular partition, which one i haven't still understood.

Revision history for this message
Daniel (hurley42) wrote :

This bug did effect me as well.

After upgrading from 13.10 to 14.04 grub was broken and showed a »symbol 'grub_term_highlight_color' not found« error.

Tried all tipps from the original bug report (Boot Repair, dpkg-reconfigure, grub-install in several variations):
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1289977

I have a »Packard Bell imedia S - DT.U7HEG.037«. Boot Repair Log: http://paste.ubuntu.com/7738222/

The system is using EFI, as stated above by Gabriel, .efi files are located at all kind of places and Ubuntu/Grub picks the wrong one.

Found a solution on askubuntu and then stumbled upon this ticket:
http://askubuntu.com/questions/449680/upgrading-from-13-10-to-14-04-broke-grub/476765#476765
* Boot using »Super Grub« CD
* Copy the existing, correct Boot EFI file to the location which Ubuntu/Grub is actually using: »sudo cp /mnt/EFI/ubuntu/grubx64.efi /mnt/EFI/Boot/bootx64.efi«

Revision history for this message
Mathieu Trudel-Lapierre (cyphermox) wrote :

If you're seeing this issue, please include the output of 'sudo efibootmgr -v' on your system.

Grub *does not* write files to any other directory than EFI/ubuntu; so it seems to me like most issues you'd see in this case would be due to badly-configured EFI variables.

Changed in grub2 (Ubuntu):
status: Confirmed → Incomplete
Changed in grub-customizer (Ubuntu):
status: Confirmed → Incomplete
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for grub-customizer (Ubuntu) because there has been no activity for 60 days.]

Changed in grub-customizer (Ubuntu):
status: Incomplete → Expired
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for grub2 (Ubuntu) because there has been no activity for 60 days.]

Changed in grub2 (Ubuntu):
status: Incomplete → Expired
Revision history for this message
Daniel (hurley42) wrote :

> If you're seeing this issue, please include the output of 'sudo efibootmgr -v' on your system.
See attached file, but I have already used the workaround I described in comment 10 ( https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1312787/comments/10 ).

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.