我知道这个问题之前已经被问过但是我已经尝试了所有常见的修复方法但都没有任何效果。
基本上,硬盘有两个分区,一个是 Vista,另一个是 Windows 7。我删除了 Vista 分区以腾出更多空间,并扩展了 Windows 7 分区以填充驱动器(使用 GParted)。
我试过了:
- 运行启动修复 - 没有发现任何问题。
- 将分区设置为活动状态-有效。
bootsect /nt60 c:
- 工作了。BootRec /FixMbr
- 工作了。BootRec /FixBoot
- 工作了。BootRec /ScanOs
- 我收到消息“已识别的 Windows 安装总数:0”BootRec /RebuildBcd
- 我收到消息“已识别的 Windows 安装总数:0”
BcdEdit
显示 Windows 启动管理器和 Windows 启动加载器,均位于 C: 分区上。
[更新]
- 重命名 BCD 并重新运行
BootRec /RebuildBcd
- 有效。 - 从 DVD 复制 bootmgr-被阻止,因为该文件已经存在。
[更新 2]
我找到了一篇文章这里其中提到了一些其他命令。
C:\chkdsk /f /r
- 工作了。sfc /scannow /offbootdir=c:\ /offwindir=c:\windows
- 工作过(见这里)。
我还可以尝试什么?
答案1
我通过以下方式修复了它:
- 将分区备份到外部驱动器(使用 GParted)。
- 删除分区。
- 在(现在为空的)驱动器上重新安装 Windows 7。
- 将分区的内容复制到全新安装的 Windows 上(使用系统救援 CD)。
Windows 现在可以正确启动,并且看起来与以前完全相同。
答案2
我猜测您将 Vista 作为磁盘分区 1 并将 Windows 7 作为分区 2,然后删除了 Vista,这意味着 Windows 7 现在位于分区 1 上。
不幸的是,Windows 通过分区编号来识别分区,因此 Windows 7 注册表中的所有分区引用现在都是不正确且无法使用的。
我相信你必须重新安装 Windows 7。一个简单的维修安装应该足够了,并且只会刷新 Windows 而不会干扰已安装的应用程序。
或者,对于隐秘的解决方案,你可以在磁盘上创建一些小的空白空间前Windows 7 分区并将其格式化为 NTFS,实际上重新创建了一个替代虚拟分区 1,它将 Windows 7 分区恢复到磁盘上的 2 号位置。您可能仍需要再次执行启动修复。
[编辑]
您可以通过从 DVD 启动到修复的命令提示符选项并输入以下内容来强制 Windows 重新创建 BCD 存储分区:
bcdedit /export C:\BCD_Backup
ren c:\boot\bcd bcd.old
bootrec /rebuildbcd
如果出现权限问题,请使用attrib bcd -s -h -r
重命名前的命令。重新启动,如果不起作用,则再次执行启动修复。
另一个绝望的解决方案是假设 bootmgr 已损坏并按上述方式启动并执行以下操作:
ren c:\bootmgr deletemelatter
bootrec /rebuildbcd
bootrec /fixboot
如果什么都不管用,就重新格式化整个磁盘并从头开始安装。不是每个问题都可以分析或有解决方案。
答案3
请确保 Windows 7 恢复分区设置为活动分区!!
我遇到了麻烦,因为活动分区被设置为 C:\
答案4
这只是对 Narkevich 言论的一个澄清评论(我只是想添加一条评论,但似乎被禁止这样做
您不需要 /sx: 选项的原因是,默认情况下,bcd 启动会更改当前活动卷上的 bcd。这几乎总是您想要的。如果指定 /s 和驱动器号,则 1. 驱动器号是活动卷,并且该命令将执行与没有 /sx: 相同的操作;或 2. 驱动器号与当前活动卷不同。在这种情况下,只有在活动磁盘上的 bcd 损坏时,启动时实际发生的情况才会受到影响,或 2. 稍后您将标记为活动的磁盘更改为以 /s 命名的磁盘。
干杯