![GRUB2 从恢复而不是主分区启动 Windows](https://linux22.com/image/897675/GRUB2%20%E4%BB%8E%E6%81%A2%E5%A4%8D%E8%80%8C%E4%B8%8D%E6%98%AF%E4%B8%BB%E5%88%86%E5%8C%BA%E5%90%AF%E5%8A%A8%20Windows.png)
我对 Ubuntu 还很陌生,现在遇到了一个问题。我有一台 Acer Aspire E5-573-P5AB,我首先在上面安装了 Windows 10。然后我安装了 Ubuntu 16.04 或 16.10 LTS。我不记得是哪一个了。
由于我将 Ubuntu 升级到 17.10,因此 Grub 决定尝试从 (/dev/sda1
Windows 10 的恢复分区)而不是 (/dev/sda2
Windows 10 的主分区)启动 Windows 10,当我尝试启动 Windows 10 时,我会看到 grub 的背景颜色和屏幕上的一些故障线条,然后笔记本电脑在 grub 中重新启动。
为了从 grub 启动 Windows 10,我必须在 Grub 启动屏幕上突出显示 Windows 10 并编辑命令以更改为hd0,msdos1
。hd0,msdos2
这很烦人!
另请注意,我使用了sudo update-grub
几次,它仍然检测到 Windows 10/dev/sda1
而不是/dev/sda2
。有人能帮助我吗?我是新手,我不知道该怎么办!另请注意,这两个操作系统都安装在 BIOS 中,而不是 UEFI 中。
答案1
您可以尝试使用多种工具。引导修复就是其中之一。Grub 定制器是另一个我想到的工具。但是,由于 update-grub 无法像宣传的那样工作,这听起来像是您的分区标志有问题,/dev/sda2
因为上述脚本应该为所有可启动分区生成菜单项,无论操作系统或版本如何。虽然通常不建议这样做,但您可以手动编辑/boot/grub/grub.cfg
找到您在启动时编辑的菜单项,将 hd0,msdos1 更改为 hd0,msdos2,因为您说这有效。您可以找到特定的行,以便您可以识别要编辑的块,更改cat /boot/grub/grub.cfg | grep -A11 /dev/sda1
花括号之间的该块中的每个引用,从hd0,msdos1
到,hd0, msdos2
应该有 3 个。您可能只需更改 set root= 部分即可。您可能还希望更改菜单项标题引用,其中显示为,on /dev/sda1
以on /dev/sda2
避免以后混淆。
上述方法的问题是下次您更新 grub 时,它可能会恢复到您现在看到的相同行为。听起来根本原因是 grub 配置脚本或 os-prober 出了问题。该命令sudo apt install --reinstall grub-common
应该可以解决这个问题,并使 update-grub 按照宣传的那样工作。