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を無効にする準備ができています。 。 。しかし、私はここの誰かが最初に何か他のものを提案してくれることを望んでいました。
私の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は多くありません。
これは Process Monitor で簡単にトラブルシューティングできます。
それを起動し、オプションメニューでBoot Loggingを有効にして、コンピュータを再起動しますプロセスモニターを起動します。
次に、キャプチャを停止し、HibernateEnabled
を検索して、値の変更内容を確認します。
より高度な洞察を得るために、これはWindows Performance ToolkitのXBootMgrでも実行できます。
Boot CampとVMware Fusionを使用している場合:
ファイルを見つける
%programfiles%\VMware\VMware Tools\plugins\vmsvc\disableGuestHibernate.dll
削除または移動します。
最後に、管理者特権のコマンドプロンプトを開いて実行することにより、休止状態を一度だけ無効にします。
powercfg -h off
VMwareツールがロードされると、disableGuestHibernateプラグインがロードされます。 vmwareツールがvmで実行中にロードされると、休止状態が無効になります(vmwareには独自のサスペンドシステムがあるため、休止状態が冗長になります)。休止状態が無効になっている場合、休止状態を再度有効にします。
休止状態のオンとオフをもう一度切り替えてみてください。 cmdで「管理者として実行」を実行します。
powercfg.exe /hibernate on
powercfg.exe /hibernate off
del c:\hiberfil.sys
ラップトップを使用している場合は、休止状態をオンにしてからオフにする前に、次の操作も行います。
同じ問題がありました。試した:
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がこのソフトウェアでロックダウンされていることを考えると、私にできることはあまりありません。
OKtosiTeが言ったように、他には何も役に立たなかったので、この卑劣なアプローチを試しました。 ProcessMonitorは単に、レジストリのエントリがpowercfg.exe
自体によって作成されていることを示しました。
単に無効化/名前変更または削除することはできません。
おそらく、私のラップトップ全体に適用されているグループポリシー(会社のラップトップ->会社の愚かなセキュリティポリシー!)が原因です。
だから私はコマンドを実行しました、hiberfile.sys
が数秒間消え、hiberfile.sys
という名前のファイルを他の場所からコピーし(エディターで作成され、サイズが1 KB)、そのアクセス許可を読み取り専用に変更しました(ファイルのプロパティ) )。
魔法でした!
要するに:
powercfg -h off
できた!
注:許可ファイルを変更しないと、私の場合、約6GBに戻ります。
こちらも同じです!
欲求不満から、私はローカルポリシーを構成して、マシンの起動時にcmdを実行してpowercfg行を実行するようにしましたが、それでも十分ではありません!
60 GBのパーティションでWin7 Ultimateを実行しているため、これは本当にイライラします.
次の実験では、以下のHiberFileSizePercent
レジストリキーをいじります。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power
そして、それが少なくともより小さなファイルを(再)作成することを強制するかもしれないかどうかを見てください。
解決策ではありませんが、私にとってうまくいった回避策:
私のCドライブには900 MBの空き容量しかないため、6 GBを超えるhiberfil.sysファイルを削除したいと考えました。そのため、powercfg -hで削除しました。しかし、それはちょうど約10秒か何かの後に戻ってきました。これは、先に述べたように、PointSecと関係があると思います。
次に、休止状態を無効にし、1GBのファイルをCドライブにすばやくコピーしました。今、それは戻ってきません、そして私はまだ6GBのスペースを残しています。私はまだ休止状態を有効にしようとしていると思いますが、そのための十分なスペースがないことがわかりました。そして、次にCドライブのスペースが足りなくなったときでも、1 GBのファイルを削除できます。
私にはうまくいくように見える回避策があります(ただし、だれもがそうとは限りません)。私が収集したものから、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"
デバッグ/テスト用のバッチファイルにいくつかのものが含まれていて、そのまま残しました。
おそらく削除後に手動で再作成し、システムがファイルを変更できないようにアクセス許可を設定しますか?私は知っています、それはロングショットです。
これは、パーティションの復元などが原因である可能性がありますか?