我的机器上安装了 Windows 10。我创建了一个额外的分区并在其上安装了 ubuntu。在安装过程中,我收到错误,提示 grub 安装失败。为了解决这个问题,我选择了一个 500MB 的分区(我猜是 MBR)挂载到 /boot/efi 上,然后继续安装。但是,这个修复安装后,grub 无法检测到 Windows 10。
/dev/sda1 是我选择挂载在 /boot/efi 上的分区。/dev/sda2 是 Windows 10 安装。/dev/sda6 是 Ubuntu。
当我运行sudo update-grub
grub 时,它无法检测到 Windows 10 安装。我担心,如果我随机关注任何博客文章,我可能会丢失我的 Windows 10 安装。有人可以向我解释发生了什么,并指出如何修复它的方向吗?
答案1
您/dev/sda
使用主引导记录 (MBR)分区系统。除非您有第二块硬盘,使用较新的GUID 分区表 (GPT)系统,这意味着 Windows 以 BIOS/CSM/legacy 模式安装,因为 Windows 将其启动模式与其分区表类型绑定在一起 - 在 MBR 磁盘上,Windows 仅在 BIOS 模式下安装和启动,而在 GPT 磁盘上,Windows 仅在 EFI/UEFI 模式下安装和启动。
听起来你可能强制 Ubuntu 以 EFI 模式安装。(Ubuntu 对引导模式与分区表类型的关联限制比 Windows 要少。)如果是这样,则你得到的是 EFI 模式版本的 GRUB,它无法启动 BIOS 模式的 Windows 引导加载程序。从广义上讲,有三种方法可以解决这个问题:
- 安装 BIOS 模式 GRUB-- 您可以在磁盘上安装 BIOS 模式版本的 GRUB 并使用它。由于这是新安装,最简单的方法可能是重新安装 Ubuntu,但要在 BIOS 模式下进行。这将要求您学会控制启动模式。请参阅我的 CSM 页面了解这方面的一些信息;但请注意,该页面是为与您情况相反的人编写的——即 Windows 安装在 EFI 模式下,Ubuntu 安装(可能)发生在 BIOS 模式下。或者,您可以运行引导修复从 Ubuntu 紧急磁盘的 BIOS 模式启动。无论哪种方式,您都需要学习如何控制启动模式。
- 将 Windows 转换为以 EFI 模式启动——新微软MBR2GPT工具可以做到这一点;或者你可以按照较旧的程序进行操作,例如这个。如果你选择这种方式,你可能需要重新安装电喷使用 Boot Repair 安装 GRUB 版本,或者安装我的rEFInd 启动管理器在电脑上面。
- 使用混合模式启动-- 可以以 EFI 模式启动一个操作系统,以 BIOS 模式启动另一个操作系统,但这样做有点麻烦。最直接的方法是使用计算机的内置启动管理器来切换启动模式。不过,具体操作方法因计算机而异。通常,在打开计算机后,按 Esc、Enter 或功能键即可访问启动管理器。您可能已使用此启动管理器告诉计算机启动 Ubuntu 安装程序。另一种方法是使用我的 rEFInd;但您需要编辑
refind.conf
:取消注释该scanfor
行并确保它hdbios
是选项之一。这将在 rEFInd 中启用 BIOS 启动支持,然后它会生成一个灰色菱形图标,除了其默认的 EFI 模式启动选项(应该启动 Ubuntu)之外,它还会以 BIOS 模式启动计算机。
在这些选项中,第一个选项从长远来看是最不优雅的,正如我在 CSM 上的页面(前面提到过)所描述的那样;但风险相对较低。如果我要进行全新安装,我建议在 EFI 模式下进行所有操作,但将 Windows 转换为以这种方式启动会带来一些不小的风险,所以我不太建议这样做。使用混合模式启动可能是短期的,但也可能是最尴尬的,特别是如果你依赖计算机的内置启动管理器。总的来说,很难简单地推荐使用哪种方法,因为这取决于你的具体需求、技能和情况。