我希望有人能帮忙——如果我不必完全重新安装我的机器,那将节省我几个小时。
以下是发生的事情的简要摘要
- 在浏览网页时,Windows 7(Ultimate 64)闪现 BSOD 0.5 秒,然后计算机立即重启。
- 检查 CD 驱动器中是否有可启动媒体后,BIOS 报告“发生磁盘读取错误”*(参见注释 1)
- “哦,糟糕,我的硬盘坏了”我心里想着,然后弹出 Windows 安装盘并重新启动。
- 计算机从 DVD 启动并选择语言后,我选择了修复 Windows 安装链接。
- 然后会显示一个对话框,其中列出了它可以检测到的 Windows 安装。该对话框为空。
- 在擦除并重新安装之前,我想检查一下从 Windows 命令提示符中可以访问什么。令我惊讶的是,我的系统分区和所有其他硬盘都是可以访问的。所以(幸运的是)这不是关键硬盘内部被烧坏的问题。但显然启动是一个问题!
- 然后我运行了 Boot 修复工具。它报告说它已经修复了 1 个问题(我思考它说它创建了一个主引导记录 - 但我必须承认我没有记下这条消息而且我可能记错了)。
- 我重新启动后,BIOS 中出现了同样的错误(“发生了磁盘读取错误”)
- 我再次从安装 CD 启动。现在我的 Windows 安装已被检测到并显示在对话框中。
- 我再次运行了 Boot 修复工具。它报告说没有任何问题!操作系统应该可以启动了。
- 我
chkdsk /F
从命令提示符运行。未发现或修复任何错误。 - 我运行
Bootrec /ScanOs
后它报告说检测到“0 个 Windows 安装” - 我不确定这是好事还是坏事!
所以现在我处于一个位置,一切出现根据修复工具,这是没问题的,但显然不是!
一位同事建议我运行Bootrec /FixMbr
,但根据文档,这只有在存在 MBR 损坏问题时才会有帮助 - 然后启动修复工具肯定不会告诉我一切正常!
我想我基本上想知道
- 有人知道可能发生/正在发生什么吗?
- 跑步
Bootrec /FixMbr
是否值得一试——即我跑步是否会使事情变得更糟/更复杂。
注1:几个月前我遇到了同样的错误(“发生磁盘读取错误”),但在两三次重启后它就消失了。
答案1
讯息
发生磁盘读取错误。 按 Ctrl+Alt+Del 重新启动。由 Windows NT 6.x 版本格式化的 NTFS 卷的卷引导记录发出。 这不是 MBR 问题,因为在产生错误时,MBR 引导代码已成功运行,并将VBR加载到内存中执行。
如果尝试将卷的 1 到 16 个扇区读入内存,或随后读取 MFT 和根目录以查找 MS Boot Manager 映像失败,则 NTFS 的 VBR 代码会生成此错误消息。失败的原因有很多,在使用 Windows NT 5.1 及更早版本格式化的卷上失败的原因比在使用 Windows 6.0 及更高版本格式化的卷上失败的原因更多。(Windows NT 6.0 中的 NTFS VBR 引导程序中删除了一些代码。)
在真正的硬件故障之后,最突出的原因是BIOS 参数块的“隐藏扇区”字段。这可能是由于损坏的格式化程序不知道需要正确设置此字段;或损坏的分区管理实用程序不知道在移动主分区时需要将此字段值与主分区的分区表保持同步。
还有一个可能性较小的原因(最有可能是硬件故障)是在不支持 Phoenix-Intel-Microsoft EDD 固件扩展至 INT 13h 的机器上使用 Windows NT 6.x。从 Windows NT 6.0 VBR 中删除的代码是用于处理机器固件不支持此类扩展的情况的代码。由于这些扩展比 Windows NT 6.1 的发布早了大约十二年,因此不太可能有人试图在没有这些扩展的旧机器上安装 Windows NT 6.1。但这种可能性很小,也是导致此错误消息的另一个可能原因,为了完整起见,应该提到这一点。
微软声明此错误消息也会出现当 NTFS系统音量使用 Microsoft Boot Manager 时,它被错误地格式化为 Windows NT 5.x NTFS VBR,而不是 Windows NT 6.x NTFS VBR,并提供了逐步说明,用于恢复正确版本的 NTFS VBR 并向{ntldr}
Microsoft Boot Manager 菜单添加一个选项,以执行旧版本 NTFS VBR 可以直接执行的操作。
答案2
感谢 JdeBP 提供的丰富答案。
不过,bootrec /FixBoot
已经帮我解决了这个问题。
(链接至 bootrec 文档由 Moab 提供)
我在创建系统映像时输入了这些内容。新驱动器到货后,我会将其恢复到新驱动器。