在每次引导时,休眠被禁用,hiberfil.sys 被重新创建

分享于 

9分钟阅读

电脑

 

问题:

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

我知道,我可以在提升的命令提示下输入 powercfg -h off 来禁用休眠和删除 hiberfil.sys。 这将使--在文件被立即移除之后,在这样做之后, HKEY_LOCAL_MACHINESYSTEMControlSet001ControlPowerHibernateEnabled 键的( 正确) 设置为 0.

然而,下次重启PC时,hiberfil.sys 从死锁返回,Hibernate被重新启动,并且注册表项已经返回 1.

我在这 this'。 几乎所有与删除 hiberfil.sys 文件相关联的东西都建议使用powercfg关闭休眠,这看起来正常。 但它一直为我 coming ! 我在找一个thread的帖子,但没有任何建议可以在原来的海报上工作。 但是,我已经尝试了其中列出的所有内容,包括:

  • 禁用混合睡眠

  • 通过命令提示。电源选项GUI和两个命令( 在两个命令中) 禁用 Hibernate

  • 手动更改 HKEY_LOCAL_MACHINESYSTEMControlSet001ControlPowerHibernateEnabled 密钥

  • 几乎所有我能想到的 !

我想重申一下,删除工作的--文件没有什么问题。 每次重启后它都会回来。 我准备就绪,只需在登录时运行一个脚本,即可以禁用 Hibernate,尽管这看起来像 crazily"解决方案"。 但我希望这里有人能提出别的建议。


回答 1:

我的Windows 7 x64安装位于Mac笔记本电脑上的SSD分区上。 在 ( 高架) 禁用了 powercfg/h 禁用hibernate和 ms,以及将注册表注册表项值设置为0. hiberfil.sys 仅在重新启动前被删除。 当我引导本机 hiberfil.sys 时,但是当我在 OS X 和 VMware Fusion内部引导时,休眠将停止,因为它应该。

Tom建议使用引导日志的ProcessMonitor建议我发现在本地引导期间,( 来自 VMware ) 正在启用注册注册表项。 试图更改regedit中的权限,但它们未将值更改为 1. 我想创建一个小 hiberfil.sys,,但我认为它会被覆盖。

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


回答 2:

你可以使用进程监视器轻松解决这个问题。

启动它并在选项 enable启动日志记录,重新启动计算机,启动进程监视器。

然后,让它停止捕获,然后搜索收费的,并检查更改了多少。

对于更高级的见解,还可以通过 Windows 性能工具包中的XBootMgr来实现。

安装指令/关闭性能分析文件


回答 3:

如果你使用的是 boot camp和 vmware fusion:

查找文件 %programfiles%VMwareVMware ToolspluginsvmsvcdisableGuestHibernate.dll 删除它或者移动它。

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

powercfg -h关闭

vmware工具加载时加载disableGuestHibernate插件。 如果 vmware tools在vm中运行时加载,它将禁用休眠( 由于vmware拥有自己的挂起系统使休眠变得多余。),但是如果 vmware tools在虚拟机外加载( 例如。 你使用引导库来引导到 Windows,它将在禁用时启用休眠。


回答 4:

你可以尝试再次打开和关闭休眠。 在"以管理员身份运行"中:


powercfg.exe/hibernate on


powercfg.exe/hibernate off


del c:hiberfil.sys



如果你使用的是笔记本电脑,然后在关闭hibernate之后,请执行以下操作,请执行以下操作:

  • 确保禁用混合睡眠。
  • 电源选项→更改计划设置→更改高级电源设置,展开睡眠并将"电池"和"插入"的值更改为 0分钟。
  • image


回答 5:

我也有同样的问题。 尝试:


powercfg –H OFF



Set HKEY_LOCAL_MACHINESYSTEMControlSet001ControlPowerHibernateEnabled



集合集 Control PanelAll Control Panel ItemsPower OptionsEdit Plan Settings 对于所有电源选项。

而且文件一直回到生活中。 使用过程监视器的建议给我带来了诀窍。 我使用的系统已经安装"PC pointsec",并且 prot_srv.exe 进程继续重置此值。 因为这台电脑被这个软件锁定了,所以我做不到。


回答 6:

这里一样 !

我甚至配置了本地策略,使它运行了运行powercfg线的机器启动,但也不够好。

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

在我的下一个实验中,我将使用下面的"hiberfilesizepercent"注册表项:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlPower

看看这能否强制( vt - ) 创建更小的文件。

f。


回答 7:

不是一个解决方案,而是一个为我工作的解决方法:

我的C 驱动器只有 900MB 个可用空间,希望去掉 hiberfil.sys 文件,该文件占用了超过 10 GB的内存。 所以我用 powercfg -h删除了。 但在大约 10秒之后它一直在恢复。 我认为它与PointSec有关,因为前面提到过。

然后我禁用休眠,然后快速将 1GB 个文件复制到C 驱动器。 现在它不回来了,我还剩下 6GB 个空间。 我想它仍然在尝试启用休眠,并发现不再有足够的空间。 下次在C 驱动器上用尽空间时,仍然可以删除 1GB 文件。


回答 8:

也许在删除后手动重新创建它并设置权限以禁止系统修改文件? 我知道这是个很长的镜头。

这可能是由还原分区或者类似的?


回答 9:

我有一个解决方案,似乎可以正常工作,我( 不过也许不是每个人)。 从我收集到的,在VMware启动时,vmtoolsd.exe 禁用休眠,然后在启动本机时启用。 由于在运行本机( Boot Camp ) 时不需要 VMware Tools,因此我制作了一个包含以下内容的批处理文件:


@echo off



if"%NUMBER_OF_PROCESSORS%" =="1" goto :enable


goto :end



:enable


net start"VMware Tools"



:end



我将 VMware Tools服务设置为手动( 而不是自动),并在任务计划程序中创建了一个任务。 任务按如下方式设置:

  • 用户是否已经登录或者不登录
  • 使用最高权限运行
  • 隐藏( 可能不需要)
  • 触发器:在系统启动时
  • 操作:上面的批处理文件
  • 取消选中条件/设置中的所有内容( 可能不需要)

注意:因为我依赖于本机引导的NUMBER_OF_PROCESSORS,所以这只能在你的Mac上没有给出相同数量的处理器( 逻辑,非物理)。

此外,批处理文件可以简化为:


@if"%NUMBER_OF_PROCESSORS%" =="1" net start"VMware Tools"



我在批处理文件中做了一些调试/测试,只是保持它。


回答 10:

就像oKtosiTe所说,我尝试了这种方法,因为我没有其他。 ProcessMonitor只是显示注册表中的条目是由 powercfg.exe 本身创建的。

我不能简单地禁用/重命名或者删除它。

可以能是由于我的笔记本电脑( 公司笔记本电脑-> 公司超愚蠢的安全策略) 上的组策略。

所以我运行命令,hiberfile.sys 消失几秒钟,复制名为 hiberfile.sys的文件来自其他地方,并更改它的权限,只读取。

魔术中 !

简而言之:

  • powercfg -h off 中运行
  • 复制已经准备好的hiberfile.sys
  • 属性-> 只读
  • 已完成!

    注意:在我的例子中,没有更改权限文件的会回到1.

    hiberfile.sys only 1KB now



SYS  BOO  引导  Hibernate  Recreate  
相关文章