修复损坏的 Windows 7 引导加载程序

修复损坏的 Windows 7 引导加载程序

我有一台通过 GRUB 双启动 Windows 7 和 Ubuntu 的计算机。最近 Windows 无法启动,在尝试了各种方法修复后,现在当我在 GRUB 菜单中选择 Windows 7 时,我收到消息

error: no such device: 9A7AC1417AC11B41
error: hd2 cannot get C/H/S values
Press any key to continue...

当我按下一个键时,它会带我回到 GRUB 菜单。消息以与 GRUB 加载程序相同的样式(颜色和字体)显示。

我注意到 Windows 使用两个分区,一个分区称为RECOVERY(16 GB),另一个分区称为OS(517 GB),GRUB 加载程序指向这两个分区RECOVERY,但 Windows 位于该OS分区上。我可以在 Linux 中安装这两个分区,OS磁盘似乎有正确的文件。我使用了 Windows 7 恢复盘,自动修复功能不再发现任何错误。

我该如何修复此问题并让 Windows 重新启动?

fdisk -l输出

Disk /dev/mapper/isw_bdhfaghdfb_dell: 640.1 GB, 640141230080 bytes
255 heads, 63 sectors/track, 77826 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 131072 bytes / 262144 bytes
Disk identifier: 0x2dbec2f5

                          Device Boot      Start         End      Blocks   Id  System
/dev/mapper/isw_bdhfaghdfb_dell1               1           5       40131   de  Dell Utility
Partition 1 does not start on physical sector boundary.
/dev/mapper/isw_bdhfaghdfb_dell2   *           6        1918    15360000    7  HPFS/NTFS
Partition 2 does not start on physical sector boundary.
/dev/mapper/isw_bdhfaghdfb_dell3            1918       64772   504878877+   7  HPFS/NTFS
Partition 3 does not start on physical sector boundary.
/dev/mapper/isw_bdhfaghdfb_dell4           64772       77827   104858625    5  Extended
Partition 4 does not start on physical sector boundary.
/dev/mapper/isw_bdhfaghdfb_dell5           77578       77827     2000128   82  Linux swap / Solaris
/dev/mapper/isw_bdhfaghdfb_dell6           64772       67204    19531008   83  Linux
/dev/mapper/isw_bdhfaghdfb_dell7           67204       74498    58593536   83  Linux
/dev/mapper/isw_bdhfaghdfb_dell8           74498       77577    24731648   83  Linux

答案1

从 Windows 安装 DVD 或 Windows 恢复 CD 启动。打开恢复控制台并输入以下命令

bootrec /fixmbr
bootrec /fixboot

以该顺序。

答案2

你可能想尝试http://www.supergrubdisk.org/。您可以将 Rescutux 刻录到光盘并启动它。它有几种恢复 grub 的选项。如果这不起作用,我建议您刻录一份 Ubuntu Live 光盘或您喜欢的任何发行版,安装您的 Ubuntu 分区,然后重新安装 grub。您应该检查 /boot/grub/menu.list。这是您的分区定义的位置。确保 Windows 7 指向正确的分区。不过,重新安装 Grub 或使用 Rescutux 可能会自动为您解决此问题。以下是他们一般推荐的方法

1) Boot off the LiveCD
2) run the following commands

3) find /boot/grub/stage1
4) if that doesn't return any output...then
5) find /boot/grub/stage2
6) sudo grub

   > root (hd0,0) # this will vary depending on the output from find

   > setup (hd0) # this should match the value used in the previous command hdx. hd0 is this case

   > exit

检查线程这里了解更多信息。

这个帖子恰好在谈论 Windows 覆盖 MBR...但仍然提供了一个非常通用的解决方案。Grub 通常会返回错误代码。如果你能得到这个,那也会很有帮助。我经历过一些这样的情况22 15, 和17

结合使用我提供的 5 个链接应该会很好。它们几乎都推荐我在步骤 1-6 中阐述的相同解决方案。Grub 错误 17 的链接可能是最直接易懂的。至少您有选择。

答案3

如果您想使用 Windows 启动管理器,以下是我恢复 Windows 7 的方法:

  1. 将 Windows Vista 或 Windows 7 介质放入 DVD 驱动器,然后启动计算机。
  2. 出现提示时按下任意键。
  3. 选择语言、时间、货币、键盘或输入法,然后单击下一步。
  4. 单击“修复您的计算机”。
  5. 选择要修复的操作系统,然后单击“下一步”。
  6. 在系统恢复选项对话框中,单击命令提示符。
  7. 键入 Bootrec.exe /fixmbr,然后按 Enter。
  8. 键入 Bootrec.exe /fixboot,然后按 Enter。

相关内容