安装时未检测到 Windows。我安装了 Windows 分区并运行了 os-prober,但没有返回任何结果。
我可以通过在 UEFI 启动顺序中指定分区来启动 Windows 或 Ubuntu。BIOS 似乎不允许使用旧版启动。SecureBoot 已打开。
这是 Inspiron 15 上的 Ubuntu 12.04 LTS。
这是 gdisk:
1 2048 1026047 500.0 MiB EF00 EFI system partition
2 1026048 1107967 40.0 MiB FFFF Basic data partition
3 1107968 1370111 128.0 MiB 0C01 Microsoft reserved part
4 1370112 2394111 500.0 MiB 2700 Basic data partition
5 2394112 544743423 258.6 GiB 0700 Basic data partition
6 606183424 625140399 9.0 GiB 2700 Microsoft recovery part
7 544743424 545230847 238.0 MiB 0700 (/boot)
8 545230848 556949503 5.6 GiB 8200 (swap)
9 556949504 606181375 23.5 GiB 0700 (/)
当安装 ubuntu 时,我相信我指定将引导加载程序安装在 /dev/sda 上。
我向 /etc/grub.d/40_custom 添加了以下内容,但启动 ubuntu 并没有提供 grub 菜单:
menuentry "Windows 8" {
set root = "(hd0,4)"
chainloader +1
}
在启动时,我认为在 Ubuntu 开始启动之前我看到“EFI 磁盘错误”快速闪烁。
答案1
第一次尝试禁用安全启动。尽管 Ubuntu 理论上支持安全启动,但仍有很多关于安全启动的问题报告,特别是在双启动配置中。我认为禁用安全启动不太可能立即解决您的问题,但它将使您尝试解决问题的任何方法更有可能成功。
其次,您可以尝试多种方法来解决启动问题,包括:
- 安装我的rEFInd 启动管理器。请注意,在尝试整个操作之前,您可以尝试使用 USB 闪存驱动器和 CD-R 映像;但是,除非您按 F2 或两次插入并添加,否则它们不会直接启动您的 Linux 内核
ro root=/dev/sda9
。如果您安装了 Debian 软件包,则不再需要这样做。USB/CD-R 映像也应该能够通过 GRUB 成功启动 Windows 和 Linux。 - 跑过引导修复工具。该程序可以修复许多启动问题,尽管有时它会失败,而且在极少数情况下,它实际上可能会使问题变得更糟,导致 Ubuntu 无法启动。
- 为 Windows创建一个合适的
/etc/grub.d/40_custom
条目。你最初问题中的条目可能在基于 BIOS 的系统上有效,但在 EFI 下会失败。你需要更像这样的东西:
。
menuentry "Windows" {
insmod part_gpt
insmod chain
set root='(hd0,gpt1)'
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
请注意,此确切40_custom
条目并不总是有效;您可能需要针对您的系统进行调整。(在一台计算机上有效的方法在另一台计算机上可能完全失效。)
答案2
您可能完全取消 /etc/grub.d/30_os-prober 的执行权限,因为即使它没有找到任何东西,它也会将超时设置为 0,因此看不到 grub 屏幕。接下来,修复 chainloader 命令,+1 适用于 msdos 分区磁盘,并且您有一个 gpt 分区磁盘,因此它应该看起来像:
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
update-grub 将创建一个新的 grub.cfg 文件,但它会将其放入 /boot/grub 中。您需要将其复制到 /boot/efi/EFI/ubuntu,或者确保 ...ubuntu 中的 grub.cfg 文件只是一个存根,它会提取 /boot/grub 中的文件(我认为更高版本默认会这样做,但 12.04 可能不会。)
即使修复了链式加载程序,Windows 仍可能无法成功启动(错误 1091464),因此您可能仍必须像现在一样将 Windows 作为默认启动或通过 UEFI 启动菜单启动。
确保在 EFI 分区上设置了启动标志。即使只有磁盘选择,引导加载程序位置实际上是 efi 分区中的 /EFI/ubuntu。那里的文件应该是 shim.efi、grubx64.efi(签名版本)、grub.cfg(可能还有 gcdx64.efi)。它们必须正确,您才能从 UEFI 菜单成功启动并启用安全启动。