我有双启动。Windows 10 和 Ubuntu 16.04 LTS。昨天更新 Windows 后 grub 停止工作,我无法对 PC 进行任何操作。它是台式电脑。当我尝试使用实时 USB 启动并选择:“尝试 Ubuntu”或“安装 Ubuntu”时,我收到以下错误:
[ 0.020613] ACPI Error: [\_SB_.PCI0.XHX_.RHUB.HS11] Namespace lookup failure,
AE_NOT_FOUND (20160930/dswload-210)
[ 0.20619] ACPI Exception: AE_NOT_FOUND, During name lookup/catalog (2016093
0/psobject-227)
[ 0.020644] ACPI Exception: AE_NOT_FOUND, (SSDT:xh_rvp10) while loading table
(20160930/tbxfload-228)
PC 冻结,黑色启动屏幕上充满了模糊的文本。我尝试修复 grub,但没有可以识别为某些 Linux 分区的分区。之后,我尝试使用 Windows Live USB 并清理 MBR。Windows 管理进行更新,我现在有了 Windows,但当我尝试从 Ubuntu Live USB 启动时,我得到了同样的错误。如何修复 Ubuntu 安装?我也尝试使用 Ubuntu DVD,但得到了同样的错误。
答案1
当您安装 Windows 时,Windows 会假定它是机器上唯一的操作系统 (OS),或者至少它不考虑 Linux。因此,它会用自己的引导加载程序替换 GRUB。您需要做的是用 GRUB 替换 Windows 引导加载程序。我见过各种通过乱搞 GRUB 命令或类似命令来替换 GRUB 的说明,但对我来说,最简单的方法是直接chroot
进入您的安装并运行update-grub
. 。chroot
这很棒,因为它允许您在实际安装上工作,而不是尝试在这里和那里重定向内容。它真的很干净。
就是这样:
- 在“尝试 Ubuntu”模式下从实时 CD 或实时 USB 启动。
- 确定主分区的分区号。GParted(默认情况下应该已在实时会话中安装)可以为您提供帮助。我将在此答案中假设它是
/dev/sda2
,但是确保您的系统使用了正确的分区号! 挂载你的分区:
sudo mount /dev/sda2 /mnt #Replace sda2 with your partition number
绑定安装一些其他必要的东西:
for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
如果 Ubuntu 安装在 EFI 模式下(如果你不确定,请参阅此答案),使用 GParted 找到您的 EFI 分区。它将有一个 EFI 标签。挂载此分区,将 sdXY 替换为您系统的实际分区号:
sudo mount /dev/sdXY /mnt/boot/efi
chroot
进入你的 Ubuntu 安装:sudo chroot /mnt
此时,您处于安装状态,而不是实时会话,并以 root 身份运行。更新 grub:
update-grub
如果出现错误或者执行到步骤 7 无法解决问题,请转至步骤 8。(否则,这是可选的。)
根据您的情况,您可能必须重新安装 grub:
grub-install /dev/sda update-grub # In order to find and add windows to grub menu.
如果一切顺利,没有错误,那么一切就完成了:
exit sudo reboot
此时,您应该可以正常启动。如果您无法正常启动,并且由于没有错误消息而未执行步骤 8,请重试步骤 8。
有时,仅为您的分区提供正确的 GRUB2 配置是不够的,您必须将其安装(或重新安装)到主引导记录,这是第 8 步所做的。在聊天中帮助用户的经验表明,即使没有显示任何错误消息,第 8 步有时也是必要的。