Ubuntu error: symbol ‘grub_term_highlight_color’ not found. grub rescue> – решение

В данном посте проблемы с ( у меня возникло при обновлении с 13.10 на 14.04 ).

Welcome to GRUB!

error: symbol ‘’ not found.
grub rescue>

И так, после обновления или еще какого-то действия получается ошибка grub_term_highlight_color not found.

Первое, что я сделал, это воспользовался утилитой boot-repair
https://help.ubuntu.com/community/Boot-Repair#A2nd_option_:_install_Boot-Repair_in_Ubuntu

Все было выполнено по шагам, при чем не один раз, но не помогло. Позже я уже понял, что выполняя шаги, предложенные утилитой, в итоге все равно не удаляются полностью конфиги grub из /boot раздела.

Поэтому я решил провести переустановку вручную, при чем более ранней версии из saucy репозитория, а не trusty (где grub на момент установки вообще beta). Так же я столкнулся с другой ошибкой, когда уже вручную пытался сделать

Не устанавливалось в виду того, что у меня рядом стоит windows 8, следовательно мои разделы не MBR, а GPT. И настройки bios, такие как выключенный secure mode и включенный legacy mode тут не помогают. Grub просто отказывается прописывать себя в GPT.
Потому, что надо было ставить grub-efi, а не grub-pc. Теперь по порядку.

Решение

Во первых ссылка
https://help.ubuntu.com/community/Grub2/Installing#via_ChRoot

На ссылку я набрел из этого блога, за что автору спасибо.
http://blog.kosmokaryote.org/2013/07/technology-error-symbol.html

Что делается по ссылке?

Сначала надо загрузится под Ubuntu с диска или usb.

После загрузки мы определяем на каком разделе у нас стоит система и на каком /boot (если он отдельно стоит).

Изучив вывод команд понимаем разделы. У меня система стоит на ssd – sdb2, а /boot находится в sda6.

Далее примонтируем свою систему. Тут и далее X это буква, Y это число.

Если /boot отдельно, то монтируем его тоже. Подставляем свой раздел.

Если что-то пошло не так, то можно отмонтировать

Далее надо выполнить такой цикл

Что бы было понимание, этот цикл делает что-то вроде.

Эти команды выше для примера. Выполнить надо только цикл. Это примонтирует важные разделы файловой системы для установок и прочего.

Далее выполняем смену root в получившуюся систему.

После этой команды мы находимся под root пользователем в нашей установленной системе. Т.е. корень сменился с загруженной системы с диска или usb на установленную. Далее все команды будут выполняться от root установленной системы.

Первое, что пришло в голову это

Но проблему не решает.

Если следовать инструкции далее, то я столкнулся с проблемой.

Тут надо указать диск без буквы, т.е. без раздела. Но прописываться он отказался, т.к. раздел GPT.
Если же просто удалить и поставить grub по новой, например так:

То загрузка будет с той же ошибкой.

В общем я проделал эту процедуру по всякому несколько раз и пришел к такому решению. Я решил поставить версию из saucy – grub 2.0.0, т.к. в trusty лежит 2.0.2-beta. Для этого надо отредактировать файл

И поменять там везде trusty на saucy.

Далее

Если не установлен aptitude то

.
versions выдаст таблицу, везде должно быть saucy.

Далее выполнить следующее

Если же разделы GPT или режим EFI то

Мой случай был второй.

И вот только теперь выполнить

Для нужного диска. Тут не указывается цифра, т.е. раздел.

Теперь можно еще проверить через gparted, что флаг boot установлен на раздел с Ubuntu или на раздел с /boot если он отдельный.

В моем случае команды выглядели так, ведь у меня /boot это sda6 с флагом boot.

Проверить корректность установки можно так.

Выдаст раздел, где установлен grub. У меня выдает /dev/sda6

После перезагрузки все заработало. :)