UEFI 硬件和 Windows 双启动

use*_*803 5 boot dual-boot windows fat32 uefi

我一直在努力尝试双启动 Ubuntu 11.10 和 Windows 7。我想为我的 Ubuntu 安装使用 SSD,并为 Windows 使用硬盘。我意识到我必须先安装 Windows,然后再安装 ubuntu,所以我这样做了。当我第一次安装 Windows 时,它可以从我的硬盘正常启动,但是当我在 ssd 上添加 ubuntu 并重新启动时,我看到一个带有闪烁光标的黑屏。我已经阅读了许多论坛,但没有找到一个可行的解决方案。

我试过启动修复。它告诉我做一个胖 ESP 分区,我也这样做了,但它仍然不起作用。

我是菜鸟,任何建议将不胜感激。

小智 3

不幸的是,您会在 Internet 上获得大量与此相关的完全无用的信息,因为基于 UEFI 的系统上的引导过程与较旧的基于 BIOS 的硬件上的引导过程完全不同。在此处的一篇文章中完全描述相关差异是不可能的,因此要了解完整信息,我建议您查看有关 UEFI 的 Wikipedia 页面有关 Linux 的 EFI 引导加载程序的网页。(请注意,“UEFI”指的是下一代 EFI;本质上是 EFI 2.x。在大多数情况下,这两个术语是可以互换的,尽管“UEFI”更具体,指的是该技术的较新版本。)

不过,为了开始使用,您应该首先验证是否以 EFI 模式启动Windows。这可以通过多种方式完成,例如在管理命令提示符窗口中键入“bcdedit”。结果应在“Windows Boot Loader”部分的“path”行中包含对 winload.efi 的引用。相反,如果此行引用 winload.exe,则系统将以 BIOS 模式启动,您需要遵循更传统的 BIOS 建议。

假设您以 EFI 模式启动,我的第一个建议是忘记安装 Ubuntu 11.10 或更早版本。这些版本在安装过程中包含错误,使得与任何其他操作系统设置双启动变得更加困难。Ubuntu 12.04 修复了这些最严重的错误。在以 EFI 模式启动的 12.04 中,安装程序应检测 Windows 创建的 EFI 系统分区(ESP;保存启动加载程序的分区),并将其自己的启动加载程序添加到该分区。

一个可能的复杂情况是 Ubuntu 可能无法在 EFI 模式下启动,即使 Windows 是在该模式下安装的。您可以通过查找目录 /sys/firmware/efi 来检查此详细信息。(您可能需要使用“安装前尝试”选项来检查此文件,然后启动安装程序。)如果此文件存在,则您肯定是在 EFI 模式下启动的。如果没有,您可能会以 BIOS 模式启动,尽管这不是 100% 确定。如果您发现正在以 BIOS 模式启动,则应该纠正该问题,或者继续以 BIOS 模式安装,然后切换启动模式。这些选项中的任何一个都值得在这里提出一个全新的问题,所以我不会讨论它们。

理想情况下,如果 Ubuntu 12.04 安装正确,它将检测 Windows 并将 GRUB 2 设置为默认引导加载程序,因此系统将按预期工作,并在引导时为您提供引导菜单。但有时,您需要将 Windows 添加到 GRUB 配置中,可以通过在 /etc/grub.d/40_custom 中创建类似的条目,然后重新运行“grub-mkconfig -o /boot/grub”来完成此操作/grub.cfg”:

menuentry "Windows 7" {
        set root='(hd0,gpt1)'
        chainloader /EFI/microsoft/BOOT/bootmgfw.efi
}
Run Code Online (Sandbox Code Playgroud)

其他时候,系统可能会继续直接启动进入 Windows。通常可以通过从 ESP 中删除 EFI/boot/bootx64.efi 或将其替换为 GRUB 2 引导加载程序文件(可能是 EFI/ubuntu/grub_x64.efi,IIRC)的副本来纠正此问题。不幸的是,这个问题是由特定 EFI 实现中的错误引起的,因此解决方法可能是高度特定于系统的。

黑屏且光标闪烁的症状表明 GRUB 配置严重错误,或者可能完全缺少 GRUB 安装。我要回避这个问题,如果幸运的话,Ubuntu 12.04 将会修复这个问题。如果没有,我建议安装 ELILO 或 Fedora 的修补过的 GRUB Legacy 来替换 GRUB 2,因为根据我的经验,GRUB 2 是可用的 Linux EFI 引导加载程序中最不可靠的。(有关详细信息,请参阅我在本回复第一段中引用的 EFI 引导加载程序页面。)


jpl*_*tte 0

尝试在 Ubuntu 设置中将引导加载程序安装到 HDD,可能是 SDD 上的 grub 安装有问题。