Grub 无法在我的 USB 硬盘上启动 Windows,但在另一台安装了 Windows 的机器上,我可以添加 Windows,并且可以正常启动

Grub 无法在我的 USB 硬盘上启动 Windows,但在另一台安装了 Windows 的机器上,我可以添加 Windows,并且可以正常启动

我在 USB 硬盘上安装了 Ubuntu,运行良好。我根据这篇文章安装了 Windows生活黑客,我想做的是启动到那里。但我做不到。之前,我有一个 Grub 条目,当它尝试启动时,我得到了类似“驱动器无法获取 c/h/s 值”的信息。

当我在 msconfig 中添加它时,如何让它像 Windows 一样启动?如果我尝试使用实时安装磁盘修复它,它无法识别它,并且我可以从 Ubuntu 正常访问该分区。

不确定这是否是正确的地方但是...我会尝试一下,因为我已经搜索了很多,但没有找到可行的答案。

如果您需要更多信息,我很乐意提供。

答案1

当我读到你的启动修复输出,您安装了三个操作系统:

  • Windows 处于 BIOS 模式/dev/sda-- 此安装位于您的内部磁盘上。
  • Windows 处于 EFI 模式/dev/sdg-- 此安装位于您的外部磁盘上。
  • Ubuntu 处于 EFI 模式/dev/sdg-- 此安装位于您的外部磁盘上,并且在同一磁盘上包含 EFI 模式 GRUB。

您首先应该了解 GRUB 无法跨启动模式重定向。因此,外部磁盘上的 EFI 模式 GRUB 将无法启动到内部磁盘 Windows。不过,这听起来不像您试图这样做;听起来您想从外部磁盘上的 EFI 模式 GRUB 启动外部磁盘上的 Windows。这应该可以工作,但出于某种原因,OS-prober 未检测到外部磁盘上的 Windows。此问题有几种可能的解决方案,包括:

  • 创建自定义 GRUB 配置——您可以编辑该/etc/grub.d/40_custom文件,如 jarondl 的回答中所述这个问题,,然后运行sudo update-grub​​,以创建必要的条目。
  • 使用 GRUB 定制程序- 这GRUB 定制器工具使像前面那样进行自定义变得更容易。话虽如此,我从未使用过它,而且我不确定它是否真的能40_custom在你的特定情况下提供很大帮助,相比直接编辑。
  • 使用启动修复- 这启动修复工具有时可以纠正像您这样的启动问题。话虽如此,我不能保证它真的能起到很大作用,如果有的话。
  • 安装 rEFInd- 我的rEFInd 启动管理器有时在检测和/或启动 Windows 方面比 GRUB 做得更好。因此,安装它可能有帮助。但请注意,如果启用了安全启动,您必须克服一些额外的困难。通过适当的选项设置,rEFInd 可以将启动过程从 EFI 重定向到 BIOS,因此 rEFInd 可以让您启动任一 Windows 安装。
  • 禁用休眠和快速启动-- 这两个 Windows 功能通常是导致问题的根本原因,例如您所看到的问题。如果您可以启动 Windows,即使是暂时的,也应该禁用它们,如所述这里这里,如果你继续使用 GRUB,则需要运行sudo update-grub 您必须先禁用这些功能才能看到任何好处。

前三个选项会产生更多新问题,因此,修改 GRUB 的配置文件并非完全没有风险。rEFInd 也可能会搞砸一切,但您可以先在 USB 闪存驱动器或 CD-R 上试用,以将风险降至最低。最后一个选项与其他选项不同,因为它解决了问题的一个可能根源,而不是试图绕过它。

总的来说,我的建议是先尝试禁用 Windows 中的休眠和快速启动。如果您找不到任何其他启动方式,请尝试使用 USB 闪存驱动器或 CD-R 上的 rEFInd。(您可能需要暂时禁用安全启动才能使其正常工作。)如果在执行此操作并运行后sudo update-grub,您仍然无法从 GRUB 启动 Windows,您可以尝试将 rEFInd 安装到硬盘上或尝试您喜欢的任何 GRUB 修复方法。

还要注意,EFI 模式启动对于永久与计算机关联的磁盘(例如永久连接到计算机的内部磁盘和外部磁盘)和临时磁盘(您移动的外部磁盘,例如 OS 安装程序磁盘)的工作方式不同。在这个答案中,我假设您的外部磁盘虽然是外部的,但或多或​​少永久插入您的计算机。如果您移动外部磁盘并希望它在任何计算机上启动,您可能需要调整 ESP 上的引导加载程序文件名。请参阅我的回答这个问题了解详情。

相关内容