在网上搜索了很长时间没有找到令人满意的解决方案后,我决定自己在这里问一个问题。
我在我的计算机上的双引导系统中运行 Windows 7 和 Ubuntu 18 已经有一段时间了。就在最近,我搞砸了 Ubuntu 系统,而不是修复它,我决定重新安装会更快。
所以,我创建了一个可启动的 U 盘,尝试在 Windows 旁边重新安装(包括格式化)Ubuntu,并得到以下错误
grub-efi-amd64-signed package failed to install into /target/
谷歌搜索这个错误提示,我只需要/boot/efi/
在安装过程中提供一个挂载点。这已经感觉有点奇怪了,因为我确定我当时并没有在第一次安装时这样做。无论如何我都试过了,系统安装成功。缺点是 grub 无法检测到 Windows 7。
进一步搜索该问题告诉我,grub2 拒绝检测非 UEFI 引导加载程序,这与我之前的经验相矛盾(之前安装了相同的操作系统并且双引导工作正常)。
更多细节:
- 这两个操作系统安装在单独的 SDD 上,每个 SDD 都有自己的引导加载程序。
- BIOS 支持两种启动方式(Legacy/UEFI)
- 对于 Windows 7 磁盘,我假设
fdisk -l
这Disklabel type: dos
意味着,这个 SDD 仍然使用旧的 MBR/Legacy 引导方法。 - 我仍然可以告诉 BIOS 引导 Windows 磁盘并且它可以工作。这排除了损坏的 Windows 引导加载程序导致 grub 无法检测到它的可能性。
- Ubuntu 18 使用 grub2(默认)作为引导加载程序。由于我已经安装了一个新系统,我无法分辨旧系统使用的是哪种引导类型,或者它具有哪种 Disklabel 类型。
- 仅在运行
update-grub2
时检测到 Ubuntu。 - 运行
os-prober
不会产生任何结果(分别是空的)。 - 我可以在运行 Ubuntu 时挂载和访问 Windows 磁盘。
我发现的一种解决方案是将 Windows 启动类型更改为 UEFI,我不想这样做,因为这意味着迁移 Windows 或重新安装它,而我不想这样做。
有谁知道,如何以非 UEFI 方式安装 Ubuntu,或者让 grub2 检测基于 MBR 的 Windows 安装?我不喜欢这两种(或可能的其他)方式中的任何一种。
如果您需要任何进一步的信息,我很乐意提供。
最良好的祝愿,并感谢您的回答!
每个主板的 BIOS/UEFI 接口略有不同,但您应该注意到您的 USB 驱动器在启动选项或启动优先级列表中有两个(或更多)不同的条目。确保选择了非 UEFI 选项,以便安装程序默认为传统模式。
否则,如果您选择以 开头的闪存驱动器
UEFI:
,安装程序将默认为 UEFI。如果没有显示任何非 UEFI 选项,您可能需要在 BIOS 中搜索其他设置以禁用 UEFI 或启用 MBR。有时这被称为“传统模式”。有关如何执行此操作的硬件特定问题,请参阅您的制造商手册。
使用 USB 引导到传统模式应该可以让 GRUB 和安装程序更容易找到您的 Windows 安装。