休眠失败;系统找不到指定的文件

休眠失败;系统找不到指定的文件

最近,我在 Lenovo Y480 上安装了 Ubuntu 12.04.1 LTS。安装 Ubuntu 后,休眠功能正常运行,但我要确保系统上的所有操作系统都能正常工作,包括 OneKey Recovery(恢复分区)。值得注意的是,我使用从我大学的 DreamSpark 程序下载的磁盘映像从头开始安装了 Windows 7,此外,我还必须使用 Paragon Backup & Recovery 对分区进行映像,重新分区以将 Windows 分区转换为扩展分区,安装 Ubuntu,然后恢复映像。在此过程中,我还使用 Windows 光盘编辑 BCD,以便重新使用已恢复分区的现有条目。我还使用了自动“修复计算机”选项。

经过验证,我发现“修复计算机”选项实际上写入了错误的 BCD(恢复分区),于是我挂载了该分区并恢复了原始 BCD(来自我之前制作的副本),然后重新启动。此时我的 GRUB 坏了,我能够恢复它。此时休眠模式中断。

我试过powercfg /h offpowercfg /h on重启,但没有任何效果。还尝试增加休眠文件大小,如这个帖子,但仍然不起作用。执行shutdown /h产生The system cannot find the file specified.(2)。什么文件?

似乎挂载系统分区有时有效,但我不想保持挂载状态,以防意外写入。如何永久修复此问题?

答案1

简短回答:如果您使用磁盘管理向系统分区添加和删除了驱动器号,Windows 将不会在下次重新启动时重新安装该分区。系统分区是必需的,因为它包含 BCD,并且需要写入 BCD 才能使系统成功从休眠状态恢复。如果未安装该分区,则无法写入 BCD,并且休眠将失败。

如何修复:

  1. 打开regedit并导航至HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
  2. 查找具有 模式的名称#{guid},然后将其全部删除。您专门卸载的设备将在重启时再次显示。
  3. 关闭regedit,然后打开升级的命令提示符。
  4. 执行mountvol /E以允许自动挂载(这样系统分区将自动挂载但不分配字母)。
  5. 重新启动并测试。

如果仍然不起作用,请将系统分区设置为活动(启动)。当然,请确保已启用休眠模式,并且已关闭混合睡眠。

较长的答案(过程):事实证明,安装和卸载系统分区是罪魁祸首。Windows 会将卷“列入黑名单”,这样它就不会在启动时重新安装。当我想到只有安装了系统分区,休眠才会起作用时,我意识到了这一点。在得出这个结论之前,我在同一个驱动器上安装了另一个 Windows 7 副本,认为这与 Windows 是逻辑卷有关。为了保险起见,我检查了一下,bcdedit它能够提取 BCD 配置。启动回我的原始安装,但找不到文件。(嗯……这里找不到文件,休眠期间找不到文件……)检查mountvol发现了问题:它告诉我*** NOT MOUNTED UNTIL A VOLUME MOUNT POINT IS CREATED ***。啊哈!我卸载了系统分区,这样它就不会在重新启动时显示出来,而且由于 Windows 希望保持原样,它在某处添加了一个条目以明确禁止安装。因此bcdedit找不到 BCD。需要 BCD 是有道理的,因为添加了一个特殊条目,系统才能恢复。因此,文件未找到错误指向 BCD 存储。

答案2

就我而言,解决方案是磁盘顺序。我遵循了每一条建议(包括 GMMan 的上述回答)。Windows 分区被标记为活动。确保每个设备都可以进入睡眠状态。我很彻底。尝试关闭 /h 时仍然不断收到“系统找不到指定的文件”错误。

该问题完全是由于 Windows 分区所在的磁盘是磁盘 1(从零开始数,所以是第 2 个磁盘)。

我有一个 Linux Windows 双启动环境,每个操作系统都有自己的硬盘。带有 Grub 的 Linux 硬盘在 BIOS 中列在第一位。Windows 硬盘列在第二位。所以我只是切换了它们的物理电缆并告诉它们启动到 Linux 硬盘,这样我仍然可以得到 grub。

当我尝试休眠时,Windows 不再抱怨“系统找不到指定的文件”。混合睡眠有效。经过这一小小改变后,一切都正常了。

长话短说。我认为您想要休眠的 Windows 分区必须在分区管理器中列为磁盘 0。

相关内容