休眠被禁用,每次启动时都会重新创建 hiberfil.sys

Cor*_*ite 21 windows-7 disk-space hibernate

我在带有 4GB 内存的小 (40GB) 分区上运行 Windows 7。这意味着 Hibernate 创建的 hiberfil.sys 文件占用了可用磁盘空间的很大一部分。我想删除它。

我知道我可以通过输入powercfg -h off提升的命令提示符来禁用 Hibernate 并删除 hiberfil.sys 。这是有效的——文件被立即删除,这样做后,HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Power\HibernateEnabled密钥(正确)设置为 0。

但是,下次我重新启动 PC 时,hiberfil.sys 死而复生,重新启用 Hibernate,并且该注册表项已恢复为 1。

对此,我几乎不知所措。我可以在网上找到的几乎所有与删除 hiberfil.sys 文件相关的内容都只是建议使用 powercfg 关闭休眠,这似乎适用于几乎所有人。但它只是不断地回来找我!(就像吸血鬼一样,占用了我的磁盘空间。)我确实从似乎有同样问题的人那里找到了另一个线程,但是那里的建议都不适用于原始海报(或对我而言)。不过,我已经尝试了那里列出的所有内容,包括:

  • 禁用混合睡眠

  • 通过命令提示符、电源选项 GUI 以及两者(以两个顺序)禁用休眠

  • 手动更改HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Power\HibernateEnabled密钥

  • 几乎所有其他我能想到的!

我确实想重申,删除文件没有问题 - 效果很好。每次重新启动后它都会回来。我准备认输,每次登录时只运行一个脚本来禁用 Hibernate,即使这看起来像是一个疯狂的“解决方案”。. . 但我希望这里有人可以先提出其他建议。

小智 17

我的 Windows 7x64 安装在 Mac 笔记本电脑的 SSD 分区上。我已经禁用了powercfg /h off(提升)和 ms fixit 的禁用休眠,以及将注册表项 HibernateEnable 值设置为 0。Hiberfil.sys 仅在重新启动之前被删除。当我启动本机 hiberfil.sys 时总是会重新创建,但是当我在 OS X 和 VMware Fusion 中启动时,休眠保持禁用状态,这是应该的。

Tom Wijsman 对带有引导日志记录的 ProcessMonitor 的建议帮助我发现vmtoolsd.exe(来自 VMware)在本机引导期间重新启用了注册表项。我试图更改 regedit 中的权限,但他们并没有阻止将值更改为 1。我想创建一个小的 hiberfil.sys,但我认为它会被覆盖。

作为 99% 的解决方案,我将 HiberFileSizePercent 值更改为十进制 1,这使得 hiberfil.sys 在 8GB RAM 机器上只有 80MB。我想我可以尝试 0.001 或更少,但 80MB 并不多。


Tam*_*man 14

您可以使用Process Monitor轻松解决此问题。

启动它并在选项菜单中启用引导日志,重新启动计算机并启动进程监视器。

然后,让它停止捕获,然后搜索HibernateEnabled并检查更改了值的内容。


对于更高级的见解,这也可以通过 Windows Performance Toolkit 中的 XBootMgr 来完成。

安装说明-开/关转换性能分析文档

  • 由于您的答案最有可能解决问题,因此我决定将赏金奖励给您。 (3认同)

小智 6

如果您使用的是新兵训练营和 vmware 融合:

找到文件

%programfiles%\VMware\VMware Tools\plugins\vmsvc\disableGuestHibernate.dll
Run Code Online (Sandbox Code Playgroud)

并删除或移动它。

最后,通过打开管理员提升的命令提示符并运行,一劳永逸地禁用休眠:

powercfg -h off
Run Code Online (Sandbox Code Playgroud)

disableGuestHibernate 插件在 vmware 工具加载时加载。如果 vmware 工具在 vm 中运行时加载,它将禁用休眠(因为 vmware 有自己的挂起系统,使休眠变得多余。)如果禁用,则重新启用休眠。


小智 1

这里同样的事情!

出于沮丧,我什至配置了本地策略,使其在计算机启动时运行一个 cmd,该命令将运行 powercfg 行,但即使这样还不够好!

真的很令人沮丧,因为我在 60 GB 分区上运行 Win7 Ultimate。

在我的下一个实验中,我将尝试使用HiberFileSizePercent以下注册表项:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power
Run Code Online (Sandbox Code Playgroud)

看看这是否会迫使它至少(重新)创建一个较小的文件。