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

Eerste Laatste hoekbank at hotmail.com
Sat May 2 17:36:27 UTC 2015


Package: grub-efi-amd64
Severity: critical

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

-- From here, probably still in tact from before, but if not or clean install further execute:

mkdir -p /boot/efi/System/Library/CoreServices
rm -f /boot/efi/System/Library/CoreServices/boot.efi
ln /boot/efi/EFI/debian/grubx64.efi /boot/efi/System/Library/CoreServices/boot.efi
touch /boot/efi/mach_kernel
echo "Dummy mac-mach-kernel required for booting"> /boot/efi/mach_kernel
And in /boot/efi/System/Library/CoreServices/SystemVersion.plist put:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ProductBuildVersion</key>
<string>Debian GNU/Linux Jessie</string>
<key>ProductCopyright</key>
<string>Debian GNU/Linux</string>
<key>ProductName</key>
<string>Debian GNU/Linux</string>
<key>ProductUserVisibleVersion</key>
<string>Jessie</string>
<key>ProductVersion</key>
<string>Jessie</string>
</dict>
</plist>

The system now boots again and keeps working with the grub-efi packages on hold.
Apt will tell you they are on hold and can of course be undone by executing:
# apt-mark hold grub-common grub2-common grub-efi grub-efi-amd64 grub-efi-amd64-bin
But be aware that an upgrade to a version higher that 2.00-22 will break the system again.
All upgrades before that since Wheezy to Jessie and since then up to 2.00-22 worked fine, after that version everything breaks the system and leaves it in unbootable state again.

I hope this information helps or is otherwise usable and can only say it works for me.

----------------------------------------
> From: owner at bugs.debian.org
> To: hoekbank at hotmail.com
> Subject: Bug#765918: Acknowledgement (grub-efi-amd64: Stopped booting, instead error: symbol `grub_term_highlight_color' not found.)
> Date: Sun, 19 Oct 2014 09:09:06 +0000
>
> Thank you for filing a new Bug report with Debian.
>
> This is an automatically generated reply to let you know your message
> has been received.
>
> Your message is being forwarded to the package maintainers and other
> interested parties for their attention; they will reply in due course.
>
> Your message has been sent to the package maintainer(s):
> GRUB Maintainers <pkg-grub-devel at lists.alioth.debian.org>
>
> If you wish to submit further information on this problem, please
> send it to 765918 at bugs.debian.org.
>
> Please do not send mail to owner at bugs.debian.org unless you wish
> to report a problem with the Bug-tracking system.
>
> --
> 765918: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765918
> Debian Bug Tracking System
> Contact owner at bugs.debian.org with problems
 		 	   		  


More information about the Pkg-grub-devel mailing list