Bug 40654 - error: symbol 'grub_term_highlight_color' not found
error: symbol 'grub_term_highlight_color' not found
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: Grub
UCS 4.1
Other Linux
: P1 critical with 2 votes (vote)
: UCS 4.1-1-errata
Assigned To: Janek Walkenhorst
Sönke Schwardt-Krummrich
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2016-02-14 18:45 CET by Giovanni Vecchi
Modified: 2016-02-19 08:18 CET (History)
4 users (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Ticket number:
Bug group (optional): External feedback
Max CVSS v3 score:


Attachments
console screenshot (20.35 KB, image/jpeg)
2016-02-14 18:45 CET, Giovanni Vecchi
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Giovanni Vecchi 2016-02-14 18:45:05 CET
After last upgrade (today 14/02/16), UCS fail to boot.
Grub shows:

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

UCS is installed as a virtual machine and the error appeared both in VMWare and VirtualBox envinroment.
Comment 1 Giovanni Vecchi 2016-02-14 18:45:37 CET
Created attachment 7479 [details]
console screenshot
Comment 2 Florian Best univentionstaff 2016-02-15 10:18:17 CET
Also reported in Ticket#2016021321000233.
Comment 3 Sönke Schwardt-Krummrich univentionstaff 2016-02-17 11:36:07 CET
Hi Giovanni,

(In reply to Giovanni Vecchi from comment #0)
> error: symbol 'grub_term_highlight_color' not found
> Entering rescue mode
> grub rescue>
> 
> UCS is installed as a virtual machine and the error appeared both in VMWare
> and VirtualBox envinroment.

Are you using more than one virtual harddisk in your virtual machine?
If yes, can you please check, which virtual harddisk is used for booting by VMWare/VirtualBox? It looks like an outdated GRUB is also installed on the second/third/... harddisk and the virtual machine boots chooses the outdated GRUB for booting.
Comment 4 Giovanni Vecchi 2016-02-17 11:39:09 CET
No, I don't: shingle HD (Virtual Machine was deployed from ova file)
Comment 5 Sönke Schwardt-Krummrich univentionstaff 2016-02-17 12:44:40 CET
(In reply to Giovanni Vecchi from comment #4)
> No, I don't: shingle HD (Virtual Machine was deployed from ova file)

Ok, seems to be a new scenario: 
1) are you using software RAID?
2) which UCS version was used for the initial installation of UCS?
3) can you paste the output of "debconf-show grub-pc" here at the bug?
Comment 6 Sönke Schwardt-Krummrich univentionstaff 2016-02-17 13:05:37 CET
(In reply to Sönke Schwardt-Krummrich from comment #5)
> (In reply to Giovanni Vecchi from comment #4)
> > No, I don't: shingle HD (Virtual Machine was deployed from ova file)
>
> 2) which UCS version was used for the initial installation of UCS?
sorry, I meant the original UCS version of the OVA file.
Comment 7 Giovanni Vecchi 2016-02-17 13:56:01 CET
1) No software RAID
2) VM was deployed from UCS 4.1 ova (I don't have further build info), before the upgrade the system was at Errata #60
3) Below the requested output before upgrade:
Comment 8 Giovanni Vecchi 2016-02-17 13:58:51 CET
I'm sorry, I missed the output:

root@ucs-01:~# debconf-show grub-pc
  grub2/kfreebsd_cmdline:
  grub2/device_map_regenerated:
* grub2/linux_cmdline:
  grub-pc/install_devices_empty: false
  grub-pc/install_devices_failed: false
  grub-pc/chainload_from_menu.lst: true
  grub-pc/kopt_extracted: false                                                                                                                                                                                                              
* grub-pc/install_devices: /dev/vda                                                                                                                                                                                                          
  grub-pc/postrm_purge_boot_grub: false                                                                                                                                                                                                      
  grub-pc/install_devices_failed_upgrade: true                                                                                                                                                                                               
  grub-pc/disk_description:                                                                                                                                                                                                                  
  grub2/kfreebsd_cmdline_default: quiet                                                                                                                                                                                                      
  grub-pc/partition_description:                                                                                                                                                                                                             
  grub-pc/install_devices_disks_changed:                                                                                                                                                                                                     
* grub2/linux_cmdline_default: quiet                                                                                                                                                                                                         
  grub-pc/mixed_legacy_and_grub2: true
Comment 9 Janek Walkenhorst univentionstaff 2016-02-17 14:57:46 CET
This error happens if debconf grub-pc/install_devices contains a wrong device.
(If it were empty no installation would happen and nothing would directly break, see Bug #40666 <http://sdb.univention.de/1357>)

If it contains a wrong device the installation happens but fails, leading to an inconsistent installation between /boot/grub and the GRUB directly on the disk.

This makes the system unbootable.

Manual workaround is like for Bug #40666 <http://sdb.univention.de/1357>.

We shall make an update for univention-grub which checks all devices in grub-pc/install_devices and if it finds an invalid device removes this and (only) then adds the device on which /boot is to the list.

This should be for 4.1-{0,1}errata
Comment 10 Janek Walkenhorst univentionstaff 2016-02-17 15:01:12 CET
(In reply to Janek Walkenhorst from comment #9)

This error happens if debconf grub-pc/install_devices contains a wrong device.
(If it were empty no installation would happen and nothing would directly break, see Bug #40667 <http://sdb.univention.de/1356>)


If it contains a wrong device the installation happens but fails, leading to an inconsistent installation between /boot/grub and the GRUB directly on the disk.

This makes the system unbootable.

Manual workaround is like for Bug #40667 <http://sdb.univention.de/1356>.

We shall make an update for univention-grub which checks all devices in grub-pc/install_devices and if it finds an invalid device removes this and (only) then adds the device on which /boot is to the list.

This should be for 4.1-{0,1}errata
Comment 11 Giovanni Vecchi 2016-02-17 15:52:27 CET
NB: Upgrade to 4.1-1 does not solve the issue
Comment 12 Florian Best univentionstaff 2016-02-17 16:34:43 CET
Reported in Ticket#2016021721000502.
Comment 13 Janek Walkenhorst univentionstaff 2016-02-17 20:17:06 CET
univenion-grub 9.0.1-4.130.201602171949
univention-grub.yaml

This update checks all devices in grub-pc/install_devices, removing
invalid devices.

Additionally a guess is made for the correct boot device which will
be added to grub-pc/install_devices if grub-pc/install_devices is
currently empty or there were invalid devices.

If any changes were made, grub-install is run on all devices in
grub-pc/install_devices.
Comment 14 Sönke Schwardt-Krummrich univentionstaff 2016-02-17 22:53:57 CET
OK: YAML
OK: code change
OK: functional test

This fix currently does not cover the following special cases:
- if /boot is on the /-filesystem and / is located on LVM
- if /boot is on LVM or RAID

This is only a real problem, if grub-pc/install_devices does not match with /proc/partitions. If grub-pc/install_devices is empty, no grub-install is performed during GRUB update, so the systems are still bootable.
Comment 15 Sönke Schwardt-Krummrich univentionstaff 2016-02-17 23:58:55 CET
<http://errata.software-univention.de/ucs/4.1/116.html>
Comment 16 Philipp Hahn univentionstaff 2016-02-19 08:18:05 CET
r67565 | Bug #40708,Bug #40654 test
 Fix permissions

Package: ucs-test
Version: 6.0.33-13.1424.201602190815
Branch: ucs_4.1-0
Scope: errata4.1-1