Debian 与 Windows 7 组成双系统后,启动时出现引导故障是不少用户常遇到的状况,尤其在系统更新或调整分区后更容易触发。笔者在实际操作中也遇到了类似问题,经过多方查阅资料与朋友协助,最终成功修复。现将整个处理过程整理为笔记,既方便自己日后查阅,也希望能为面临同样困扰的朋友提供参考。
首先,在 Windows 7 系统中下载并安装 EasyBCD 2.2,然后利用该工具为 Linux 所在分区添加一条引导项。这样一来,重启后就能在启动菜单中看到 Linux 的入口。整体操作并不复杂,按照下面图示的步骤执行即可。



以上步骤完成后,重启电脑,正常情况下应当能看到引导菜单。然而,很多用户(包括笔者)会遇到一个问题:EasyBCD 自动生成的引导项并未正确指向 GRUB 真正的配置文件——即 grub.conf 或 grub.cfg(后缀取决于你使用的 Linux 发行版)。因此,仅靠 EasyBCD 的自动检测往往无法彻底修复。
此时就需要手动干预。首先尝试进入 Linux 系统:如果引导菜单能正常显示并进入 Linux,那就直接登录;如果连引导菜单都进不去,则需要在 GRUB 启动界面按下 e 键进入编辑模式。

出现上图界面后,按 e 键。这里有两个关键修改点:一是 GRUB 配置文件的路径必须确保指向正确的分区;二是 (hd0, x) 中的 x 代表 Linux 系统所在的分区编号。如果不确定是哪个分区,可以逐个尝试,该操作不会对系统造成严重损坏。编辑完成后按 b 引导启动,如果能顺利看到熟悉的 GRUB 菜单界面,就等于成功了一半。
成功进入 Linux 系统后,还需要进行最终修复——重写 MBR 引导记录。打开终端,依次执行以下命令:
sudo update-grub
sudo fdisk -l # 查看系统所在分区编号
找到分区编号后(假设为 /dev/sdaX),将其挂载到 /mnt 目录:
sudo mount /dev/sdaX /mnt
然后重新将 GRUB 安装到硬盘的 MBR 区域:
sudo grub-install --root-directory=/mnt /dev/sda
注意:这里的 /dev/sda 代表整个硬盘,不要带上分区编号。
执行完上述命令后,重启电脑。笔者在自己的机器上重启后直接进入了 GRUB Rescue 模式,原因暂时不明,猜测可能需要在重启前再执行一次 update-grub。如果你也遇到了 GRUB Rescue 提示,不必慌张,下面提供解决方法。
GRUB Rescue 恢复步骤
如果开机直接进入 grub rescue> 提示符,首先输入 ls 命令,查看系统识别到了哪些磁盘和分区,通常会显示类似 (hd0), (hd0, msdos1) 这样的信息。
接着,逐个测试这些分区,找到 GRUB 文件所在的正确位置。使用以下命令:
ls (hd0, msdosX)/boot/grub
如果某个分区能列出一大堆文件,说明找到了正确的分区。继续执行:
set root=(hd0, msdosX)
set prefix=(hd0, msdosX)/boot/grub
insmod /boot/grub/normal.mod
normal
这样便可重新进入正常的 GRUB 菜单。但进入系统后还需要进行最后的收尾操作:
sudo update-grub
sudo grub-install /dev/sda
再次重启,通常问题就能彻底解决。整个过程涉及的部分原理,笔者至今尚未完全理解,后续会继续深入研究。希望这份笔记能为有类似困扰的朋友提供切实的帮助。
