如何从 Windows 修复 Windows 10 引导加载程序

如何从 Windows 修复 Windows 10 引导加载程序

我在安装了 Windows 10 的系统上安装了 Ubuntu。我可以使用 GRUB 正常启动 Windows 或 Ubuntu。我想删除 Ubuntu 分区,但首先必须恢复 Windows 10 MBR。

使用 Windows RE 中的 Bootrec.exe 解决启动问题(适用于 Windows 7 和 Windows Vista)他们说使用带有选项的 Bootrec.exe /FixMbr /FixBoot,但是当我在命令提示符中输入“bootrec.exe /FixMbr”时,Windows 说:

‘bootrec.exe’ 不被识别为内部或外部命令。

我说我可以启动到 Windows 10 并从那里运行命令提示符(我不需要使用安装介质),但我不知道要输入什么。

答案1

Windows 8/8.1/10 中修复 MBR 的命令是“bootsect.exe”。

bootsect /nt60 drive_letter: /mbr

这修复了映射到“drive_letter:”的分区的引导记录以及放置分区的磁盘的 MBR。

C:\Windows\system32>bootsect

bootsect {/help|/nt60|/nt52} {SYS|ALL|<DriveLetter>:} [/force] [/mbr]

Boot sector restoration tool

Bootsect.exe updates the master boot code for hard disk partitions in order to
switch between BOOTMGR and NTLDR.  You can use this tool to restore the boot
sector on your computer.

Run "bootsect /help" for detailed usage instructions.

或者您可以使用“双启动修复工具“它具有 bcdboot.exe、bootsect.exe 的图形界面和其他有用的功能,如引导扇区视图和...一键式双启动修复功能,适用于 Windows 10/8/7/Vista(也可以修复 Windows XP 启动文件)。

答案2

这里给出的其他答案在 MBR/BIOS 系统上效果很好,但是如果你像我一样在 UEFI 系统上,bootsect只需在GPT 保护 MBRbootrec只给出“访问被拒绝”的错误信息,而且都没有一个功能选项来修复损坏的EFI 系统分区,在 UEFI/GPT 驱动器上,它包含以前存储在 MBR 中的引导加载程序。遗憾的是,几乎没有关于修复 UEFI Windows 启动管理器的最新指南(几乎所有指南都只是说运行图形启动修复实用程序,但这并不能在所有情况下解决问题),但我终于在本文,这需要使用bcdboot命令改为:

  1. 抓住媒体创作工具,制作一个 Windows 10 安装 DVD 或 USB 驱动器,然后启动它。

  2. 出现提示时,选择“修复计算机”,然后选择“疑难解答”、“高级选项”,最后选择“命令提示符”。

  3. 运行diskpart,然后list disk。记下包含 EFI 系统分区 (ESP) 的磁盘的磁盘编号。

  4. 使用select disk x(其中x是上一步中的磁盘编号) 选择该磁盘。

  5. 运行list volume。记下 EFI 系统分区 (ESP) 的卷号。

  6. 现在执行select volume x(其中xESP 的卷号为)然后assign letter=N:挂载分区。list volume再次运行,注意 ESP 现在已分配驱动器号。运行exit退出diskpart

  7. (可选)如果您当前没有双启动,并且想要在写入新的引导加载程序之前完全清理 ESP,请运行format N: /FS:FAT32以将其重新格式化为 FAT32。然而,在正常情况下这可能没有必要,因为bcdboot似乎可以很好地自行清理。特别是如果您在另一个分区上有 Linux 发行版,请不要这样做否则,完成此操作后您还必须重新安装 GRUB。另请注意,只要您不删除 ESP 上现有的 GRUB 目录,以下步骤就不会影响 EFI GRUB 安装。

  8. 最后,使用 将新的引导加载程序写入分区bcdboot C:\windows /s N: /f UEFI。此命令使用安装在 C:\windows 上的 Windows 安装在安装在 N: 上的 ESP 上重建一个新的 UEFI 兼容引导加载程序。完成后,您可以通过运行 来验证新引导加载程序是否已写入dir N:\EFI,您应该会看到一个Microsoft包含新 Windows 启动管理器的目录以及一个boot包含后备引导加载程序的目录(以及您安装的任何其他引导加载程序的其他目录,例如 Linux 的 GRUB)。

  9. (可选)如果您是双启动,您可能需要启动到您的 Linux 发行版并运行sudo update-grub以允许 GRUB 脚本检测并添加新的 Windows 引导加载程序。

  10. 现在启动 BIOS 设置,并确保“Windows 启动管理器”(或 GRUB,如果您是双启动)设置为最佳启动选项。保存并重新启动,您最终将返回 Windows(或 GRUB)。

答案3

我遇到了以下问题:

我有 Ubuntu 和 Windows 10,并使用 Windows 10 删除了 Ubuntu 分区。重新启动后,我收到错误Partition not found并自动进入 GRUB。

以下是我解决问题的方法:

  1. 刻录了 Windows 10 CD,进入故障排除,然后从那里进入 Windows 控制台。
  2. 然后我输入:(bootsect /nt60 drive_letter: /mbr将驱动器号替换为您的字母。例如,对我来说它是C: /mbr)。
  3. 最后它终于成功了。

我希望这也能为遇到同样问题的人找到解决方案。

答案4

在一个非常相似的情况下(移动和扩大分区,因此 Windows 系统/C:分区已被移动 –GParted 明确警告), 我也遇到了无法启动带有 grub 的 Windows 的情况。

症状:在 grub 启动菜单中选择 Windows 10 后,直接出现 Windows 10 蓝色错误屏幕,其中包含一些神秘的错误代码,但显示的信息不多。它说我应该F8按故障排除或按 Enter 重试,但F8只显示相同的错误。

笔记: 其他解决方案尝试的问题在于,当您拥有一个可以正常工作的 grub 时,您可能不想破坏它。因此,例如不要覆盖 MBR(破坏 MBR 并需要重新安装 grub)或覆盖引导扇区。

此外,通过 Windows 10 启动故障排除工具自动修复不起作用。

解决方案:启动 Windows 10 安装介质(GParted 解释如何获取它Windows 10 的直接链接)并重建启动配置数据 (BCD) 存储使用cmd.exe安装介质中的 /命令行 Windows 10:

bootrec /rebuildbcd

我认为 GParted 链接的 Microsoft 文档太麻烦了,我建议参考Ventoy 提供的这些详细说明

这是唯一需要的命令。

PS:我安装的是 Windows 10 安装介质通过 ventoy在其旁边放置其他救援 ISO,效果很好。

来自一个类似的问题

相关内容