![修复损坏的 Windows 7 引导加载程序](https://linux22.com/image/1304677/%E4%BF%AE%E5%A4%8D%E6%8D%9F%E5%9D%8F%E7%9A%84%20Windows%207%20%E5%BC%95%E5%AF%BC%E5%8A%A0%E8%BD%BD%E7%A8%8B%E5%BA%8F.png)
我有一台通过 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 的方法:
- 将 Windows Vista 或 Windows 7 介质放入 DVD 驱动器,然后启动计算机。
- 出现提示时按下任意键。
- 选择语言、时间、货币、键盘或输入法,然后单击下一步。
- 单击“修复您的计算机”。
- 选择要修复的操作系统,然后单击“下一步”。
- 在系统恢复选项对话框中,单击命令提示符。
- 键入 Bootrec.exe /fixmbr,然后按 Enter。
- 键入 Bootrec.exe /fixboot,然后按 Enter。