Grub 指向错误的 Windows 分区

Grub 指向错误的 Windows 分区

我刚刚在我的 Windows 10 分区上安装了 Ubuntu 18.04。安装后,每次我尝试启动 Windows 时,它总是告诉我 winload.exe 不存在/已损坏且 Windows 无法启动。

显然,grub 错误地将我的第二个 HDD 分配为 Windows 10 启动驱动器(/dev/sdc1),而不是我的 SSD(SATA 0,分区 0)(/dev/sda0/我认为),它告诉 Windows 尝试从那里启动,当然,它没有工作,因为那里没有 Windows。

那么我怎样才能将其改为指向 SSD 呢?

另外,稍微澄清一下:

我有 1 个 SSD 和 2 个 HDD,以前我只有 1 个 HDD,但后来我升级到了 SSD,并开始将 Windows 重新安装到新的 SSD 上。我忘记我是否曾经对之前的 HDD 进行过完全擦除,因为仍然有一些剩余的 Windows 文件(谁知道那个 HDD 上的 MBR 是否会被擦除)

我还没有尝试过从 bios 上的 windows 启动管理器选项启动它,我想我以后会尝试一下

编辑:添加了来自 boot-info 的输出

在我看到 boot-info 输出之后,有一些事情我不明白。例如,为什么 grub 在 grub 菜单中告诉我 windows 位于 /dev/sdc3/ 上,而显然 sdc3 在我的计算机上根本不存在。

当我运行 sudo update-grub 命令时,windows 分区更改为 sdc1,这是可以的,但仍然是错误的硬盘

编辑2:

我执行了 bootrec /fixmbr 操作,尝试将 Windows 引导加载程序恢复到 MBR。但遗憾的是,我仍然无法启动回 Windows,更不用说 ubuntu 了。由于我没有太多时间,我只是重新安装了整个系统。

非常感谢大家的回答。希望你的回答对别人也有帮助

答案1

我首先修复你的 Windows 10使用 Win 10 ISO USB 或 DVD 启动。

在您的 Windows 从 MBR 启动后,启动 Ubuntu live CD 或 USB,打开终端并发出以下命令(/dev/sda1应该是您的 Linux 分区,如果不是,请相应地更改字母,sda应该是您在 BIOS 中启动的第一个磁盘 - 请参阅grub-install命令):

sudo su

fdisk -l

mount /dev/sda1 /mnt/

mount -t proc none /mnt/proc

mount -o bind /dev /mnt/dev

mount -t sysfs sys /mnt/sys

chroot /mnt/ /bin/bash

update-grub

/usr/sbin/grub-install --recheck --no-floppy /dev/sda

sync

reboot

在最后一步中,可以从菜单中选择重新启动,而不是重新启动命令。

答案2

如果两个操作系统安装在不同的内部驱动器上,则您必须(或可能)使用高级启动菜单(通常按 F12)。对于非默认操作系统,您需要突出显示并选择要从其启动的备用驱动器。

基本上,除非您直接启动到该驱动器,否则辅助驱动器启动管理器是隐藏的。我的一个系统上有类似的设置。我的 Ubuntu 安装在辅助硬盘上,而 Windows 10(我用于游戏的默认设置)是默认驱动器。Ubuntu 是初始启动层下的层,因此当按 F12 键选择启动选项时,我会看到类似以下内容:

经典战靴

•内置硬盘<-(这实际上是我的默认固态硬盘)

•CD/DVD/CD-RW 驱动器

•板载网卡

•USB 存储设备

UEFI 启动:

•Windows 启动管理器(或包含 Windows® 的第二个硬盘驱动器的名称)

其他选择:

•BIOS 设置

•设备配置

•诊断

相关内容