我的系统上安装了 Windows 10,并且我安装了 Ubuntu 15.04,指定的启动分区与 Windows 10 引导加载程序所在的位置相同。
现在 grub 中同时显示 Windows 10 和 Ubuntu,但只能从 Ubuntu 启动。在 Ubuntu 中,它显示我的所有 Windows 10 文件以及启动卷中的文件均完好无损。
当我使用 bootrec 修复我的 Windows Windows 10 引导加载程序时,系统既不能从 Ubuntu 启动,也不能从 Windows 10 启动。
我再次重新安装了 Ubuntu,现在它是从 Ubuntu 启动,而不是从 Windows 10 启动。
答案1
如果计算机以 EFI 模式启动,则 Ubuntu 引导加载程序(默认为 GRUB 2)和 Windows 引导加载程序都可以驻留在同一个EFI 系统分区 (ESP)。ESP 是一个 FAT 分区,用于此目的 - 保存引导加载程序。Microsoft 要求制造商对预装 Windows 8 及更高版本的计算机使用 EFI 模式,因此如果计算机附带 Windows 10,则很有可能它使用 EFI 模式,并且您描述的应该工作。您描述的症状最可能的解释是固件存在缺陷,或许与旨在克服此类缺陷的一些错误应用的修复有关。
另一方面,在 BIOS 模式下,引导加载程序代码进入主引导记录 (MBR;又称硬盘的第一个扇区) 和各种后续位置。通常,Windows 从 MBR 引导到分区引导记录 (PBR;又称分区的第一个扇区),再到 NTFS 卷中的文件,而 GRUB 从 MBR 引导到一些后 MBR 代码,再到 Linux 目录树中的文件。但是,如果将 GRUB 安装到分区而不是 MBR,它将接管 PBR。如果将 GRUB 安装到 Windows 分区的 PBR,则该分区将不再引导 Windows。据我所知,这些症状与您所报告的一致。您最有可能在从 Windows 7 或更早版本升级、从头开始安装或在较早安装的基础上重新安装的系统上遇到 BIOS 引导 Windows 10。在这种情况下,解决问题的方法可能是使用 Windows 工具恢复 PBR(也可能是 MBR),然后将 GRUB 重新安装到 MBR 或 PBRUbuntu 文件系统分区。
由于 EFI 模式和 BIOS 模式启动有很大不同,因此解决问题需要您知道您正在使用哪种启动模式。在 Windows 中,启动模式与分区表类型紧密相关,您可以在 Ubuntu 中使用以下命令确定分区表类型:
sudo parted -l | grep Table
输出应指定磁盘的分区表类型,如下所示:
Partition Table: gpt
这表明是 GPT,因此 Windows 以 EFI 模式启动。如果显示msdos
而不是gpt
,则表明是 MBR,因此 Windows 以 BIOS 模式启动。
如果你在知道启动模式后仍无法修复,请运行启动信息脚本在您的系统上。这将生成一个名为的文件RESULTS.txt
。将其发布到pastebin 网站并在此处发布您文档的 URL。这将为我们提供更多诊断信息。另外,请指定您的计算机的品牌和型号。