无法找到适用于最新版本Ubuntu的boot-repair软件包。

升级Ubuntu 13.10到14.04后,grub无法加载Ubuntu并抛出错误“symbol 'grub_term_highlight_color' not found”。我按照Bug Report中提供的解决方案尝试了一下,但是对我来说没有成功,反而抛出了错误“failed to get canonical path of /cow”。
现在,我正在尝试使用以下命令在一个活动的U盘上安装Boot-Repair来解决这个问题。
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair && (boot-repair &)

但是在添加和更新存储库之后,它显示了“ ppa:yannubuntu/boot-repair” 404 Not Found 错误。
W: Failed to fetch http://ppa.launchpad.net/yannubuntu/boot-repair/ubuntu/dists/trusty/main/binary-amd64/Packages  404  Not Found

这个问题可解决吗?或者有没有其他适用于Boot-Repair的替代PPA呢?

你按照接受的答案有遇到任何问题吗? - Avinash Raj
完全不是,这可能不是最优雅的解决方案,但它完美地运行,并且是最快的解决方案。 - Joren
PPA没有适用于Trusty的软件包。只需给维护者发送电子邮件即可。 - Braiam
1从13.10升级到14.04后,我的电脑无法启动。我的配置是预装有Windows 8的Toshiba P875笔记本电脑。使用可引导的boot-repair.iso(http://sourceforge.net/projects/boot-repair-cd/)对我来说也起作用了。 - Ivan Mladenovic
4个回答

更新:PPA目前提供14.04及以上版本的更新包。
解决方法:安装较早版本的软件包
出现404未找到错误是因为PPA没有针对较新版本(trusty)进行更新。要在Ubuntu 14.04中安装boot-repair,请在终端上运行以下命令:
sudo add-apt-repository ppa:yannubuntu/boot-repair
codename="$(lsb_release -cs)"
sudo sh -c "sed -i 's/$codename/saucy/g' /etc/apt/sources.list.d/yannubuntu-boot-repair-$codename.list"
sudo apt-get update
sudo apt-get install -y boot-repair && (boot-repair &)

现在使用“推荐修复”选项修复您的Grub,并在引导修复完成后重新启动。


1请说明投票反对的原因。 - Avinash Raj
5为什么会有人给这个点踩!对我有用,谢谢! - Ataur Rahim Chowdhury
在最后一步(安装 -y boot repair)之后,命令行达到“/usr/share/boot-sav/gui-g2slaunch.sh: 第33行:hash: gksudo: 未找到 /usr/share/boot-sav/gui-g2slaunch.sh: 第35行:hash: gksu: 未找到”,并显示一个引导修复窗口,上面写着“扫描系统(os-prober)。这可能需要几分钟”... :( 但是没有结束..为什么? :( - Amila Iddamalgoda
现在这个答案已经添加到了boot-repair社区页面上。 - Avinash Raj
我认为那些踩票是因为“在Trusty上使用调皮包是不好的,bebebe”。请忽略它们。我因此在另一个回答被踩了票。幸运的是,我没有赞同票,所以我只是删除了它。 - Danatela
@Danatela,你看到社区维基页面https://help.ubuntu.com/community/Boot-Repair了吗?这个答案是添加在那里的,因为14.04版本的grub软件包存在一个重大的bug。 - Avinash Raj
对于任何想要因为“在Trusty上使用Saucy软件包是不好的”而给这个回答点踩的人,请考虑到这往往是许多人唯一的选择。这对我起作用了,也是我唯一的grub-repair选项。使用它没有产生任何负面影响,所以我认为在这里使用Saucy软件包没有问题。 - rajlego
你现在应该更新你的答案以适应"乌托邦"发行版。 - Attilio
这在我的14.04.1版本上失败了,显示“找不到gksudo”和“找不到gksu”。尝试使用apt-get install gksu命令安装时,提示“无法获取软件包gksu,但有其他软件包引用了它。” - Bryan Larsen
为什么你在使用gksu而不是sudo - Avinash Raj
我不是。boot-repair 是。我必须在我的 livecd 上启用 universe 来安装 gksu。希望这样能行。 - Bryan Larsen
是的,安装gksu。 - Avinash Raj
第一次尝试没有成功,但最终我成功让它工作了。我不得不在EFI分区上运行dosfsck。https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1091477/comments/14 - Bryan Larsen

更新:在lp上有一个错误报告 - https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1289977 从上述错误报告中,
- 从U盘启动(14.04) - 挂载我的根文件系统(其中包含/boot)
sudo mount /dev/sdaX /mnt

/dev/sdaX 是您的 /boot 目录的位置

运行: "sudo grub-install --boot-directory=/mnt//boot /dev/sdX"

确切的命令取决于您是否有单独的启动分区

单独的 /boot 分区

sudo grub-install --boot-directory=/mnt /dev/sda

没有单独的/boot分区
grub-install --boot-directory=/mnt/boot /dev/sda

然后用硬盘重新启动

三个选项:

  1. 等待ppa的维护者为14.04版本构建一个软件包。这可能是最慢和最不实际的方法。

  2. 向boot-repair提交一个错误报告,要求提供一个14.04版本的软件包。这可能会稍微快一些。

  3. 启动一个较旧的Ubuntu版本,比如13.10,并运行boot-repair。使用较旧的版本可能也能解决问题。

我想还有第四个选项 - 手动调试grub,你遇到了什么错误信息,请告诉我们关于你的安装情况。


感谢您的回答。在从13.10升级到14.04之后,我遇到了grub错误“找不到符号'grub_term_highlight_color'”。当我尝试从终端对grub进行更改时,我收到了“错误:无法获取/cow的规范路径”的消息。 - Joren
手动将 trusty 改为 saucy 怎么样?是的,这并不是一个干净的方法,但应该可以工作。 - jobin
1请查看https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1289977。 - Panther
@Jobin - 我会考虑在一个可启动光盘上解决这个问题。如上所述,已经有一个错误报告和修复程序可用。 - Panther

这个错误报告中提到的第一个解决方法对我有效。

https://bugs.launchpad.net/boot-repair/+bug/1267702

基本上,您需要手动安装三个 .deb 包:glade2script、boot-sav 和 boot-repair(按照此顺序)。请使用最新版本的包(适用于 saucy)。

遇到了同样的错误“找不到符号'grub_term_highlight_color'”,卡在Grub rescue界面。尝试了boot-repair(推荐选项),但没有起作用!
解决方案:下载了可启动的boot-repair.iso文件(http://sourceforge.net/projects/boot-repair-cd/),制作了一个可启动的USB盘。从该盘启动,并连接到互联网,然后选择“Recommended Repair”,按照几个步骤的指示进行操作(手动删除/卸载grub,然后重新安装新版本),这样就解决了问题!