Bug#765540: grub2: grub fails with "error: 'grub_term_highlight_color' not found"

Gerben Meijer - Day by Day gerben at daybyday.nl
Sat Nov 8 13:54:07 UTC 2014


I just hit this bug while upgrading from 2.00-22 to 2.02~beta2-15. I 
believe #743477 is a duplicate of this bug.

The current behavior breaks an existing functional boot simply by 
noninteractively upgrading grub-pc, which happens in an apt-get upgrade 
and/or dist-upgrade. If this happens on a noninteractive upgrade from 
wheezy to jessie, it would be a very serious release blocker. By its 
definition, this should be a critical bug.

Steps to reproduce:

- Deploy this jessie vagrant box: 
https://downloads.sourceforge.net/project/vagrantboxjessie/debian80.box 
(or any box with grub 2.00-22)
- apt-get update
- DEBIAN_FRONTEND=noninteractive apt-get -y install grub-pc
- reboot

The "DEBIAN_FRONTEND=noninteractive" is there to reproduce what happenes 
during provisioning automation (ansible/puppet/salt/chef etc). An 
example vagrantfile is here: http://paste.debian.net/130854/

The workaround is to do a "grub-install --recheck /dev/sda" after 
upgrading the package.

Due to the nature of deployable images like this, the install_devices 
from debconf will likely never match the newly created drive; even in 
cases where it is using /dev/sda it may be that an image would get 
deployed with virtio and the booted drive would end up being /dev/vda.

For reference, the output of "debconf-get-selections | grep -i grub" 
before upgrading grub-pc packages:

/usr/bin/debconf-get-selections |grep -i grub
grub-pc	grub-pc/chainload_from_menu.lst	boolean	true
# Writing GRUB to boot device failed - continue?
grub-pc	grub-pc/install_devices_failed	boolean	false
grub-pc	grub-pc/kopt_extracted	boolean	false
# Hide the GRUB timeout
grub-pc	grub-pc/hidden_timeout	boolean	false
# GRUB install devices:
grub-pc	grub-pc/install_devices	multiselect 
/dev/disk/by-id/ata-VBOX_HARDDISK_VB4950a3eb-80192436
grub-pc	grub2/linux_cmdline_default	string	quiet
# Remove GRUB 2 from /boot/grub?
grub-pc	grub-pc/postrm_purge_boot_grub	boolean	false
# Writing GRUB to boot device failed - try again?
grub-pc	grub-pc/install_devices_failed_upgrade	boolean	true
grub-pc	grub2/linux_cmdline	string	debian-installer=en_US
grub-pc	grub2/kfreebsd_cmdline	string	
# GRUB timeout
grub-pc	grub-pc/timeout	string	5
# /boot/grub/device.map has been regenerated
grub-pc	grub2/device_map_regenerated	note	
# Continue without installing GRUB?
grub-pc	grub-pc/install_devices_empty	boolean	false
# GRUB install devices:
grub-pc	grub-pc/install_devices_disks_changed	multiselect	
grub-pc	grub2/kfreebsd_cmdline_default	string	quiet
# Finish conversion to GRUB 2 now?
grub-pc	grub-pc/mixed_legacy_and_grub2	boolean	true

And after upgrading:

grub-pc	grub-pc/kopt_extracted	boolean	false
# GRUB install devices:
grub-pc	grub-pc/install_devices	multiselect 
/dev/disk/by-id/ata-VBOX_HARDDISK_VB4950a3eb-80192436
grub-pc	grub2/linux_cmdline_default	string	quiet
# GRUB install devices:
grub-pc	grub-pc/install_devices_disks_changed	multiselect 
/dev/disk/by-id/ata-VBOX_HARDDISK_VB4950a3eb-80192436
# /boot/grub/device.map has been regenerated
grub-pc	grub2/device_map_regenerated	note	
# Remove GRUB 2 from /boot/grub?
grub-pc	grub-pc/postrm_purge_boot_grub	boolean	false
grub-pc	grub2/kfreebsd_cmdline	string	
grub-pc	grub-pc/chainload_from_menu.lst	boolean	true
# Continue without installing GRUB?
grub-pc	grub-pc/install_devices_empty	boolean	false
# Finish conversion to GRUB 2 now?
grub-pc	grub-pc/mixed_legacy_and_grub2	boolean	true
grub-pc	grub2/kfreebsd_cmdline_default	string	quiet
grub-pc	grub2/linux_cmdline	string	debian-installer=en_US
# Writing GRUB to boot device failed - try again?
grub-pc	grub-pc/install_devices_failed_upgrade	boolean	true
# What do you want to do about modified configuration file grub?
# GRUB timeout; for internal use
grub-pc	grub-pc/timeout	string	0
# Hide the GRUB timeout; for internal use
grub-pc	grub-pc/hidden_timeout	boolean	false
# Writing GRUB to boot device failed - continue?
grub-pc	grub-pc/install_devices_failed	boolean	false



More information about the Pkg-grub-devel mailing list