WIndows 8 停止启动

WIndows 8 停止启动

我在一台预装了 Windows 8 的笔记本电脑上安装了 Ubuntu 14.04。它运行良好,几乎一年了,我能够从 grub 屏幕启动 Ubuntu 和 Windows,但几天后 Windows 无法启动并显示以下错误:

error: symbol grub_efi_find_last_device_path not found. Press any key to continue...

所以我使用 usb 启动了 boot-repair 并尝试修复它,但没有成功。以下是日志:http://paste.ubuntu.com/15090095/

答案1

我对此并不是 100% 肯定,但我猜测是 GRUB 更新导致不同 GRUB 组件(主 GRUB 二进制文件、存储在 中的 GRUB 模块/boot/grub和/或 GRUB 配置文件)不匹配。Boot Repair 可能与此相关,因为该工具会重新安装 GRUB,这可能导致组件不匹配。

如果我没记错的话,坚持使用 GRUB 2 会很困难,因为你需要手动重新安装它。有几种方法可以做到这一点。其中一种比较复杂的方法如下:这里。一个不太复杂的程序是这里。请注意,这些都不能保证能正常工作;众所周知,GRUB 2 非常挑剔,很容易配置错误。甚至可能让情况变得更糟,无法启动 Ubuntu。GRUB 2 运行良好的唯一原因是 GRUB 和 Ubuntu 开发人员创建了极其复杂的配置脚本,大多数情况下都能正常工作。如果脚本不能正常工作,您就只能自己使用过于复杂的工具了。

另一个选择是放弃 GRUB 2,转而使用另一个引导加载程序。我描述了几个这里。我自己的重新索引可能是最容易实现的:

  1. 如果已启用安全启动,请至少暂时禁用它。(您应该能够稍后重新启用它。)
  2. 从以下网址下载 rEFInd 的 USB 闪存驱动器或 CD-R 版本其下载页面。
  3. 准备启动介质。
  4. 启动到 rEFInd 启动介质。然后您应该能够启动 Windows 或 Ubuntu。测试两者。
  5. 如果您可以使用 rEFInd 启动 Windows 和 Ubuntu,请启动 Ubuntu。
  6. 安装 rEFInd Debian 包或 PPA。
  7. 测试是否可以通过rEFInd从硬盘启动。
  8. 如果需要,请重新启用安全启动。请注意,如果重新启用安全启动,则需要在首次启动时注册EFI\refind\keys\refind.cerEFI\refind\keys\refind_local.cer密钥。这是一次性任务。请参阅rEFInd 安全启动文档了解有关此主题的更多信息。

答案2

更新到最新的 grub 版本(目前为 2.02~beta2-29ubuntu0.3)会导致错误:符号 grub_efi_find_last_device_path当我尝试在装有 Ubuntu 15.10 和 Windows 10 的双启动系统上启动 Windows 时未找到。

可以通过降级到 ubuntu 存储库中最新版本之前的版本来修复此问题,直到修复此错误为止。

以下是我降级 grub 安装的方法:

sudo apt-get install grub2-common=2.02~beta2-29ubuntu0.2 \
grub-common=2.02~beta2-29ubuntu0.2 grub-efi-amd64=2.02~beta2-29ubuntu0.2 \
grub-efi-amd64-bin=2.02~beta2-29ubuntu0.2

sudo apt-mark hold grub-common grub-efi-amd64-bin grub2-common grub-efi-amd64

如果没有 hold 行,apt 将在下次升级时安装最新版本。一旦错误修复,你可以使用以下命令删除 hold 标记:

sudo apt-mark install grub-common grub-efi-amd64-bin grub2-common grub-efi-amd64

来源: http://blog.coffeebeans.at/archives/1035

更新(2016年10月16日):由于我在全新的 ubuntu 16.10 上仍然遇到此问题,并且上述软件包版本不再存在于 yakkety 的存储库中:

1)将以下内容临时添加到您的 apt-sources.file 中:

###### Ubuntu Main Repos
deb http://de.archive.ubuntu.com/ubuntu/ wily main restricted universe multiverse 

###### Ubuntu Update Repos
deb http://de.archive.ubuntu.com/ubuntu/ wily-security main restricted universe multiverse 
deb http://de.archive.ubuntu.com/ubuntu/ wily-backports main restricted universe multiverse 

2)执行apt update && apt dist-upgrade

3)保存新安装的和旧的 grub2 软件包,以便将来更新:sudo apt-mark hold grub-common grub-efi-amd64-bin grub2-common grub-efi-amd64

4)撤消 apt 文件中的上述更改,以便与您想要的 ubuntu 包同步(我假设您不想在 >= 2016 中使用 wily)。

或者:

1)从这里手动下载四个 deb 文件: https://launchpad.net/~ubuntu-security-proposed/+archive/ubuntu/ppa/+build/8443424

2)安装dpkg -i grub*.deb

3)确保您新安装的和旧的 grub2 软件包免受未来(有缺陷的)更新的影响:sudo apt-mark hold grub-common grub-efi-amd64-bin grub2-common grub-efi-amd64

(一切风险由您自行承担)

相关内容