O Hibernate está desabilitado, o hiberfil.sys é recriado a cada inicialização

18

Tenho o Windows 7 em execução em uma partição pequena (40 GB), com ram de 4 GB. Isso significa que o arquivo hiberfil.sys criado pelo Hibernate ocupa uma parte significativa do espaço em disco disponível. Eu gostaria de removê-lo.

Estou ciente de que posso desabilitar o Hibernate e remover o hiberfil.sys digitando powercfg -h off em um prompt de comando elevado. Isso funciona - o arquivo é removido imediatamente e, após fazer isso, a tecla HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Power\HibernateEnabled é (corretamente) definida como 0.

No entanto, da próxima vez que eu reiniciar o PC, o hiberfil.sys retorna do estado morto, o Hibernate é reativado e essa chave de registro retornou para 1.

Estou bem no meu juízo final com isso. Quase tudo o que posso encontrar on-line relacionado à remoção do arquivo hiberfil.sys simplesmente sugere o uso do powercfg para desativar a hibernação, e isso parece funcionar para quase todos. Mas continua voltando para mim! (Como um vampiro, sugando o meu espaço em disco.) Eu encontrei um um outro tópico de alguém que parece ter tido o mesmo problema, mas nenhuma das sugestões funcionou para o pôster original (ou para mim). Ainda assim, tentei tudo listado lá, incluindo:

  • Desativando o sono híbrido

  • Desativando o Hibernate através do prompt de comando, através da GUI Power Options e por meio de ambos (em ambos os pedidos)

  • Alterando manualmente a chave HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Power\HibernateEnabled

  • Praticamente tudo o mais que consigo pensar!

Eu quero reiterar que não tenho problemas para remover o arquivo - isso funciona muito bem. Ele só volta depois de cada reinicialização. Estou pronto para jogar a toalha e apenas executar um script no login para desabilitar o Hibernate a cada vez, mesmo que isso pareça uma "solução" louca e hacky. . . mas eu estava esperando que alguém aqui pudesse sugerir outra coisa, primeiro.

    
por Corey White 14.05.2010 / 08:54

11 respostas

16

Minha instalação do Windows 7x64 está em uma partição SSD em um laptop Mac. Eu desabilitei com powercfg / h desativado (elevado) e o ms fixit desativou o hibernate, assim como definiu a chave do Registro HibernateEnable como 0. O Hiberfil.sys foi excluído somente até a reinicialização. Quando eu inicializo o hiberfil.sys nativo é sempre recriado, mas quando eu inicializo dentro do OS X e do VMware Fusion, a hibernação permanece desativada, como deveria.

A sugestão de Tom Wijsman do ProcessMonitor com o log de inicialização me ajudou a descobrir que o vmtoolsd.exe (do VMware) estava reativando a chave de registro durante a inicialização nativa. Eu tentei alterar as permissões no regedit, mas eles não pararam a mudança de valor para 1. Eu pensei em criar um pequeno hiberfil.sys, mas acho que teria sido substituído.

Como uma solução de 99%, alterei o valor de HiberFileSizePercent para decimal 1, o que torna o hiberfil.sys apenas 80MB em uma máquina de 8GB de RAM. Eu suponho que eu poderia tentar 0,001 ou menos, mas 80MB não é muito.

    
por 28.05.2011 / 23:12
10

Você pode solucionar esse problema facilmente com Process Monitor .

Inicie e ative Boot Logging no menu Opções , reinicie seu computador e inicie o Process Monitor.

Em seguida, deixe a captura e pesquise HibernateEnabled e verifique o que mudou o valor.

Para insights mais avançados, isso também pode ser feito com o XBootMgr no Windows Performance Toolkit.

Instruções de instalação - Documento de análise de desempenho de transição ativado / desativado

    
por 08.04.2011 / 23:59
6

Se você estiver usando o boot camp e a fusão de vmware:

Localize o arquivo% programfiles% \ VMware \ Ferramentas do VMware \ plugins \ vmsvc \ disableGuestHibernate.dll excluí-lo ou movê-lo.

Por fim, desative a hibernação de uma vez por todas abrindo um prompt de comando elevado do administrador e executando:

powercfg -h off

O plugin disableGuestHibernate é carregado quando as ferramentas VMware são carregadas. Se as ferramentas vmware carregarem durante a execução em um vm, ele desativará a hibernação (já que o vmware tem seu próprio sistema suspenso tornando a hibernação redundante.) Mas se as ferramentas vmware forem carregadas fora de um vm (ou seja, você usará o boot camp para inicializar) reative a hibernação se ela estiver desativada.

    
por 23.02.2013 / 21:22
3

Você pode tentar ativar e desativar o modo de hibernação novamente. Em cmd "Executar como administrador", faça:

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

Se você estiver usando um laptop, depois de ativar o modo de hibernação e antes de desativá-lo, faça também o seguinte:

  1. Verifique se o sono híbrido está desativado.
  2. Opções de energia → Alterar configurações do plano → Alterar configurações avançadas de energia, expanda Suspensão e altere o valor de "Na bateria" e "Conectado" para 0 minuto.

    
por 09.04.2011 / 21:14
2

Eu tive o mesmo problema. Tentei:

powercfg –H OFF

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

Defina Control Panel\All Control Panel Items\Power Options\Edit Plan Settings para Nunca para todas as opções de energia.

E o arquivo continuava voltando à vida. O conselho de usar monitor de processo fez o truque para mim. O sistema que eu uso tem "Pointsec for PC" instalado, e o processo prot_srv.exe continua redefinindo esse valor. Dado que este PC está bloqueado com este software, não há muito que eu possa fazer.

    
por 01.01.2012 / 09:06
1

mesma coisa aqui!

fora de frustração, eu até configurei a política local de tal forma que rodaria um cmd na inicialização da máquina que rodaria a linha powercfg, mas mesmo isso não é bom o suficiente!

isso é realmente frustrante, já que estou executando o Win7 Ultimate em uma partição de 60 GB.

no meu próximo experimento vou brincar com a chave de registro "HiberFileSizePercent" em:

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Power

e veja se isso pode forçar a (re) criação de um arquivo menor, pelo menos.

f.

    
por 05.12.2010 / 03:01
1

Não é uma solução, mas uma solução que funcionou para mim:

Eu tinha apenas 900 MB de espaço livre na minha unidade C e queria me livrar do arquivo hiberfil.sys, que levou mais de 6 GB. Então eu removi com powercfg -h. Mas apenas continuava voltando após cerca de 10 segundos ou algo assim. Eu acho que tem algo a ver com a PointSec porque isso foi mencionado anteriormente aqui.

Em seguida, desativei a hibernação e copiei rapidamente um arquivo de 1 GB para a unidade C. Agora ele não volta e eu ainda tenho 6GB de espaço sobrando. Eu acho que ainda está tentando ativar a hibernação e descobre que não há espaço suficiente para isso. E da próxima vez que ficar sem espaço na unidade C, ainda poderei excluir o arquivo de 1 GB.

    
por 23.12.2013 / 12:58
0

Eu tenho uma solução que parece funcionar muito bem para mim (embora, talvez nem todos). Pelo que eu recolhi, vmtoolsd.exe desabilita a hibernação ao inicializar em VMware e, em seguida, reativa-lo (independentemente do estado anterior) ao inicializar nativamente. Como o VMware Tools não é necessário ao executar o nativo (Boot Camp), eu fiz um arquivo em lote contendo o seguinte:

@echo off

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

:enable
net start "VMware Tools"

:end

Configurei o serviço VMware Tools como Manual (em vez de Automático) e criei uma tarefa no Agendador de Tarefas. A tarefa é configurada da seguinte forma:

  • Executar se o usuário está logado ou não
  • Executar com privilégios mais altos
  • Oculto (pode não ser necessário)
  • Disparadores: na inicialização do sistema
  • Ações: o arquivo de lote acima
  • Desmarque tudo em Condições / Configurações (pode não ser necessário)

NOTA: como confio em NUMBER_OF_PROCESSORS para diferir de quando inicializado nativamente, isso só funcionará se você não tiver a máquina virtual com o mesmo número de processadores (lógicos, não físicos) no seu Mac.

Além disso, o arquivo em lote pode ser simplificado para:

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

Eu tinha algumas coisas no arquivo de lote para depuração / teste e mantive-o.

    
por 27.02.2013 / 00:34
0

Como oKtosiTe disse, eu tentei essa abordagem sorrateira, já que nada mais funcionou para mim. O ProcessMonitor simplesmente mostrou que a entrada no registro é criada pelo powercfg.exe em si.

Não posso simplesmente desativar / renomear ou removê-lo.

Provavelmente devido a Políticas de Grupo que estão em todo o meu laptop (empresa laptop - > empresa com políticas de segurança super estúpidas!).

Então eu executei o comando, hiberfile.sys desapareceu por alguns segundos, o arquivo copiado chamado hiberfile.sys de outro lugar (criado no editor e 1 KB de tamanho) e alterei suas permissões para somente leitura (propriedades do arquivo) .

fez a mágica!

Então, resumindo:

  1. Executar em cmd powercfg -h off
  2. Copie o hiberfile.sys
  3. Propriedades - > somente leitura

Feito!

Observação: sem alterar o arquivo de permissões, ele volta para cerca de 6 GB no meu caso.

    
por 30.05.2017 / 13:01
-1

Talvez recriá-lo manualmente após a remoção e definir permissões para impedir que o sistema modifique o arquivo? Eu sei, é um tiro no escuro.

Isso pode ser causado por uma partição de restauração ou semelhante?

    
por 05.12.2010 / 03:22
-2

Meia resposta:

No Windows XP, esta foi uma solução fácil e permanente:

  1. exclua o hiberfil.sys com este comando (com direitos de administrador): powercfg -h off

  2. crie uma pasta chamada "hiberfil.sys" em C: \

Infelizmente, o Win7 é "mais inteligente" que o XP e mata essa pasta, ignorando qualquer combinação de propriedade / permissão que tentei. Mas às vezes minha pasta hiberfil.sys sobreviveu a uma única reinicialização sem ser substituída. Também é interessante que o sistema pareça regenerar o arquivo original depois de alguns segundos em que a janela do C: \ apareceu na área de trabalho.

E obrigado pelo meu primeiro voto negativo:)

    
por 08.04.2011 / 23:45