我刚刚在我的 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 输出之后,有一些事情我不明白。例如,为什么 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 设置
•设备配置
•诊断