即使安装了旧版 BIOS Ubuntu 16.04LTS,GRUB 也无法检测到旧版 BIOS Windows 10 安装

即使安装了旧版 BIOS Ubuntu 16.04LTS,GRUB 也无法检测到旧版 BIOS Windows 10 安装

好吧,这似乎是一个非常常见的问题,但我找不到针对我的具体情况的答案。我在 Windows 中从 C:\ 驱动器释放并创建了一些未分配的空间,一切顺利。但在安装 Ubuntu 16.04LTS 时,出现了这个弹出窗口(抱歉,我还不允许嵌入图像。): 弹出窗口.jpg

这意味着我的 Windows 是在 BIOS 模式下安装的,我不想通过单击“在 UEFI 中继续”来强制在 UEFI 中安装 Ubuntu,所以我单击了“返回”。安装加载了一段时间,然后它自动前进到下一步,我假设它现在将在 BIOS 模式下继续安装,但现在它只检测到 FreeDOS(我的笔记本电脑附带它,它在 /dev/sda1 上),而不是 Windows 10(在 /dev/sda2 上),并且只给我“安装 Ubuntu 和 FreeDOS”的选项,而不是 windows10。不幸的是,我考虑到 GRUB 稍后会检测到它,并选择了“其他东西”,从我的未分配空间创建了 / 和交换,并安装了 Ubuntu。但安装后 GRUB 检测不到 Windows 10。

我确认我的 Ubuntu 安装也是旧版 BIOS,因为没有 /sys/firmware/efi 目录,所以这不应该是 BIOS 与 UEFI 的问题,而且我的 BIOS 已启用“旧版支持”。此外,os-prober 仅显示 FreeDOS,如下所示:

/dev/sda1:FreeDOS:FreeDOS:chain 我也试过启动修复并执行了“推荐修复”,但没有任何变化。我尝试从可启动 USB 的 Windows 10 设置内部运行启动修复,但无法修复。我不知道如何让它工作,我是否遗漏了什么?任何帮助都将不胜感激!

编辑:好的,所以我还尝试在 /etc/grub.d/ 中向 40_custom 添加自定义菜单项,如下所示:

menuentry 'Windows 10' {
set root='(hd0,msdos2)'  //as windows is on /dev/sda2
chainloader +1
}

但 sudo update-grub2 仍然显示:

Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.4.0-45-generic
Found initrd image: /boot/initrd.img-4.4.0-45-generic
Found linux image: /boot/vmlinuz-4.4.0-31-generic
Found initrd image: /boot/initrd.img-4.4.0-31-generic
Found FreeDOS on /dev/sda1
done

没有窗户:(

答案1

好的,所以我使用 Windows 10 中的 EasyBCD 解决了这个问题。人们应该始终倾向于仅使用 GNU GRUB2 作为默认引导加载程序,这更像是最后的解决方案。

注意:如果有人遇到同样的问题,请首先阅读并尝试我所做的所有事情(给出问题),以及评论,只有在没有任何效果的情况下才这样做。

正如我在问题评论中所说,我必须用 Windows 引导加载程序覆盖 GRUB2 才能在 Windows 10 中启动。启动后,可以安装易BCD 并运行它。关注在 Windows 启动菜单中添加 Ubuntu 条目的指南。重新启动时,启动菜单将显示 Ubuntu 和 Windows 安装,但有一个问题。选择 Windows 时,系统继续进行通常的 Windows 启动,但选择 Ubuntu 时,Windows 引导加载程序将首先调用 GRUB2,您可以从中启动到 Ubuntu(又称“链式加载”)。

这肯定有一个缺点,因为现在必须经过两个启动菜单才能启动到 Ubuntu,因此我再说一遍,这只是一个临时解决方案,人们应该先尝试其他解决方案。

相关内容