web-dev-qa-db-ja.com

休止状態が無効になり、起動時にhiberfil.sysが再作成されます

4GBのRAMを備えた小さな(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を使用して休止状態をオフにすることを提案しているだけで、ほぼすべての人に機能するようです。しかし、それは私のために戻ってきます! (吸血鬼のように、私のディスク領域を吸い取ってしまいます。)私は同じ問題を抱えているように思われる誰かから 他の1つのスレッド を見つけましたが、元のポスター(または私)。それでも、私はそこにリストされているすべてを試しました:

  • ハイブリッドスリープを無効にする

  • コマンドプロンプト、電源オプションGUI、および両方(両方の順序)でHibernateを無効にする

  • HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Power\HibernateEnabledキーを手動で変更する

  • 私が考えることができる他のほとんどすべて!

ファイルを削除しても問題はないことを繰り返し述べたいと思います。再起動するたびに元に戻ります。タオルを投げ入れて、ログイン時にスクリプトを実行するだけで、毎回Hibernateを無効にする準備ができています。 。 。しかし、私はここの誰かが最初に何か他のものを提案してくれることを望んでいました。

21
Corey White

私のWindows 7x64インストールは、MacラップトップのSSDパーティションにあります。 powercfg/h off(昇格)で無効にし、ms fixitでhibernateを無効にし、レジ​​ストリキーのHibernateEnable値を0に設定しました。Hiberfil.sysは、再起動するまで削除されます。ネイティブhiberfil.sysをブートすると常に再作成されますが、OS XおよびVMware Fusion内でブートすると、ハイバネーションが無効のままになります。

Tom Wijsmanが提案した、ブートロギングを備えたProcessMonitorは、ネイティブブート中にvmtoolsd.exe(VMwareから)がレジストリキーを再度有効にしていたことがわかりました。 regeditでアクセス許可を変更しようとしましたが、値の1への変更は停止されませんでした。小さなhiberfil.sysを作成することを考えましたが、上書きされたと思います。

99%の解決策として、HiberFileSizePercentの値を10進数の1に変更しました。これにより、hiberfil.sysは8GB RAMマシンで80MBになりました。 .001以下を試すことができると思いますが、80MBは多くありません。

18
greenfellow

これは Process Monitor で簡単にトラブルシューティングできます。

それを起動し、オプションメニューでBoot Loggingを有効にして、コンピュータを再起動しますプロセスモニターを起動します。

次に、キャプチャを停止し、HibernateEnabledを検索して、値の変更内容を確認します。


より高度な洞察を得るために、これはWindows Performance ToolkitのXBootMgrでも実行できます。

インストール手順 - オン/オフ移行パフォーマンス分析ドキュメント

13
Tamara Wijsman

Boot CampとVMware Fusionを使用している場合:

ファイルを見つける

%programfiles%\VMware\VMware Tools\plugins\vmsvc\disableGuestHibernate.dll

削除または移動します。

最後に、管理者特権のコマンドプロンプトを開いて実行することにより、休止状態を一度だけ無効にします。

powercfg -h off

VMwareツールがロードされると、disableGuestHibernateプラグインがロードされます。 vmwareツールがvmで実行中にロードされると、休止状態が無効になります(vmwareには独自のサスペンドシステムがあるため、休止状態が冗長になります)。休止状態が無効になっている場合、休止状態を再度有効にします。

6
themaninblack

休止状態のオンとオフをもう一度切り替えてみてください。 cmdで「管理者として実行」を実行します。

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

ラップトップを使用している場合は、休止状態をオンにしてからオフにする前に、次の操作も行います。

  1. ハイブリッドスリープが無効になっていることを確認します。
  2. 電源オプション→プラン設定の変更→高度な電源設定の変更、[スリープ]を展開し、[バッテリー使用時]および[プラグイン]の値を0分に変更します。

image

4
harrymc

同じ問題がありました。試した:

powercfg –H OFF

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

セットする Control Panel\All Control Panel Items\Power Options\Edit Plan Settingsすべての電源オプションで[なし]を選択します。

そしてファイルは生き返り続けました。プロセスモニターを使用するというアドバイスがうまくいきました。私が使用しているシステムには「Pointsec for PC」がインストールされており、prot_srv.exeプロセスがこの値をリセットし続けました。このPCがこのソフトウェアでロックダウンされていることを考えると、私にできることはあまりありません。

2
TryingToHelp

OKtosiTeが言ったように、他には何も役に立たなかったので、この卑劣なアプローチを試しました。 ProcessMonitorは単に、レジストリのエントリがpowercfg.exe自体によって作成されていることを示しました。

単に無効化/名前変更または削除することはできません。

おそらく、私のラップトップ全体に適用されているグループポリシー(会社のラップトップ->会社の愚かなセキュリティポリシー!)が原因です。

だから私はコマンドを実行しました、hiberfile.sysが数秒間消え、hiberfile.sysという名前のファイルを他の場所からコピーし(エディターで作成され、サイズが1 KB)、そのアクセス許可を読み取り専用に変更しました(ファイルのプロパティ) )。

魔法でした!

要するに:

  1. Cmdで実行powercfg -h off
  2. 準備されたhiberfile.sysをコピーする
  3. プロパティ->読み取り専用

できた!

注:許可ファイルを変更しないと、私の場合、約6GBに戻ります。

hiberfile.sys only 1KB now

1
yrk

こちらも同じです!

欲求不満から、私はローカルポリシーを構成して、マシンの起動時にcmdを実行してpowercfg行を実行するようにしましたが、それでも十分ではありません!

60 GBのパーティションでWin7 Ultimateを実行しているため、これは本当にイライラします.

次の実験では、以下のHiberFileSizePercentレジストリキーをいじります。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power

そして、それが少なくともより小さなファイルを(再)作成することを強制するかもしれないかどうかを見てください。

1
Frank

解決策ではありませんが、私にとってうまくいった回避策:

私のCドライブには900 MBの空き容量しかないため、6 GBを超えるhiberfil.sysファイルを削除したいと考えました。そのため、powercfg -hで削除しました。しかし、それはちょうど約10秒か何かの後に戻ってきました。これは、先に述べたように、PointSecと関係があると思います。

次に、休止状態を無効にし、1GBのファイルをCドライブにすばやくコピーしました。今、それは戻ってきません、そして私はまだ6GBのスペースを残しています。私はまだ休止状態を有効にしようとしていると思いますが、そのための十分なスペースがないことがわかりました。そして、次にCドライブのスペースが足りなくなったときでも、1 GBのファイルを削除できます。

1
Roberg

私にはうまくいくように見える回避策があります(ただし、だれもがそうとは限りません)。私が収集したものから、vmtoolsd.exeは、VMwareで起動するときに休止状態を無効にし、ネイティブで起動するときに(以前の状態に関係なく)再び有効にします。ネイティブ(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"

デバッグ/テスト用のバッチファイルにいくつかのものが含まれていて、そのまま残しました。

0

おそらく削除後に手動で再作成し、システムがファイルを変更できないようにアクセス許可を設定しますか?私は知っています、それはロングショットです。

これは、パーティションの復元などが原因である可能性がありますか?

0
oKtosiTe