Hibernate está deshabilitado, hiberfil.sys se recrea en cada arranque


20

Tengo Windows 7 ejecutándose en una pequeña partición (40 GB), con 4 GB de RAM. Esto significa que el archivo hiberfil.sys creado por Hibernate ocupa una parte significativa del espacio en disco disponible. Me gustaría eliminarlo

Soy consciente de que puedo desactivar Hibernate y eliminar hiberfil.sys ingresando powercfg -h offen un símbolo del sistema elevado. Esto funciona: el archivo se elimina inmediatamente y, después de hacerlo, la HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Power\HibernateEnabledclave se establece (correctamente) en 0.

Sin embargo, la próxima vez que reinicie la PC, hiberfil.sys regresa de la muerte, Hibernate se vuelve a habilitar y esa clave de registro ha vuelto a 1.

Estoy bastante al borde de mi ingenio con esto. Casi todo lo que puedo encontrar en línea relacionado con la eliminación del archivo hiberfil.sys simplemente sugiere usar powercfg para desactivar la hibernación, y eso parece funcionar para casi todos. ¡Pero sigue volviendo por mí! (Como un vampiro, absorbiendo el espacio de mi disco). Encontré otro hilo de alguien que parece haber tenido el mismo problema, pero ninguna de las sugerencias allí funcionó para el póster original (o para mí). Aún así, he intentado todo lo que aparece allí, incluyendo:

  • Deshabilitar el sueño híbrido

  • Deshabilitar Hibernate a través del símbolo del sistema, a través de la GUI de Opciones de energía y a través de ambos (en ambos pedidos)

  • Cambiar manualmente la HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Power\HibernateEnabledllave

  • ¡Casi todo lo demás que se me ocurre!

Quiero reiterar que no tengo problemas para eliminar el archivo, eso funciona muy bien. Simplemente vuelve después de cada reinicio. Estoy a punto de tirar la toalla y simplemente ejecutar un script al iniciar sesión para deshabilitar Hibernate cada vez, a pesar de que parece una "solución" locamente hacky. . . pero esperaba que alguien aquí pudiera sugerir algo más, primero.


Debe tener un software de seguridad que supervise y proteja el registro.
Moab

1
Dado el tiempo que esta pregunta ha estado ahí, y dado que este podría ser un problema frecuente, he dado una recompensa por esta pregunta.
bwDraco

No tiene instalado un software de arranque personalizado que haga esto, ¿verdad?
Mehrdad

Respuestas:


18

Mi instalación de Windows 7x64 está en una partición SSD en una computadora portátil Mac. He deshabilitado con powercfg / h apagado (elevado) y ms fixit deshabilita la hibernación, así como la configuración de la clave de registro HibernateEnable valor a 0. Hiberfil.sys se elimina solo hasta que se reinicia. Cuando inicio hiberfil.sys nativo siempre se vuelve a crear, pero cuando inicio dentro de OS X y VMware Fusion, la hibernación permanece deshabilitada, como debería.

La sugerencia de Tom Wijsman de ProcessMonitor con inicio de sesión me ayudó a descubrir que vmtoolsd.exe (de VMware) estaba volviendo a habilitar la clave de registro durante el inicio nativo. Traté de cambiar los permisos en regedit, pero no detuvieron el cambio de valor a 1. Pensé en crear un pequeño hiberfil.sys, pero creo que se habría sobrescrito.

Como solución del 99%, cambié el valor de HiberFileSizePercent a decimal 1, lo que hace que hiberfil.sys solo tenga 80 MB en una máquina de 8 GB de RAM. Supongo que podría probar .001 o menos, pero 80 MB no es mucho.


1
Gracias. Estoy en una Macbook con Bootcamp y VMWare Fusion también, probablemente me ahorró horas.
DanB

13

Puede solucionar este problema fácilmente con Process Monitor .

Inícielo y habilite Boot Logging en el menú Opciones , reinicie su computadora e inicie Process Monitor.

Luego, deje de capturar y luego busque HibernateEnabledy verifique qué cambió el valor.


Para obtener información más avanzada, esto también se puede hacer con XBootMgr desde Windows Performance Toolkit.

Instrucciones de instalación - Documento de análisis de rendimiento de transición de encendido / apagado


2
Como su respuesta tiene el mayor potencial para resolver el problema, he decidido otorgarle la recompensa.
bwDraco

Este método resolvió mi problema. ¡Gracias! (Mi problema es acerca de la función Wake-on-LAN, detalles aquí: superuser.com/questions/1405082/... )
smwikipedia

6

Si está utilizando boot camp y vmware fusion:

Busque el archivo% programfiles% \ VMware \ VMware Tools \ plugins \ vmsvc \ disableGuestHibernate.dll bórrelo o muévalo.

Finalmente, deshabilite la hibernación de una vez por todas abriendo un administrador de comandos elevados y ejecutando:

powercfg -h apagado

El complemento disableGuestHibernate se carga cuando se cargan las herramientas de vmware. Si vmware tools se carga mientras se ejecuta en un vm, deshabilitará la hibernación (ya que vmware tiene su propio sistema de suspensión haciendo que la hibernación sea redundante). Pero si vmware tools se carga fuera de un vm (es decir, usa boot camp para arrancar en Windows) Vuelva a habilitar la hibernación si está deshabilitada.


Esta es una gran respuesta y bien detallada. ¡Si pudiera darle 10 votos a favor, lo haría!
Rijk

Por cierto: simplemente renombrarlo no funciona, realmente tienes que eliminar el dll.
Rijk

Esto también me lo arregló. ¡Votación a favor!
MortenRøgenes

4

Podrías intentar activar y desactivar la hibernación nuevamente. En cmd "Ejecutar como administrador" haz:

powercfg.exe /hibernate on
powercfg.exe /hibernate off
del c:\hiberfil.sys

Si está utilizando una computadora portátil, luego de encender la hibernación y antes de apagarla, haga lo siguiente:

  1. Asegúrese de que la suspensión híbrida esté desactivada.
  2. Opciones de energía → Cambiar la configuración del plan → Cambiar la configuración de energía avanzada, expandir la suspensión y cambiar el valor de "Con batería" y "Conectado" a 0 minutos.

imagen


2

Yo tuve el mismo problema. Intentó:

powercfg –H OFF

Set HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Power\HibernateEnabled

Establecido Control Panel\All Control Panel Items\Power Options\Edit Plan Settingsen Nunca para todas las opciones de energía.

Y el archivo seguía volviendo a la vida. El consejo de usar el monitor de proceso me sirvió. El sistema que uso tiene instalado "Pointsec para PC", y el proceso prot_srv.exe siguió restableciendo este valor. Dado que esta PC está bloqueada con este software, no hay mucho que pueda hacer.


1

¡lo mismo aqui!

Por frustración, incluso configuré la política local de modo que ejecutara un cmd en el inicio de la máquina que ejecutara la línea powercfg, ¡pero incluso eso no es lo suficientemente bueno!

Esto es realmente frustrante ya que estoy ejecutando Win7 Ultimate en una partición de 60 GB.

en mi próximo experimento jugaré con la clave de registro "HiberFileSizePercent" en:

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Power

y vea si eso podría obligarlo a (re) crear un archivo más pequeño al menos.

F.


+1: esta es probablemente una buena idea. Me he encontrado con esta misma solución mientras ayudaba a otro usuario con sus problemas de hibernación no relacionados.
SgtOJ

Nunca terminé resolviendo esto. Ejecuté un script de inicio de sesión durante un tiempo, pero fue escaso, y finalmente terminé comprando una unidad más grande y dejando el archivo hiberfil.sys en su lugar. Te deseo la mejor de las suertes, y seguiré este hilo. Si tiene éxito, por favor publique de nuevo!
Corey White

También puede eliminar hiberfil.sysdespués de deshabilitar la hibernación y luego crear un directorio llamado hiberfil.sys. No puede tener un archivo y un directorio en el mismo directorio con el mismo nombre, por lo que Windows no podrá crear un archivo llamado hiberfil.sys. Por supuesto, MS podría haberlo tenido en cuenta y podría crear otro archivo (hiberfi2.sys?) O podría quejarse en voz alta al respecto.
Bacon Bits

@BaconBits: biziclop dijo que esto no funciona; Windows reemplaza la carpeta con el hiberfil.sysarchivo.
bwDraco

1

No es una solución, sino una solución que funcionó para mí:

Solo tenía 900 MB de espacio libre en mi unidad C y quería deshacerme del archivo hiberfil.sys, que requería más de 6 GB. Entonces lo eliminé con powercfg -h. Pero seguía volviendo después de unos 10 segundos o algo así. Creo que tiene algo que ver con PointSec porque eso se mencionó anteriormente aquí.

Luego deshabilité la hibernación, y luego copié rápidamente un archivo de 1GB en la unidad C. Ahora no vuelve y todavía me quedan 6 GB de espacio. Supongo que todavía está tratando de habilitar la hibernación y descubre que ya no hay suficiente espacio para eso. Y la próxima vez que me quede sin espacio en la unidad C, aún puedo eliminar el archivo de 1GB.


0

¿Quizás volver a crearlo manualmente después de la eliminación y establecer permisos para no permitir que el sistema modifique el archivo? Lo sé, es una posibilidad remota.

¿Podría esto ser causado por una partición de restauración o similar?


0

Tengo una solución alternativa que parece funcionar bien para mí (aunque, tal vez, no todos). Por lo que he reunido, vmtoolsd.exe deshabilita la hibernación al arrancar en VMware y luego la vuelve a habilitar (independientemente del estado anterior) cuando se inicia de forma nativa. Como VMware Tools no es necesario cuando se ejecuta nativo (Boot Camp), hice un archivo por lotes que contiene lo siguiente:

@echo off

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

:enable
net start "VMware Tools"

:end

Configuré el servicio VMware Tools en Manual (en lugar de Automático) y creé una tarea en el Programador de tareas. La tarea se configura de la siguiente manera:

  • Ejecutar si el usuario ha iniciado sesión o no
  • Corre con los más altos privilegios
  • Oculto (puede no ser necesario)
  • Desencadenantes: al inicio del sistema
  • Acciones: el archivo por lotes anterior
  • Desmarque todo en Condiciones / Configuración (puede no ser necesario)

NOTA: dado que confío en los NUMBER_OF_PROCESSORS para diferir de cuando se inicia de forma nativa, esto solo funcionará si no tiene la máquina virtual con la misma cantidad de procesadores (lógicos, no físicos) en su Mac.

Además, el archivo por lotes se puede simplificar para:

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

Tenía algunas cosas en el archivo por lotes para depurar / probar y simplemente lo guardé.


ot, pero tener un control de igualdad y 2 gotos superpuestos como eso daña mis sentidos estéticos cuando podrías tener un no igual y 1 goto.
underscore_d

0

Como dijo oKtosiTe, probé este enfoque furtivo ya que nada más funcionó para mí. ProcessMonitor simplemente mostró que la entrada en el registro se crea por powercfg.exesí misma.

No puedo simplemente deshabilitar / renombrar o eliminarlo.

Probablemente debido a las Políticas de grupo que están en mi computadora portátil (computadora portátil de la compañía -> políticas de seguridad súper estúpidas de la compañía).

Así que ejecuté el comando, hiberfile.sysdesaparecí por un par de segundos, copié el archivo nombrado hiberfile.sysdesde otro lugar (creado en el editor y 1 KB de tamaño) y cambié sus permisos para solo lectura (propiedades del archivo).

Hizo la magia!

En resumen:

  1. Ejecutar en cmd powercfg -h off
  2. Copiar hiberfile.sys preparado
  3. Propiedades -> solo lectura

¡Hecho!

Nota: sin cambiar, el archivo de permiso volverá a crecer hasta unos 6 GB en mi caso.

hiberfile.sys solo 1 KB ahora


0

El crédito va a @Tom Wijsman.

Mi problema específico es sobre el Wake-On-LAN bloqueado por la hibernación, detalles aquí: ¿Cómo deshabilitar permanentemente la hibernación en Windows 10?

Seguí su método y obtuve el registro de arranque.

En mi caso, es el vmtoolsd.exeque mantuvo la configuración por debajo del valor del registro en 1, que superó por completo el powercfg /h off.

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Power\HibernateEnabled

El vmtoolsd.exepertenece a VMware Tools.

Después de desinstalarlo, hiberfil.sysnunca se volvió a crear.


-2

Media respuesta:

En Windows XP, esta fue una solución fácil y permanente:

  1. elimine hiberfil.sys con este comando (con derechos de administrador): powercfg -h off

  2. cree una carpeta llamada "hiberfil.sys" en C: \

Desafortunadamente, Win7 es "más inteligente" que XP, y mata esta carpeta, ignorando cualquier combinación de propiedad / permiso que probé. Pero a veces mi carpeta hiberfil.sys sobrevivió a un solo reinicio sin ser reemplazada. También es interesante que el sistema parecía regenerar el archivo original después de unos segundos, la ventana de C: \ apareció en el escritorio.

Y gracias por mi primer voto negativo :)


Puede que esa no sea una mala idea: puede configurar sus permisos para que ni siquiera el Sistema pueda eliminarlo (sin cambiar primero sus permisos). Por supuesto, win7 podría simplemente negarse a arrancar.
Hugh Allen

@Hugh: Es posible que el código de hibernación, como parte del núcleo, simplemente ignore las ACL.
Grawity
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.