如何在双启动系统上修复 GRUB 和 Windows 启动管理器

最后更新: 五月25,2026
作者: 艾萨克
  • 正确识别分区和磁盘后,就可以从 LiveUSB 重新安装 GRUB,而无需重新安装系统。
  • Boot-Repair、Syslinux 或 LILO 等工具提供了恢复 MBR 和启动管理器的替代方法。
  • BCDBoot 和 bootrec 允许您在多 Windows 环境中修复 Windows 启动管理器和 BCD 存储。
  • 将 Linux 和 Windows 实用程序结合起来,可以更安全地恢复任何损坏的双启动系统。

修复双启动中的引导加载程序

配置计算机时 Windows 和 Linux 发行版双启动 在Ubuntu、Arch、Debian等操作系统中,启动管理器成为关键组件。它决定启动哪个系统以及如何启动。问题在于,简单的Windows更新、分区更改或重新安装都可能导致这种情况发生。 GRUB 或 Windows 启动管理器损坏 球队的开局也变得不正常了。

在这些情况下,通常会遇到以下症状: 启动错误屏幕,GRUB 救援模式出现你想只启动 Windows 系统,忽略 Linux 系统,或者反过来,让 Windows 系统从启动菜单中消失。好消息是,只要使用合适的工具,这是可以实现的。 几乎在任何情况下都可以修复引导加载程序(GRUB 或 Windows 启动管理器)无论是在 Windows/Linux 双启动系统中,还是在具有多个 Windows 版本的配置中。

双启动系统中通常是什么原因导致 GRUB 或 Windows 启动管理器出现故障

在尝试任何维修之前,最好先了解起动机故障的原因。这将有助于你更清楚地了解问题所在。 每个案例应该使用哪种工具 这样你就能避免反复出现同样的问题。

最常见的原因之一是: Windows 会覆盖 MBR 或 EFI 分区 如果是在 Linux 之后安装的 Windows 系统,或者是在系统重大升级之后安装的 Windows 系统,它会假定自己是计算机上唯一的操作系统,并重写引导扇区,因此 GRUB 消失,只启动 Windows 系统。.

另一个非常典型的场景是当 分区大小调整或移动 使用分区工具时,如果触及 GRUB 安装所在的分区或修改分区表,很容易导致引导管理器出现故障。 失去对 Linux 系统根目录或内核本身的引用 结果会显示“启动系统错误”之类的消息,或者不显示操作系统选择菜单。

经理也可能在一段时间后变得腐败。 系统更新虽然这种情况并不常见,但内核更新、新的 GRUB 软件包或对以下内容的更改都可能导致这种情况: 固件 UEFI 保持启动菜单未配置状态,则会直接出现救援控制台(著名的提示符)。 幼虫救援>).

在存在多个 Windows 版本共存的计算机上(例如, Windows 10和Windows 11 (在不同的磁盘或不同的分区上),有时问题不在于 GRUB,而在于系统本身。 Windows BCD 存储如果配置错误,可能会导致其中一个系统不会出现在 Windows 启动管理器启动菜单中。

使用 Linux Live 介质启动以修复 GRUB

当启动管理器出现故障且系统无法正常加载时,最灵活的应对措施是使用 来自 Linux 发行版的 LiveCD 或 LiveUSB (Ubuntu 通常是最方便的选择)“进入”已安装的系统,然后从那里重新安装 GRUB。

第一步是创建启动盘。您需要下载一个 GRUB2 发行版的 ISO 镜像 与受损系统架构相匹配的操作系统(例如 Ubuntu、Debian、Linux Mint 等): 如果您的系统是 64 位,则选择 amd64;如果您的系统是 32 位,则选择 i386。这个巧合很重要,因为它以后会被用到。 chroot 而且,如果架构不同,运行 GRUB 二进制文件时可能会出现错误。

拿到 ISO 文件后,把它刻录到光盘上。 可启动USB您可以使用 Rufus、balenaEtcher 或任何其他您用得顺手的工具。将 U 盘插入启动加载程序损坏的计算机,然后在 BIOS 或 UEFI 中, 您选择从 USB 驱动器启动.

第一步是创建启动盘。您需要下载一个 GRUB2 发行版的 ISO 镜像 与受损系统架构相匹配的操作系统(例如 Ubuntu、Debian、Linux Mint 等): 如果您的系统是 64 位,则选择 amd64;如果您的系统是 32 位,则选择 i386。这个巧合很重要,因为它以后会被用到。 chroot 而且,如果架构不同,运行 GRUB 二进制文件时可能会出现错误。

从 USB 启动时,发行版菜单会提供类似这样的选项。 “试试 Ubuntu” (或英文中的“Try…”)。此选项会将整个系统加载到内存中,而无需访问硬盘驱动器,之后您就可以从内存中…… 打开终端并运行必要的命令来恢复 GRUB。.

  如何阻止 Word 中的文本移动?

在 Live 桌面上,只需打开应用程序菜单并搜索即可。 “终奌站”从现在开始,整个过程都将通过命令行完成,但如果您仔细按照步骤操作,其实并不复杂。

确定根分区、/boot 分区和磁盘

要重新安装启动管理器,首先要知道的是: 你的Linux系统安装在哪些分区上? MBR 或 EFI 分区所在的磁盘名称是什么(例如, / dev / sda上的).

在实时系统终端中,您可以使用以下命令 fdisk -l 具有管理员权限: 命令fdisk-l的此命令将列出所有已连接的驱动器和分区,并显示文件系统类型、大小和标签(如有)。

在所有输出结果中,您必须找到包含该结果的分区。 Linux 系统的根目录你通常会看到类似这样的内容。 / dev / sda2 或者类似文件,大小合理,文件系统类型为 Linux 文件系统(ext4 或同等格式)。如果您之前创建过一个。 单独的 /boot 分区您还需要识别它;它通常是一个较小的分区,其中包含诸如以下文件: grub、vmlinuz、initrd、系统映射等等。

如果您有疑问,一个简单的策略是 手动挂载可疑分区 并查看其内容。例如,您可以使用 须藤挂载/dev/sda2 /mnt 然后列出内容 ls /mnt如果您看到类似这样的目录 bin、boot、root 等您将看到的是根分区。如果您挂载另一个分区并在其中找到一个文件夹,您就会看到它。 蛴螬 您将查看分区以及其他启动文件。 /启动.

在出口顶部 FDISK 主专辑的名称也会显示出来,例如“磁盘 /dev/sda这个标识符至关重要,因为它是重新在 MBR 中安装 GRUB 时的最终目标,或者因为它可以指向在 UEFI 系统中充当 EFI 的分区。

挂载分区并使用 chroot 重新安装 GRUB

确定了你感兴趣的分区之后,你需要…… 将它们安装在 Live 系统中 能够像从安装程序启动一样“进入”您的安装环境,而不是像从 USB 启动一样。

首先,你要组装…… /mnt 中的根分区 使用类似如下的命令: 须藤挂载/dev/sda2 /mnt (将 /dev/sda2 调整为与您的情况对应的分区)。如果您有一个分区 /启动 您可以独立地将其安装到该根目录下的树中,例如使用 须藤挂载 /dev/sda7 /mnt/boot.

然后您需要使用以下选项挂载一些特殊目录 –绑定 这样,chroot 环境就能访问计算机的设备、进程和文件系统。通常使用如下命令来完成此操作: sudo mount –bind /dev /mnt/dev, sudo mount –bind /dev/pts /mnt/dev/pts, sudo mount –bind /proc /mnt/proc y sudo mount –bind /sys /mnt/sys.

完成所有设置后,您现在可以使用了 chroot 要将文件系统的根目录更改为已安装的 Linux 系统的根目录,通常使用的命令是: 须藤chroot /mnt从那一刻起,你执行的所有命令都会产生影响。 您实际安装在磁盘上的系统不是从 USB 运行的 Live 环境。

下一步骤是 重新安装 GRUB 在正确的磁盘上。在 BIOS/MBR 系统中,通常使用类似这样的命令: grub-install --boot-directory=/boot/ --recheck /dev/sda (将 /dev/sda 替换为 MBR 所在的磁盘)。此命令会将 GRUB 引导加载程序写入磁盘的引导扇区,并确保配置指向正确的文件。

管理器重新安装后,建议…… 重新生成 GRUB 配置 这样它就能检测到所有可用的操作系统。这是通过以下方式实现的: grub-mkconfig -o /boot/grub/grub.cfgGRUB 将扫描分区以查找 Linux 内核、Windows 安装和其他系统,并生成启动菜单。

完成后,你只需要…… 退出 chroot 环境 用命令 出口 然后重新启动计算机 sudo重启移除启动盘后,系统应该会再次显示。 功能齐全的 GRUB 菜单允许您同时启动 Linux 和 Windows 系统。

使用 Boot-Repair 自动恢复 GRUB

对于那些不想费力处理那么多手动命令的人来说,有一个非常实用的工具叫做 引导修复,专为 修复Ubuntu及其衍生版本中常见的启动问题.

Boot-Repair 是一个可以安装在 Ubuntu 环境(操作系统本身或 Live 环境)中的实用程序。它的主要功能是: 自动重新安装 GRUB 并恢复对所有已安装系统的访问:无论是由于 Windows 覆盖了 MBR,还是由于更新停止显示 GRUB 菜单,又或是因为您修改了分区导致配置损坏。

  什么是 Webminal:用于边做边学的在线 Linux 终端

除了标准维修功能外,该工具还具有以下特点 奥瓦乔达斯 备份分区表、备份引导扇区、生成详细报告(引导信息)以及根据需要调整修复参数。

要在 Ubuntu Live 环境中使用它,首先需要…… 添加 Boot-Repair PPA 仓库 使用类似这样的命令: sudo add-apt-repository ppa:yannubuntu /引导修复然后对这些软件包进行更新 sudo apt update 最后,应用程序安装完成。 sudo apt install boot-repair如果系统提示,请确认下载和安装。

安装完成后,可以通过在 Ubuntu 应用程序搜索引擎中输入以下命令来启动该实用程序。 “靴子修理”启动时,该工具通常会显示一个选项。 “推荐维修”对于大多数用户来说,这是最方便的,因为它能解决以下问题: 重新安装 GRUB,更新其配置,并修复大多数常见错误,而无需手动配置任何内容。.

在高级选项中有一个复选框,用于 “恢复MBR”此选项允许您将磁盘当前的启动方式替换为通用或特定的 MBR,这在某些情况下非常有用。选择相应的选项并单击后, “应用”启动修复程序会启动修复过程并显示进度直至完成。完成后,它通常会指示所做的更改,并在重启后显示相关信息。 双系统启动应该可以恢复正常了。.

其他底层工具:Syslinux、MBR 和 LILO

在一些高级案例中,尤其是在与……合作时 特定配置、旧硬件或特定文件系统使用 Syslinux 或 LILO 等工具可以更直接地操作 MBR 和启动过程,这可能很有用。

系统Linux 这是一套轻便的入门级充电器,适用于不同的场景:经典款 系统操作系统 对于 MS-DOS FAT 文件系统, PXELinux 用于网络启动, ISOLinux 用于可启动光盘,以及 外挂 适用于 ext2/3/4 或 btrfs 文件系统。它还包括 内存盘这使得从非传统介质启动 DOS 等旧操作系统成为可能。

在像 Ubuntu 这样的发行版上,它可以通过以下命令安装: sudo apt install syslinux安装完成后,即可进行以下操作: 恢复MBR 例如,在磁盘开头写入相应的代码。 sudo dd if=/usr/lib/syslinux/mbr.bin of=/dev/sda或者,也可以使用其他软件包和工具,例如: sudo apt-get install mbr 接下来 sudo install-mbr -in -p D -t 0 /dev/sda这也有助于恢复MBR的功能。

另一种经典选择是 LILO(Linux Loader)尽管 GRUB2 现在是大多数发行版的默认引导加载程序,但 LILO 仍然是…… 针对特定类型的硬件或特定配置,这是一种简单而稳健的解决方案。 GRUB 在某些方面问题较多。例如,在 Ubuntu 系统中,它可以通过以下方式安装: sudo apt-get install lilo安装过程中,屏幕上会出现一条消息,您必须接受才能继续。

安装 LILO 后,即可用于 写入新的MBR 使用以下类型的命令 sudo lilo -M /dev/sda mbr这会将 MBR 代码替换为 LILO 代码,这有助于在启动管理器损坏或与硬件不兼容的计算机上恢复正常工作的启动。

在 Arch Linux 中出现救援模式时修复 GRUB

在像 Arch Linux 遇到这种模式比较常见。 抢救 Windows 更新系统、更改启动配置或修改分区后,计算机启动,但不会显示 GRUB 菜单,而是出现一个极简提示符,其中只能执行几个命令。

你可以尝试用这种方法。 手动启动 Arch Linux 向管理器指示内核及其配置的位置。一个典型的例子是使用类似这样的命令设置 GRUB 根目录和前缀。 设置根目录=(hd0,gpt8) y 设置前缀=(hd0,gpt8)/boot/grub加载普通模块 普通insmod 最后,执行 正常 这样它就指向了常用菜单。

这可以让你暂时摆脱困境,但并不能解决根本问题。正确的方法是,在 Arch 启动后运行…… grub安装 指向正确的磁盘(例如, sudo grub-install /dev/sda),然后 grub-mkconfig然而,有时此命令会失败,并显示如下消息: “无法在主机磁盘中识别文件系统” 或者说它无法对磁盘执行安全检查。

当这种情况发生时,最明智的做法是 从兼容的 Live 介质启动 (例如 Arch 安装程序本身或来自其他发行版的 Live),挂载分区并按照前面所述使用 chroot。这样可以确保 设备可用,分区表检测正确,GRUB 可以顺利重新安装。务必确认您正在安装 GRUB。 整个磁盘设备 (例如 /dev/sda)而不是特定分区(/dev/sda6),除非你有非常具体的理由这样做。

  ZIP 文档是什么意思?

在双启动系统上恢复 Windows 启动管理器和 BCD

在它们共存的环境中 两个版本的Windows (例如,Windows 10 和 Windows 11)或者在与 Linux 双启动的系统中只有 Windows 启动出现问题时,也可能需要这样做。 修复 Windows 启动管理器及其 BCD 存储.

Windows 包含一个名为“Windows”的实用程序 BCDBoot 这是有用的 创建或修复基于 Windows 系统的启动项当您在另一个分区或磁盘上安装了第二个 Windows 系统,并且在启动时它不会出现在菜单中时,或者当启动菜单被删除并且它只能进入一个系统时,这将非常有用。

一般步骤包括启动电脑 Windows 安装介质 (或恢复驱动器)并访问修复选项。在安装屏幕上,不要继续执行通常的安装过程,而是单击 “修理设备”从那里进入 “解决问题” 然后在 “高级选项”您可以在此处选择 “系统的符号” 或直接 “启动修复”根据需要。

如果您选择自动维修,则该选项 “启动修复” 它会自动尝试纠正 启动管理器和 BCD 配置中的错误在许多情况下,这是一种无需手动输入命令即可快速恢复 Windows 启动管理器的方法。

如果需要更多控制,您可以使用控制台。 重新编译 BCD 存储典型的操作流程是,首先使用类似工具复制当前商店。 ren BCD BCD.old (导航到正确的文件夹后),然后运行 bcdboot D:\Windows (将 D:\Windows 替换为您要添加的 Windows 安装的实际路径)。如果您不知道每个分区对应的字母,可以使用以下方法: DISKPART 进而 清单量 查看分配的字母。

也可以使用更完整的语法来指定语言和启动卷,例如: bcdboot c:\Windows /l en-us /s X: /f ALL,代替 X: 通过启动分区(或要创建引导加载程序的闪存驱动器)的盘符。这将使用所选 Windows 版本的全新条目重写 BCD,以便在重新启动时…… 两个系统都应该出现在菜单中。 如果其余配置正确的话。

使用 bootrec 修复 Windows MBR

在问题直接出在……的情况下 MBR(主引导记录) 您也可以从用作 Windows 启动盘的磁盘中使用该工具。 BOOTREC可在 Windows 恢复环境中使用。

这个过程通常从以下方面开始: Windows 安装介质例如,在许多戴尔电脑上,您可以按下 主屏幕上的 F12 键 打开启动菜单并选择安装 U 盘或 DVD。进入后,像之前一样,按下“开”按钮。 “修理设备”进入 “解决问题”然后在 “高级选项” 最后选定它。 “系统的符号”.

通过控制台,您可以执行一系列命令 bootrec 命令 修复MBR和BCD存储器的顺序如下:首先 BOOTREC / FIXMBR它会将一个干净的、与 Windows 兼容的 MBR 写入磁盘;然后 BOOTREC / FIXBOOT这会将一个新的引导扇区创建在系统分区中;最后 BOOTREC / REBUILDBCD它会分析现有的 Windows 安装,并提供将其添加到启动存储区的选项。

如果这些命令运行无误,则移除安装介质重启计算机,以检查是否成功。 Windows 系统启动正常,并且(如果适用)是否仍然可以通过 GRUB 或启动管理器访问与 Linux 的双启动。取决于系统的配置方式。

了解所有这些工具和步骤(Linux LiveUSB、chroot 和 GRUB 重装、使用 Boot-Repair、Syslinux、LILO、BCDBoot 和 bootrec)会让事情变得容易得多。 诊断双启动系统中哪个启动组件出现故障,并应用相应的解决方案。 无论哪种情况,都无需重新安装整个系统,只需几个步骤即可在 Windows 和您喜爱的 Linux 发行版之间恢复稳定的双启动。

Windows 启动管理器教程
相关文章:
Windows 启动管理器和启动顺序完整教程