Grub 无法启动 Windows 10

Grub 无法启动 Windows 10

我在单独的分区上将 Elementary OS 安装在 Windows 10 旁边。在引导加载程序菜单 - Grub - 中启动后,我可以选择 Elementary OS 和 Windows。Linux 启动正常,但选择 Windows 会返回相同的菜单,情况循环。

我想到使用 Windows 10 安装 CD 用 Windows 引导加载程序覆盖 Grub,我找到了有关此过程的以下文章:

https://www.howtogeek.com/howto/32523/how-to-manually-repair-windows-7-boot-loader-problems/ https://www.howtogeek.com/141818/how-to-uninstall-a-linux-dual-boot-system-from-your-computer/ https://askubuntu.com/questions/133533/how-to-remove-ubuntu-and-put-windows-back-on

这是 Grub 的照片:https://1drv.ms/u/s!Ari0rc2rwPVYsBbdiTExfq4nm772?e=kS3OaC

您推荐哪种恢复 Windows 的方法,我的方法是否好用,您是否推荐任何有关该过程的材料或建议?

答案1


Linux 启动正常,但是选择 Windows 却返回同样的菜单,陷入循环。

类似的问题还有很多,所以我就不在这里写了。

我想到使用 Windows 10 安装 CD 用 Windows 引导加载程序覆盖 Grub,我找到了有关此过程的以下文章:

我建议你按照以下步骤操作!!我自己也试过了!!


如何使用 Windows 引导加载程序来启动 Linux


几点

假设 BIOS + MBR

为 Ubuntu 编写,但适用于所有发行版


简而言之,我们要做什么

这将涉及将 Ubuntu 分区的启动记录复制到 Windows,并使用 BCDEdit 在 BCD 存储中创建一个指向该文件的新条目。这样,Windows 将在启动时显示一个菜单,让您在 Windows 和 Ubuntu 之间进行选择。


假设驱动器分区为(根据您的情况进行相应修改

/dev/sda1 - 100 MB - Win 保留

/dev/sda2 - 252 GB - Win(c: 驱动器)

/dev/sda3 - 31000 MB - Ubuntu {挂载点 - /}

/dev/sda5 - 1000 MB - 交换 {逻辑}

/dev/sda6-可选创建以将生成的 .bin 文件从 Linux 移动到 Windows- FAT32 文件系统 - {挂载点 - /media/share}


跳过之前的安装部分,selecting drives因为它是基于偏好的。


安装过程中的关键步骤是:我们需要告诉 Ubuntu 安装程序在哪里安装系统引导加载程序 (GRUB 2)。我们不想在 /dev/sda 上安装引导加载程序,因为那样会覆盖磁盘的主引导记录,也不想在 /dev/sda1 或 /dev/sda2 上安装它,因为那样会覆盖 Windows 引导管理器文件和引导配置数据,或操作系统本身。相反,让我们让 Ubuntu 在将包含 Ubuntu 操作系统的分区上安装其引导加载程序 - 在我们的例子中是 /dev/sda3。为此,请单击

“用于安装引导加载程序的设备”

并选择

/dev/sda3

屏幕截图显示了 ubuntu 引导加载程序安装的正确分区


选择“立即安装”,Ubuntu 将开始安装。安装完成后,系统会询问您是否要重新启动或“继续测试”。您应该选择继续测试,因为以下步骤需要访问终端。 Note : it is important not to reboot now otherwise this methods will not work

配置 Ubuntu 实现双启动

现在我们已经对磁盘进行了分区并安装了 Ubuntu,让我们设置系统来启动 Windows 或 Ubuntu。


我们需要一种方法将生成的引导记录文件移动到 Windows。在 Windows 中,可以使用 ntfs 驱动器/USB 或 EXT4 驱动程序以多种方式实现。由于我是在 fat32 分区创建的,所以我将在这里使用它!!如果您愿意,可以使用任何其他方式!!


首先,让我们为我们创建的 FAT32 分区创建一个挂载点(正如已经指出的那样,它是可选的)。打开终端并输入以下内容:

sudo su

mkdir /mnt/share 

接下来,让我们将正确的设备挂载到此目录。回想一下上面的分区步骤,FAT32 分区位于设备 /dev/sda6:

mount /dev/sda6 /mnt/share 

生成启动记录.bin 文件

将我们的 Ubuntu 分区的前 512 个字节写入一个文件,然后将该文件复制到我们的 FAT32 分区:

dd if=/dev/sda3 of=/mnt/share/ubuntu.bin bs=512 count=1

注意:上述步骤中使用 FAT32 分区是可选的。您可以选择使用其他设备(例如 USB 驱动器)来复制 *.bin 文件。

退出 Ubuntu 实时系统并重新启动 Windows。在此过程中,您可能会看到 Windows 执行磁盘检查(不用担心,这是正常现象,并且这些过程只会发生一次)。登录 Windows 并打开您创建的 FAT32 卷,您应该会看到 ubuntu.bin 文件。将该文件复制到 Windows 卷的根目录(例如 C:)。

配置 Windows 进行双启动

现在我们将使用 BCDEdit 向 Windows 的 BCD 存储添加条目。使用 BCDEdit 需要管理员权限,因此请使用 Win+r,键入 cmd,然后按

CTRL+SHIFT+ENTER

。让我们首先为我们的 Linux 发行版创建一个条目。请注意,如果需要,您可以自由选择其他条目名称:

bcdedit /create /d “Ubuntu” /application bootsector

BCDEdit 将返回此条目的字母数字标识符,我将在其余步骤中将其称为 {ID}。您需要用实际返回的标识符替换 {ID}。{ID} 的一个示例是 {d7294d4e-9837-11de-99ac-f3f3a79e3e93}。接下来,让我们指定哪个分区托管 linux.bin 文件的副本:

bcdedit /set {ID} device partition=c:

我们的 ubuntu.bin 文件的路径:

bcdedit /set {ID}  path \ubuntu.bin

启动时显示的菜单条目:

bcdedit /displayorder {ID} /addlast

最后,让我们指定菜单选项的显示时间:

bcdedit /timeout 30

就是这样!现在重新启动,您将看到一个菜单,您可以在其中选择启动 Windows 或 Ubuntu。当您选择 Ubuntu 时,您将进入它的引导加载程序菜单,您可以在其中选择继续启动 Ubuntu。

最后要说的是,如果您想消除 Ubuntu 菜单选项,只需使用以下命令删除您创建的 BCD 存储条目:

bcdedit /delete {ID}

相关内容