星期三, 5月 07, 2014

Grub symbol ‘grub_term_highlight_color’ not found

把筆電的 Ubuntu 13.10 升級到 14.04,想不到卻中了招,重開機時,出現 symbol ‘grub_term_highlight_color’ not found 的錯誤。

網路上一找,果然 launchpad 上已經有人回報了,網路上也有不少人分享解法。大致上有兩類解法:
  1. 設法用 livecd/liveusb 重新 chroot 進去,然後用 grub-install 重新安裝 grub
  2. 用 livecd/liveusb 開機,安裝 boot-repair ,利用 boot-repair 來解。

這兩類解法對我都無效,後來是在 launchpad 的那篇裡,看到 downgrade grub ,就想說來試試看。主要的步驟,還是 boot-repair,所以先用 Ubuntu 14.04 的 liveusb 開機,安裝 boot-repair,執行 boot-repair 。boot-repair 的過程裡,會有一些提示,以及需要手動下指令的部份,第一次會是要移除 grub 以及相關的套件;到了第二次時,會要你重新安裝 grub,這邊的指令要改變一下,先裝指定版本的 grub,再執行 boot-repair 提供的指令:sudo apt-get install grub-common=2.00-19ubuntu2 grub-efi-amd64=2.00-19ubuntu2 grub-efi-amd64-bin=2.00-19ubuntu2 grub-efi-amd64-signed=1.22+2.00-19ubuntu2 grub2-common=2.00-19ubuntu2

接著就是讓 boot-repair 做完就可以了。

備註:
  • 如果你不知道有哪些版本可以用,要找某 package 之前的版本,可以用 apt-cache show package | grep Version 來看。
  • 用 LiveCD/LiveUSB 開進去以後,自行掛載並 chroot 的方法,就是先用 sudo parted -l 或 sudo fdisk -l 確認分割區,接著做掛載的動作,大致是這樣 (分割區請自行替換,不要照抄):
    sudo mount /dev/sda5 /mnt
    sudo mount /dev/sda4 /mnt/boot
    sudo mount /dev/sda7 /mnt/home
    for i in /dev /dev/pts /sys /proc /run; do sudo mount --bind $i /mnt$i; done
    sudo chroot /mnt
    hostname your_host
    export HOME=/root

沒有留言: