#765918 grub-efi-amd64: Stopped booting, instead error: symbol `grub_term_highlight_color' not found.

Package:
grub-efi-amd64
Source:
grub2
Description:
GRand Unified Bootloader, version 2 (EFI-AMD64 version)
Submitter:
Eerste Laatste
Date:
2015-05-02 17:39:09 UTC
Severity:
important
#765918#5
Date:
2014-10-19 09:06:23 UTC
From:
To:
Dear Maintainer,

Mac Pro stopped booting after upgrade, all it does now is saying:

error: symbol `grub_term_highlight_color' not found.
Entering rescue mode...
grub rescue>


Computer used to generate this bug report is a Macbook pro but
not run apt-get upgrade yet because it has a similar Debian
installation and therefore assumed to also stop working then.

#765918#10
Date:
2015-05-02 17:36:27 UTC
From:
To:
Even though i have not got any response or help getting the computer to work again, i read on the internet that help from Debian users is requested to fix grub-efi problems.
Not sure i can help, but i will at least try to explain what i eventually came up with to get a broken computer working again without a compete reinstall.

With this e-mail i am also trying to correct the severity level of this bug report to the proper one i see in the Debian descriptions for that which says "makes unrelated software on the system (or the whole system) break" should be set to critical.
And since that is what the package upgrade did and in the mean while also multiple other computers (various Mac desktop and laptop models) with the packet updates that became available after the initial bug report.

Since Wheezy packages are still usable to get the computers working again and the current packages are not, i searched for snapshots of in between packages.
The newest packages i found that are still usable for me on all the computers are 2.00-22_amd64.deb.
With that i eventually came up with the following solution that works for all computer types that were left in unbootable state after a normal "apt-get update && apt-get upgrade":

1. On any computer that still works, download the following package versions and put them on something like CD/DVD/USB for use later:
    grub2-common_2.00-22_amd64.deb
    grub-efi-amd64_2.00-22_amd64.deb
    grub-common_2.00-22_amd64.deb
    grub-efi-amd64-bin_2.00-22_amd64.deb
    grub-efi_2.00-22_amd64.deb
and also the netinst iso and write it to CD/DVD/USB in a way that it is bootable.

2. Boot the computer that stopped booting from netinst iso on CD/DVD/USB and use recovery mode from the menu to get a root terminal on the partition of the computer that stopped booting.

3. Execute the following commands in that root terminal:
# modprobe hfsplus
# mount -a
# apt-get purge grub-common grub2-common grub-efi grub-efi-amd64 grub-efi-amd64-bin

Now mount and go to the location where you have put the downloaded *.deb files and then execute:

# dpkg -i grub*.deb

The following is very important to block apt from installing newer versions which will otherwise break the system again next upgrade.

# apt-mark hold grub-common grub2-common grub-efi grub-efi-amd64 grub-efi-amd64-bin
# nano /usr/sbin/grub-install
and in nano (or what ever text editor you prefer) find the following lines:
    echo "### if test \"x$efi_fs\" = xfat; then :; else"
    echo "###    echo \"${efidir} doesn't look like an EFI partition.\" 1>&2"
    echo "###    efidir="
    echo "### fi"
delete those (or remark them by adding a # at the beginning of those lines) and is important, otherwhise the "efidir=" will get an empty result and grub-install writs noting to the /boot/efi mount which on Macs are in hfsplus instead of xfat.

After saving the changes above , execute:

# grub-install
# update-grub
# dpkg-reconfigure grub-efi-amd64
----------------------------------------