我有一台小米笔记本 Air。Windows 安装在 UEFI 模式下,但 Linux 安装在 Legacy 模式下。现在我只能通过 UEFI 启动 Windows,只能通过 Legacy 启动 Linux。grub 检测 Windows,但无法启动。
(elementary os、windows 10 和 gnu grub)
答案1
在 Windows 中,启动方法由硬盘的分区方案决定。
- 在 GPT 磁盘上,Windows 仅使用 UEFI 启动
- 在 MBR 磁盘上,Windows 只能使用 CSM/BIOS 启动,又称传统
这意味着您的磁盘是 GPT,并且您无法使用 CSM 启动 Windows。
简单的解决方案:
- 配置 UEFI 以允许同时进行 UEFI 启动和 CSM 启动(可能在您的 UEFI 中不可用)
- 在 UEFI 模式下重新安装 Linux
不太简单的解决方案:
在 UEFI 模式下安装 GRUB。这将使 Linux 无需 CSM 即可启动。
需要进行大量修改。您必须将 GRUB 安装到 ESP(EFI 系统分区),将其添加到 UEFI 启动列表,以 UEFI 模式启动 Linux,并将其配置为始终在 UEFI 模式下安装 GRUB 更新。如果我没记错的话,使用 CSM 启动时您无法执行此操作,因为
/sys/firmware/efi/efivars
不存在 CSM。使用 MBR 方案对硬盘重新分区并修复 Windows 以使其正常工作。
需要很多修补和谨慎。更改分区方案将使所有分区无效,您必须提前备份并在之后恢复它们。Windows 可能对切换到 MBR 很挑剔,很可能无法启动。在最好的情况下,从 Windows 安装媒体运行“自动修复”就足够了,否则您必须手动修复 BCD(启动配置数据)。