GRUB 无法加载双启动

GRUB 无法加载双启动

我在 HP Spectre X360 上运行双启动 Windows 10 和 Ubuntu 15.10。一切正常,直到我更新 Ubuntu 并要求我重新启动系统。重新启动后,GRUB 不再显示,我的电脑会立即启动到 Windows。

我尝试了以下操作:

  • 启动时按住 shift:什么也没发生
  • 更改启动顺序:仅显示 Windows 启动管理器,因此我无法更改任何内容
  • 进行启动修复:运行后我得到了这个日志http://paste2.org/0Cwwt45W但它并没有解决我的问题。

到目前为止我还不知道还能尝试什么。

编辑:我可以按 esc,然后按“启动设备选项”,然后按“从 EFI 文件启动”,然后按“EFI”,然后按“Ubuntu”,然后按“grubx64.efi”,然后以这种方式启动 Ubuntu。

现在 /var/log/apt/history.log 中有趣的条目是

Install: 
linux-headers-4.2.0-23-generic:amd64 (4.2.0-23.28, automatic)
linux-signed-image-4.2.0-23-generic:amd64 (4.2.0-23.28, automatic)
linux-image-extra-4.2.0-23-generic:amd64 (4.2.0-23.28, automatic)
linux-headers-4.2.0-23:amd64 (4.2.0-23.28, automatic)
linux-image-4.2.0-23-generic:amd64 (4.2.0-23.28, automatic)

Upgrade: 
linux-headers-generic:amd64 (4.2.0.22.24, 4.2.0.23.25)
grub-efi-amd64-bin:amd64 (2.02~beta2-29ubuntu0.2, 2.02~beta2-29ubuntu0.3)
grub-efi-amd64:amd64 (2.02~beta2-29ubuntu0.2, 2.02~beta2-29ubuntu0.3)
grub-common:amd64 (2.02~beta2-29ubuntu0.2, 2.02~beta2-29ubuntu0.3)
grub2-common:amd64 (2.02~beta2-29ubuntu0.2, 2.02~beta2-29ubuntu0.3)
linux-signed-generic:amd64 (4.2.0.22.24, 4.2.0.23.25)
grub-efi-amd64-signed:amd64 (1.55.2+2.02~beta2-29ubuntu0.2, 1.55.3+2.02~beta2-29ubuntu0.3)
linux-signed-image-generic:amd64 (4.2.0.22.24, 4.2.0.23.25)
linux-image-generic:amd64 (4.2.0.22.24, 4.2.0.23.25)
linux-generic:amd64 (4.2.0.22.24, 4.2.0.23.25)

答案1

Windows 10 喜欢将自己视为计算机上唯一安装的操作系统,因此您无法启动其他操作系统。您需要做的是通过管理员命令提示符或 PowerShell 将 GRUB 设置为 Windows 中的默认启动管理器。

运行此命令:

bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi

如果您使用 PowerShell,请运行以下命令:

bcdedit /set "{bootmgr}" path \EFI\ubuntu\grubx64.efi

重新启动计算机,然后 grub 应该会出现在 HP 徽标后。

答案2

您必须在 BIOS 中更改启动顺序。启动时,您必须按下按钮才能进入。通常是 F2 或 del。在那里,您必须选择您的 ubuntu 分区作为启动的首要任务。这完全取决于您的主板和 BIOS 版本。如果您无法确定启动时要按哪个按钮,请搜索您的主板。

答案3

看起来您的机器正在使用 UEFI。我假设新的 grub 引导加载程序未被 BIOS 识别,因此它启动了 Windows。我在一台笔记本电脑上观察到了这种行为,除非选择“传统启动”,否则它拒绝启动 Linux (GRUB)。

这为您提供了两个选择:

  • 尝试在启动时按F12或打开一次性启动菜单Esc(可能是某些其他键,例如F9)并选择类似legacy boot
  • F2使用, (或其他键)打开 BIOS 设置Del,导航到启动或启动管理,然后查找“启用传统启动”或类似选项并激活它

如果其中一个步骤有效,则说明这是 UEFI 问题,并且您的引导加载程序仍然完好无损且正常运行。

另一种方法是检查为什么 UEFI 以前可以正常启动 Ubuntu,但现在却拒绝启动。这可能是由于以下原因造成的:

  • BIOS 中的启动优先级设置
  • GRUB 指纹/签名必须添加到 UEFI 才能被接受为合法的引导加载程序
  • 你的 GRUB 已损坏,你可以从 Ubuntu Live CD 重新安装引导加载程序

答案4

遇到过类似的问题:Win 7 和 Xubuntu 15.10 -> Grub 从未启动。当我尝试恢复 grub 时收到类似消息:

Could not set variable Boot000B: No such file or directory

因此我使用了(在 Windows 下以管理员身份)bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi如上所述。Grub 现在运行良好,但没有 Windows 可供选择。

将 Windows 添加到 grub:我按照https://wiki.ubuntuusers.de/GRUB_2/Skripte/(德语)->在“/etc/grub.d”中创建可执行文件“29_windows”

#!/bin/bash
# EFI-Partition suchen und auswerten
if [ -f /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi ]; then
    EFI_UUID=$( grub-probe -t fs_uuid /boot/efi/EFI )
    echo "Menüeintrag für Windows eingefügt" >&2

cat <<EOF
menuentry "Windows 7 Pro (UEFI)" {
    insmod fat
    insmod chain
    search --no-floppy --fs-uuid --set=root ${EFI_UUID}
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
EOF
fi

然后运行

sudo grub-mkconfig
sudo update-grub

Grub 通过脚本自动找到了 Windows。两者都在工作,所以你可能不需要额外的脚本

相关内容