Windows 8 未显示在 GRUB 2 中,Bootrepair 没有帮助

Windows 8 未显示在 GRUB 2 中,Bootrepair 没有帮助

我花了一整天的时间解决这个问题,可能是因为我对 Ubuntu 还比较陌生。

我在安装了 Ubuntu 之后安装了 Windows 8.1。一开始我无法启动 Ubuntu,但在 Bootrepair 之后我就可以启动了。不幸的是,我只是改变了这个问题,因为现在我无法启动 Windows。以下链接是 Bootrepair 报告:http://paste.ubuntu.com/10971525/

第一个硬盘上未安装 Windows 8,有人认为这是一个问题,请参见:http://www.gnu.org/software/grub/manual/grub.html#DOS_002fWindows。上面说了一些有关磁盘交换的内容。我应该尝试一下吗,还是有其他解决方案?

答案1

sda 上的 Windows 使用 MBR(msdos),因此 Windows 只能在 CSM 模式下启动。CSM - UEFI 兼容性支持模块 (CSM),它模拟 BIOS 模式。Ubuntu 在 sdb 上处于 UEFI 启动模式。UEFI 和 CSM 不兼容,或者您​​必须完全重新启动才能从一个系统切换到另一个系统,并且可能必须更改 UEFI 设置以打开 UEFI 或关闭 CSM 或反之亦然。最好让所有系统都处于相同的启动模式。

要在 BIOS 模式下恢复 Windows 启动,您必须将 Windows 启动加载程序安装到 sda 的 MBR。您的 Windows 修复闪存驱动器可以执行此操作,或者在 Boot-Repair 中使用高级模式。然后在 UEFI 中打开 CSM 模式以启动 Windows。

您可以使用 Boot-Repair 将 Ubuntu 的安装从 UEFI 转换为 BIOS,但请确保仅将 grub 安装到 sdb 驱动器,而不是所有驱动器(如 Boot-Repair 中的默认自动修复)。要以 CSM 模式启动,您还必须关闭 UEFI 中的安全启动。

您确实显示 grub 安装到 sdb 的 MBR 以进行 BIOS 启动,但 fstab 仍显示安装 efi 分区以进行 UEFI 启动更新。所以在某个时候您可能已经在 sdb 上进行了 BIOS 启动?

答案2

您可以尝试在 grub 中添加一个 windows 条目。打开/etc/grub.d/40_custom文件并添加以下条目,替换详细信息以适合您的安装:

menuentry "Windows 8" {
    set root='(hd0,gpt1)'
    chainloader /EFI/microsoft/BOOT/bootmgfw.efi
}

然后运行update-grub,希望你会在 grub 中看到一个条目。

答案3

感谢您的详尽回复。我明天会尝试一下(花了几个小时摆弄 Grub 让我筋疲力尽)。

同时,我发现了一个不太理想的解决方案:在 GRUB 的 CLI 中输入:

chainloader (hd0,1)+1
boot

这些是启动 Windows 的命令。它不如常规方法方便,但目前我满足于此。一定有办法将这些命令放入配置文件中……也许是 oldfreds 方法……

相关内容