我已经同时运行 Windows 10 和 Ubuntu 16.04 有一段时间了。我可以用 Grub 引导程序启动任一操作系统。不幸的是,我的 Windows 10 安装坏了,我需要重新安装它。
重新安装 Windows 10 后,我无法再使用 Grub 引导程序启动它。因此,我使用可启动的 Windows USB 执行以下命令以重新获得对 Windows 的访问权限:
bootrec.exe /fixmbr
bootrec.exe /fixboot
bootrec.exe /rebuildbcd
之后,我曾经easyBCD
为 Windows 10 和 Ubuntu 创建了一个新的 Bootloader 菜单。这让它再次正常工作。我现在要做的是使用 Windows 10 启动菜单来选择 Windows 10 或 Ubuntu,如果我选择 Windows 10,它会直接将我送入操作系统。但是,如果我选择 Ubuntu,我会被发送到 Grub 引导加载程序,其中包含指向我旧的 Windows 10 的损坏链接。选择 Ubuntu 会将我引导到 Ubuntu 操作系统。
我想要实现的是再次将所有内容置于 Grub Bootloader 下,但我对这里发生的事情感到非常困惑,所以我希望有人能帮助我。
编辑:当我尝试在 Grub Customizer 中保存时,它似乎Grub Customizer
被删除了/etc/grub.d/40_custom
。当我在原始文件中添加这些行并将其保存在那里时,启动选项不会显示在 Grub Customizer 中。
答案1
尝试此解决方法
执行以下命令:-
/etc/grub.d/
gedit 40_custom
在 40_custom 文件中添加以下行:
menuentry "Windows 10" {
set root='(hd0,1)'
chainloader +1
}
如果失败了,请尝试这个:
menuentry "Windows 10" {
set root='(hd0,msdos1)'
chainloader +1
}
编辑保存文件后并运行以下命令:
grub2-mkconfig -o /boot/grub2/grub.cfg
它在主配置文件中添加窗口条目。
然后输入:
reboot
答案2
尝试os-prober
。由于您已安装了另一个引导程序,因此您还需要重新安装 GRUB。运行以下命令来安装os-prober
和更新您的 GRUB 配置:
sudo apt-get update
sudo apt-get install os-prober
sudo grub-install /dev/sda
sudo update-grub
现在重新启动,你的 GRUB 菜单应该已经修复!
答案3
看来 grub 成功找到了 Windows EFI 加载程序,然后停止添加一个启动项,但该启动项链接到无效的(旧的)Windows 安装。
您能否找出 Windows 启动管理器现在在哪种模式下工作,即 UEFI 还是 Legacy?因为 grub 可能已检测并使用 (旧) EFI 映像,而不是进一步探测另一个 Legacy 替代方案。
PS 假设你想从任一启动管理器启动任一操作系统,更公平的方法是使用第三方启动管理器。rEFInd 是一个不错的选择。它足够稳定和强大,可以处理由于任一方系统更新而可能出现的变化。