我拥有 LinuxMint + Windows 10 双启动,一切运行正常。
出于某种原因,我安装了 Kubuntu 而不是 LinuxMint,一切都很顺利。过去几周启动笔记本电脑时,grub 让我在 Ubuntu 和 Windows 之间进行选择。
我习惯自动启动 Ubuntu 操作系统,它工作得很好。但是我最近尝试启动 Windows 操作系统,它不再工作了:当我选择 Windows 启动时,它会返回到 grub。
因此,我启动了 live-ubuntu 会话,安装并运行了启动修复,您可以在此处找到第一个日志 http://paste.ubuntu.com/25591401/
我尝试运行推荐的修复,并收到此消息“检测到 GPT。请创建 BIOS 启动分区(>1MB,未格式化的文件系统,bios_grub 标志)。这可以通过 Gparted 等工具执行。然后重试。”
我按照要求做了(用 gparted 创建未格式化的 bios_grub 标志的 Bios-Boot 分区),然后我再次尝试运行启动修复和选项推荐修复,我按照说明操作,但最后出现了一条错误消息,第二条日志是这样的: http://paste.ubuntu.com/25591550/
我重启了笔记本电脑(没有 USB 线):Grub 没有启动,但(哇哦!)Windows 10 会自动启动。我再也没有启动选项了。
我希望在启动计算机时恢复 Grub 的正常运行。有人有想法吗?
感谢您的帮助。如果您需要更多信息请告诉我。
非常感谢Rod的帮助和关心。
我按照你的指示,如何将 ubuntu 安装从 legacy 更改为 uefi,我使用了方法 1。最后(当它给出日志文件的 pasteubuntu 链接时,它是http://paste.ubuntu.com/25594817/),并显示“发生错误”。
当笔记本电脑启动时,我可以很快看到(仅出现一秒钟)类似“无法打开 EFI/grub...未找到”和“无法加载图像......??”的内容。
我错过了什么?新的 grub 似乎没有正确安装?
附言:我想用您的 refind 实用程序尝试方法 2。我将其复制到 FAT32(启动标志)USB 闪存驱动器上,但当我尝试从中启动时,没有成功。我可能错过了一些东西,因为我真的很累。我会尝试其他方法,明天再挖掘更多。
我尝试了第二种方法(使用 refind),但问题依然存在。使用 refind 从 USB 启动允许我在 之间进行选择。
- 从 EFIPART 启动 Microsoft EFI 启动
- 从 EFIPART 启动 EFI/Boot/bkpbootx64.efi
- 从 EFIPART 启动 EFI\ubuntu\grubx64.efi
- 从 EFIPART 启动 EFI\refind\refind_x64.efi
- 来自 EFIPART 的 Boot Fallback 引导加载程序
- 启动 boot\vmlinuz-4.4.0....由 racine 签名
我选择最后一个,Kubunut 启动了。然后我通过命令行安装 refind。我重启电脑。一开始仍然出现一条快速消息“无法加载...EFI...GRUB”,然后笔记本电脑直接启动 Windows。
我想我没有将正确的对象(EFI 启动项)放在正确的位置。我想我创建的 sda9 也是无用的,但我不确定。我想我有太多启动计算机的选项了。
答案1
发生了什么
我首先要回答的问题是,是什么让你走到了现在的地步。一路走来,你经历了许多步骤,也犯过许多错误……
- 您的计算机运行正常,且配置正确EFI模式双启动设置。请注意EFI模式部分;这很关键。
- 由于某些未知原因,Windows 停止启动。这可能是 GRUB 配置错误、Windows 启动文件损坏或其他问题。我怀疑是 GRUB 问题,但具体原因我不清楚。
- 你启动了 Ubuntu Live CD处于 BIOS/CSM/传统模式。这一点很关键;与第 1 点相比。在此模式下启动是一个错误,但如果您发现了这一点,则可以通过在 EFI 模式下启动轻松纠正此错误。
- 您从此处运行了启动修复BIOS 模式启动时,它抱怨缺少 BIOS 启动分区。(恕我直言,这个警告应该重新措辞,因为它正在误导越来越多的人。)
- 您创建了 Boot Repair 要求的 BIOS 启动分区。这是一个错误,但还不算严重;BIOS 启动分区的存在本身并不会带来特别大的损害。
- 你重新运行了 Boot Repair,它安装了一个BIOS 模式版本的 GRUB。这是一个错误,而且是一个破坏性的错误;这一步骤改变了计算机上的引导加载程序配置,导致无法按照之前的引导方式进行引导,至少在不进行进一步更改的情况下无法进行引导。
最终结果是 Ubuntu 安装在 BIOS 模式下,而 Windows 安装在 EFI 模式下。要切换启动模式,您必须使用可以执行此模式切换的启动管理器。GRUB 无法做到这一点,但大多数 EFI 都有内置的启动管理器可以完成这项工作。不过,这些通常很难使用。我的rEFInd 启动管理器可以进行模式切换,但它也可以在 EFI 模式下启动 Ubuntu,因此如果你安装了 rEFInd,你可以简单地绕过 BIOS 模式的 GRUB。重新安装EFI模式GRUB 是另一个选择。
现在做什么
原则上,您应该能够使用计算机的内置启动管理器(通常在启动过程早期通过按高数字功能键、有时按 Esc 或其他键来访问)。实际上,最好将 GRUB 恢复到大致原始配置或安装另一个启动管理器。以下两个问题的答案详细说明了如何执行此操作:
请注意,这仍然留下了 Windows 停止启动的原因问题。由于它现在正在启动,我怀疑您的 GRUB 配置受到了微妙的损坏。也许是 GRUB 更新出错了。GRUB 在这方面可能相当脆弱。从帖子来看,rEFInd 似乎更可靠一些,但要注意的是,如果安全启动处于活动状态,您必须克服额外的困难让它工作。无论如何,我暂时把这个问题放在一边;相反,应用修复程序,如果 Windows 停止启动,就发布一个关于该问题的新问题。
如需更多背景资料,我建议我的兼容性支持模块(CSM)页面。这是提供 BIOS 启动支持的 EFI 功能。大多数现代 PC 都配有 CSM,但通常出厂时处于禁用状态。许多网站都建议在安装 Ubuntu 之前启用 CSM,但这种建议并不明智。使用 EFI 模式 Windows 进行双启动时,很少需要 CSM,启用它通常会导致您遇到的那种问题。当 CSM 消亡时,我不会流泪……