Windows 7 启动失败“未找到 autochk,跳过自动检查”

Windows 7 启动失败“未找到 autochk,跳过自动检查”

我删除了旧的 Windows XP 分区,并使用 gParted 将 Windows 7 分区移到左侧。第一次重启完全失败,并显示错误“未找到操作系统”。

然后我使用 Windows 7 修复光盘,进入命令提示符并使用不同的 bootrec 命令:

bootrec /fixboot

bootrec /fixmbr

bootrec /rebuildbcd

最后一个命令仍然在说

Total identified Windows installations: 0

幸运的是,通过这些命令我能够重新启动 Windows,但由于找不到 autochk 程序而失败。

autochk not found skipping autocheck

再次运行修复盘我得到以下修复详细信息:

Session details
---------------
System Disk = \Device\Harddisk0
Windows directory = C:\Windows
AutoChk Run = 0
Number of root causes = 1

Root cause found:
Unspecified changes to system configuration might have caused the problem.

Repair action: System files integrity check and repair
Result: Failed. Error code = 0x57

我现在怎样才能成功启动 Windows?

答案1

Windows 启动背后没有什么深奥的科学。Windows Vista 及更高版本在 MBR 磁盘上的启动顺序:

  1. MBR 代码
  2. PBR代码(活动分区的分区引导记录代码)
  3. 活动分区上的 bootmgr 使用 BCD(启动配置数据)

Vista 及更高版本的启动配置数据 (BCD) 存储在活动分区上的文件“\Boot\BCD”中。

当您移动对于启动 Vista(Win7、Win8)至关重要的分区时,存储在 BCD 中的数据与实际分区地址(磁盘 ID + 分区偏移量)不同步,因此启动失败。

要解决 BCD 问题,可以使用实用程序 bcdboot.exe:

bcdboot c:\windows

其中 c:\windows 是无法启动的操作系统 (Vista、Win7、Win8) 的根目录,如有必要,请更改驱动器号以反映系统上的驱动器映射。

要更正引导扇区代码,请使用以下命令 -

bootsect /nt60 全部 /mbr

可以使用。

上述命令在 WindowsPE 和 WindowsRE 中可用,并且通常不会失败。

一些系统关键文件也可能相对于分区地址加载,因此当您移动分区启动时无法找到 autochk.exe“\windows\system32\autochk.exe”。

映射分区的地址存储在 Windows 注册表中(例如 HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices\DosDevices\C:)

答案2

找到了“Yostage”的这篇文章。它肯定会有所帮助

我遇到了这个问题,fixboot/fixmbr/bootrec 命令都不起作用。下面是修复方法:

似乎C:由于某种原因映射错误。就我而言,我猜是因为我的迁移软件没有找到它。

启动恢复控制台并启动 regedit。

使用 load hive 来挂载你的c:\windows\system32\config\systemhive(我将其命名为‘离线’)。

现在,您要将HKLM\System\MountedDevices(恢复环境的设备列表)与HKLM\System\Offline\MountedDevices(失败的 Windows 安装的设备列表)进行比较。就我而言,我发现恢复环境可以正确查看C:,但离线配置单元的磁盘签名是错误的c:。(可能是因为我在迁移过程中删除了恢复分区。因此,我们需要输入正确的签名。

查看DosDevices\C:恢复注册表中的二进制条目。现在转到脱机注册表并修复您的,DosDevices\C:使其匹配。就我而言,我发现最简单的方法是将坏的重命名DosDevices\C:Z:,然后浏览\volume{guid}条目,直到找到与工作的匹配的条目C:,然后将其重命名为DosDevices\C:。在文件菜单中卸载配置单元,然后重新启动。完成此操作后,我就可以启动了。

其他互联网搜索暗示只需删除所有离线DosDevices条目就会强制它们正确重新创建,但这对我来说不起作用。

(感谢 Yostage:superuser.com/a/547260)

答案3

我在购买配备 SSD 的笔记本电脑后也遇到了类似的问题。我想释放一些宝贵的 SSD 驱动器空间来双启动 Linux,所以我已删除20 GB恢复分区(sda3)和 8 GB系统分区(sda0)位于驱动器的开头。

现在我得到:

autochk not found skipping autocheck

随后出现 BSoD。

由于我从许多笔记本电脑中删除了恢复分区并且从来没有出现问题,所以我很确定这个系统分区保存了一些关键文件。

使用带有实时 Linux 的可启动 USB 记忆棒,我将备份的 SYSTEM_DRV 分区放回到所有其他分区的前面,但是将其设置为 350 MB 而不是 8 GB,因为其余部分只是宝贵的空白空间。

您可能知道,删除和创建分区经常会弄乱分区表中的条目:

[1st partition] -> sda3  
[2nd partition] -> sda2  
[3nd partition] -> sda1  

所以我修复了记录磁盘管理

x // expert mode
f // fix count
w // write changes

这样做风险自负。我强烈建议备份大量数据!

现在一切又好了。将第一个标记为启动:

[1st partition] -> sda1 * boot
[2nd partition] -> sda2
[3nd partition] -> sda3

重启后,系统修复开始。自动重启,检查磁盘启动。自动重启,Windows 启动!

任务完成。

由于我假设联想的人并不是完全的弱智,我猜想从系统分区中删除空白空间会造成一些混乱,但我不确定会是什么。至少这不是你在日常使用中会注意到的事情。

另外,顺便提一下,这些年来,我注意到在几乎所有设备上安装和运行 Linux 变得越来越容易,而与此同时,在管理驱动器后让 Windows 继续运行变得越来越困难。这是为什么?你为此付费,所以它就必须令人讨厌吗?假装启动是火箭科学?

答案4

看来驱动器分区被意外隐藏了。使用分区工具将其重新激活:

相关内容