Hibernate ถูกปิดใช้งาน hiberfil.sys จะถูกสร้างขึ้นใหม่ทุกครั้งที่บูต


20

ฉันใช้ Windows 7 บนพาร์ติชั่นขนาดเล็ก (40GB) พร้อม 4GB ram ซึ่งหมายความว่าไฟล์ hiberfil.sys ที่สร้างโดย Hibernate นั้นใช้ส่วนสำคัญของพื้นที่ว่างที่มีอยู่ ฉันต้องการลบ

ฉันทราบว่าฉันสามารถปิดการใช้งานไฮเบอร์เนตและลบ hiberfil.sys โดยการป้อนpowercfg -h offคำสั่งยกระดับ ใช้งานได้ - ไฟล์ถูกลบทันทีและหลังจากทำเช่นนั้นHKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Power\HibernateEnabledคีย์จะถูกตั้งค่าเป็น 0 อย่างถูกต้อง

อย่างไรก็ตามในครั้งต่อไปที่ฉันรีบูตพีซี hiberfil.sys จะกลับมาจากความตาย Hibernate จะถูกเปิดใช้งานอีกครั้งและคีย์รีจิสทรีนั้นได้กลับไปเป็น 1

ตอนนี้ฉันก็ใกล้จะจบแล้ว เกือบทุกอย่างที่ฉันสามารถค้นหาออนไลน์ที่เกี่ยวข้องกับการลบไฟล์ hiberfil.sys เพียงแค่แนะนำให้ใช้ powercfg เพื่อปิดการจำศีลและนั่นก็ดูเหมือนจะใช้ได้กับทุกคน แต่มันกลับมาหาฉันซะ! (เหมือนแวมไพร์ดูดพื้นที่ในดิสก์ของฉัน) ฉันหากระทู้อื่นจากคนที่ดูเหมือนจะมีปัญหาเดียวกัน แต่ไม่มีคำแนะนำใดที่ทำงานให้กับโปสเตอร์ต้นฉบับ (หรือสำหรับฉัน) ถึงกระนั้นฉันได้ลองทุกอย่างที่มีรายการรวมถึง:

  • ปิดใช้งานไฮบริดสลีป

  • การปิดใช้งานไฮเบอร์เนตผ่านทางพรอมต์คำสั่งผ่าน GUI ตัวเลือกการใช้พลังงานและผ่านทั้งสองอย่าง (ทั้งสองคำสั่งซื้อ)

  • เปลี่ยนHKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Power\HibernateEnabledกุญแจด้วยตนเอง

  • ค่อนข้างทุกอย่างอื่นฉันคิดว่า!

ฉันต้องการย้ำว่าฉันไม่มีปัญหาในการลบไฟล์ - มันใช้งานได้ดี มันเพิ่งกลับมาหลังจากรีบูตทุกครั้ง ฉันพร้อมที่จะโยนผ้าเช็ดตัวและเรียกใช้สคริปต์ในการเข้าสู่ระบบเพื่อปิดการใช้งานไฮเบอร์เนตทุกครั้งแม้ว่าจะดูเหมือนว่า "การแก้ปัญหา" อย่างบ้าคลั่ง . . แต่ฉันหวังว่าจะมีใครบางคนที่นี่สามารถแนะนำอย่างอื่นก่อน


คุณต้องมีซอฟต์แวร์ตรวจสอบความปลอดภัยและการป้องกันรีจิสทรี
Moab

1
เมื่อพิจารณาว่าคำถามนี้อยู่ที่นั่นนานแค่ไหนและเนื่องจากนี่อาจเป็นปัญหาที่แพร่หลายฉันจึงตั้งคำถามกับคำถามนี้
bwDraco - Reinstate Monica

คุณไม่ได้ติดตั้งซอฟต์แวร์บูทแบบกำหนดเองที่จะทำสิ่งนี้ใช่ไหม
Mehrdad

คำตอบ:


18

การติดตั้ง Windows 7x64 ของฉันอยู่ในพาร์ติชัน SSD บนแล็ปท็อป Mac ฉันปิดใช้งานด้วยpowercfg / h off (ยกระดับ) และ ms fixit ปิดการใช้งานการไฮเบอร์เนตรวมถึงการตั้งค่ารีจิสทรีคีย์ HibernateEnable เป็น 0 Hiberfil.sys จะถูกลบจนกว่าจะรีบูตเท่านั้น เมื่อฉันบูต hiberfil.sys ดั้งเดิมจะถูกสร้างขึ้นใหม่อยู่เสมอ แต่เมื่อฉันบูตภายใน OS X และ VMware Fusion การไฮเบอร์เนตยังคงปิดการใช้งานตามที่ควรจะเป็น

ข้อเสนอแนะของ Tom Wijsman เกี่ยวกับ ProcessMonitor พร้อมการบันทึกการบู๊ตช่วยให้ฉันพบว่าvmtoolsd.exe (จาก VMware) เปิดใช้งานรีจิสตรีคีย์ในระหว่างการบูตระบบ ฉันพยายามเปลี่ยนสิทธิ์ใน regedit แต่พวกเขาไม่ได้หยุดการเปลี่ยนค่าเป็น 1 ฉันคิดเกี่ยวกับการสร้าง hiberfil.sys ขนาดเล็ก แต่ฉันคิดว่ามันจะถูกเขียนทับ

วิธีการแก้ปัญหา 99% ฉันเปลี่ยนค่า HiberFileSizePercent เป็นทศนิยม 1 ซึ่งทำให้ hiberfil.sys เพียง 80MB บนเครื่อง RAM 8GB ฉันคิดว่าฉันสามารถลอง. 001 หรือน้อยกว่า แต่ 80MB ไม่มาก


1
ขอบคุณ - ฉันใช้ Macbook พร้อม Bootcamp และ VMWare Fusion เช่นกันคุณอาจช่วยฉันชั่วโมง
DanB

13

คุณสามารถแก้ไขปัญหานี้กับกระบวนการตรวจสอบ

เริ่มและเปิดใช้งานการบันทึกการบูตในเมนูตัวเลือกรีสตาร์ทเครื่องคอมพิวเตอร์และเริ่มการตรวจสอบกระบวนการ

จากนั้นให้หยุดการจับภาพแล้วค้นหาHibernateEnabledและตรวจสอบสิ่งที่เปลี่ยนแปลงค่า


สำหรับข้อมูลเชิงลึกขั้นสูงสามารถทำได้ด้วย XBootMgr จาก Windows Performance Toolkit

คำแนะนำในการติดตั้ง - เอกสารการวิเคราะห์ประสิทธิภาพการเปลี่ยนเปิด / ปิด


3
เนื่องจากคำตอบของคุณมีศักยภาพมากที่สุดในการแก้ปัญหาฉันจึงตัดสินใจมอบรางวัลให้คุณ
bwDraco - Reinstate Monica

วิธีนี้แก้ปัญหาของฉันได้ ขอบคุณ! (ปัญหาของฉันเกี่ยวกับ Wake-On-LAN รายละเอียดที่นี่: superuser.com/questions/1405082/ … )
smwikipedia

6

หากคุณใช้บูทแคมป์และฟิวชั่น vmware:

ค้นหาไฟล์% programfiles% \ VMware \ VMware Tools \ plugins \ vmsvc \ disableGuestHibernate.dll ลบหรือย้าย

สุดท้ายปิดการใช้งานการจำศีลครั้งเดียวและทั้งหมดโดยการเปิดคำสั่งผู้ดูแลระบบยกระดับพร้อมท์และการทำงาน:

powercfg -h ปิด

disableGuestHibernate plugin โหลดเมื่อเครื่องมือ vmware โหลด หากเครื่องมือ vmware โหลดในขณะที่ทำงานใน vm มันจะปิดการใช้งานการไฮเบอร์เนต (เนื่องจาก vmware มีระบบ suspend ของตัวเองซึ่งทำให้เกิดการไฮเบอร์เนตซ้ำซ้อน) แต่ถ้าเครื่องมือ vmware โหลดภายนอก vm (เช่นคุณใช้ boot camp เพื่อบูตเข้าสู่ windows แทน) เปิดใช้งานการไฮเบอร์เนตอีกครั้งหากถูกปิดใช้งาน


นี่คือคำตอบที่ดีและมีรายละเอียดดี ถ้าฉันสามารถให้ 10 upvotes ฉันจะ!
Rijk

โดยวิธีการ: เพียงแค่เปลี่ยนชื่อมันไม่ทำงานคุณต้องลบ dll
Rijk

สิ่งนี้แก้ไขให้ฉันเช่นกัน Upvote!
MortenRøgenes

4

คุณสามารถลองเปิดและปิดการจำศีลอีกครั้ง ใน cmd "Run as Administrator" ให้ทำ:

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

หากคุณกำลังใช้แล็ปท็อปหลังจากเปิดไฮเบอร์เนตและก่อนที่จะปิดให้ทำดังนี้:

  1. ตรวจสอบให้แน่ใจว่าปิดใช้งานไฮบริดสลีปแล้ว
  2. ตัวเลือกพลังงาน→เปลี่ยนการตั้งค่าแผน→เปลี่ยนการตั้งค่าพลังงานขั้นสูงขยายโหมดสลีปและเปลี่ยนค่าของ "On battery" และ "Plug in" เป็น 0 นาที

ภาพ


2

ผมมีปัญหาเดียวกัน. พยายาม:

powercfg –H OFF

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

ตั้งค่าControl Panel\All Control Panel Items\Power Options\Edit Plan Settingsเป็นไม่สำหรับตัวเลือกพลังงานทั้งหมด

และไฟล์จะกลับมามีชีวิตอีกครั้ง คำแนะนำในการใช้การตรวจสอบกระบวนการทำเคล็ดลับสำหรับฉัน ระบบที่ฉันใช้มี "Pointsec สำหรับพีซี" ติดตั้งอยู่และกระบวนการ prot_srv.exe ยังคงรีเซ็ตค่านี้ เนื่องจากพีซีนี้ถูกล็อคด้วยซอฟต์แวร์นี้จึงไม่มีอะไรมากที่ฉันทำได้


1

สิ่งเดียวกันที่นี่!

นอกจากความยุ่งยากฉันยังกำหนดค่านโยบายท้องถิ่นเพื่อให้มันสามารถเรียกใช้ cmd เมื่อเริ่มต้นเครื่องที่จะเรียกใช้สาย powercfg แต่ก็ยังไม่ดีพอ!

สิ่งนี้น่าผิดหวังจริง ๆเนื่องจากฉันใช้ Win7 Ultimate บนพาร์ติชัน 60 GB

ในการทดสอบครั้งต่อไปของฉันฉันจะเล่นกับคีย์รีจิสทรี "HiberFileSizePercent" ภายใต้:

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ พลังงาน

และดูว่ามันอาจบังคับให้ (ใหม่) สร้างไฟล์ที่เล็กกว่าอย่างน้อย


+1 - นี่น่าจะเป็นความคิดที่ดี ฉันเจอวิธีแก้ไขปัญหาเดียวกันนี้ในขณะที่ช่วยเหลือผู้ใช้รายอื่นเกี่ยวกับปัญหาการจำศีลที่ไม่เกี่ยวข้อง
SgtOJ

ฉันไม่เคยจบลงด้วยการแก้ปัญหานี้ ฉันใช้สคริปต์การเข้าสู่ระบบชั่วครู่หนึ่ง แต่มันไม่สม่ำเสมอและในที่สุดฉันก็สิ้นสุดลงที่การซื้อไดรฟ์ที่ใหญ่กว่าและปล่อยให้ไฟล์ hiberfil.sys ติดตั้ง ฉันขอให้คุณโชคดีที่สุดและฉันจะติดตามกระทู้นี้ หากคุณประสบความสำเร็จโปรดโพสต์กลับมา!
Corey White

คุณสามารถลบhiberfil.sysหลังจากปิดใช้งานการไฮเบอร์เนตและสร้างไดเรกทอรีที่เรียกว่า hiberfil.sys คุณไม่สามารถมีไฟล์และไดเรกทอรีในไดเรกทอรีเดียวกันที่มีชื่อเดียวกันดังนั้น Windows จะไม่สามารถสร้างไฟล์ที่เรียกว่า hiberfil.sys แน่นอนว่า MS อาจมีสาเหตุมาจากนั้นและอาจสร้างไฟล์อื่น (hiberfi2.sys?) หรืออาจร้องดังเกี่ยวกับมัน
เบคอน Bits

@BaconBits: biziclop บอกว่ามันใช้งานไม่ได้ Windows แทนที่โฟลเดอร์ด้วยhiberfil.sysไฟล์
bwDraco - Reinstate Monica

1

ไม่ใช่วิธีแก้ปัญหา แต่เป็นวิธีแก้ปัญหาที่เหมาะกับฉัน:

ฉันมีพื้นที่ว่างเพียง 900MB ในไดรฟ์ C ของฉันและต้องการกำจัดไฟล์ hiberfil.sys ซึ่งใช้เวลามากกว่า 6GB ดังนั้นฉันจึงลบมันด้วย powercfg -h แต่มันก็กลับมาหลังจากผ่านไปประมาณ 10 วินาทีหรืออะไรทำนองนั้น ฉันคิดว่ามันมีบางอย่างที่เกี่ยวข้องกับ PointSec เพราะถูกกล่าวถึงก่อนหน้านี้ที่นี่

จากนั้นฉันปิดการจำศีลแล้วคัดลอกไฟล์ 1GB ไปยังไดรฟ์ C อย่างรวดเร็ว ตอนนี้มันไม่กลับมาอีกและฉันยังมีพื้นที่เหลืออีก 6GB ฉันเดาว่ามันยังคงพยายามเปิดใช้งานการไฮเบอร์เนตและพบว่ามีพื้นที่ไม่เพียงพออีกต่อไป และครั้งต่อไปที่ฉันมีพื้นที่ว่างในไดรฟ์ C ฉันยังคงสามารถลบไฟล์ 1GB ..


0

อาจจะสร้างมันขึ้นมาใหม่ด้วยตนเองหลังจากการลบและตั้งค่าการอนุญาตให้ระบบทำการแก้ไขไฟล์? ฉันรู้ว่ามันเป็นเวลานาน

สิ่งนี้อาจเกิดจากการคืนค่าพาร์ติชันหรือคล้ายกัน?


0

ฉันมีวิธีแก้ปัญหาที่ดูเหมือนว่าจะทำงานได้ดีสำหรับฉัน (แม้ว่าอาจจะไม่ใช่ทุกคน) จากสิ่งที่ฉันรวบรวมไว้ vmtoolsd.exe จะปิดใช้งานการไฮเบอร์เนตเมื่อทำการบูทภายใต้ VMware จากนั้นเปิดใช้งานอีกครั้ง (โดยไม่คำนึงถึงสถานะก่อนหน้า) เมื่อทำการบูตแบบดั้งเดิม เนื่องจากเครื่องมือ VMware ไม่จำเป็นเมื่อเรียกใช้เนทิฟ (Boot Camp) ฉันจึงสร้างไฟล์แบตช์ที่มีสิ่งต่อไปนี้:

@echo off

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

:enable
net start "VMware Tools"

:end

ฉันตั้งค่าบริการเครื่องมือ VMware เป็นแบบแมนนวล (ไม่ใช่แบบอัตโนมัติ) และสร้างงานใน Task Scheduler งานถูกตั้งค่าดังนี้:

  • เรียกใช้ว่าผู้ใช้เข้าสู่ระบบหรือไม่
  • ทำงานด้วยสิทธิพิเศษสูงสุด
  • ซ่อน (อาจไม่จำเป็น)
  • ทริกเกอร์: เมื่อเริ่มต้นระบบ
  • การดำเนินการ: แบตช์ไฟล์ด้านบน
  • ยกเลิกการเลือกทุกอย่างในเงื่อนไข / การตั้งค่า (อาจไม่จำเป็น)

หมายเหตุ: เนื่องจากฉันพึ่งพา NUMBER_OF_PROCESSORS จะแตกต่างจากเมื่อบูตแบบดั้งเดิมนี่จะใช้งานได้ต่อเมื่อคุณไม่มีเครื่องเสมือนที่ให้ตัวประมวลผลจำนวนเดียวกัน (ตรรกะไม่ใช่ทางกายภาพ) บน Mac ของคุณ

นอกจากนี้ไฟล์แบตช์สามารถทำให้ง่ายขึ้นเพื่อ:

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

ฉันมีบางสิ่งในแบทช์ไฟล์สำหรับการดีบัก / ทดสอบและเก็บไว้


OT แต่มีการตรวจสอบความเสมอภาคและ 2 ที่ทับซ้อนกันgotoเหมือนที่เจ็บความรู้สึกของความงามของฉันเมื่อคุณก็อาจมีไม่เท่ากันและ goto1
underscore_d

0

อย่างที่ oKtosiTe กล่าวว่าฉันได้ลองวิธีการลับ ๆ ล่อ ๆ นี้เพราะไม่มีสิ่งใดที่เหมาะกับฉัน ProcessMonitor เพียงแค่แสดงให้เห็นว่ารายการในรีจิสทรีถูกสร้างขึ้นด้วยpowercfg.exeตัวเอง

ฉันไม่สามารถปิดการใช้งาน / เปลี่ยนชื่อหรือลบมันได้

อาจเป็นเพราะนโยบายกลุ่มที่มีอยู่ทั่วแล็ปท็อปของฉัน (แล็ปท็อปของ บริษัท -> นโยบายความปลอดภัยที่ยอดเยี่ยม!)

ดังนั้นฉันจึงเรียกใช้คำสั่งhiberfile.sysหายไปสองสามวินาทีคัดลอกไฟล์ชื่อhiberfile.sysจากที่อื่น (สร้างในตัวแก้ไขและขนาด 1 KB) และเปลี่ยนสิทธิ์ในการอ่านเท่านั้น (คุณสมบัติของไฟล์)

ทำเวทย์มนตร์!

ดังนั้นในระยะสั้น:

  1. ทำงานใน cmd powercfg -h off
  2. คัดลอก hiberfile.sys ที่เตรียมไว้
  3. คุณสมบัติ -> อ่านอย่างเดียว

ทำ!

หมายเหตุ:โดยไม่ต้องเปลี่ยนไฟล์สิทธิ์ให้กลับมาเป็นประมาณ 6GB ในกรณีของฉัน

hiberfile.sys เพียง 1KB ในขณะนี้


0

เครดิตไปที่ @Tom Wijsman

ปัญหาเฉพาะของฉันเกี่ยวกับ Wake-On-LAN ถูกปิดกั้นโดยการไฮเบอร์เนตรายละเอียดที่นี่: จะปิดการใช้งานการจำศีลใน Windows 10 ได้อย่างไร

ฉันติดตามวิธีการของเขาและรับบันทึกการบูต

ในกรณีของฉันมันเป็นvmtoolsd.exeที่เก็บการตั้งค่าต่ำกว่าค่ารีจิสทรีเพื่อ 1 powercfg /h offซึ่งทั้งหมดชนะ

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Power\HibernateEnabled

เป็นvmtoolsd.exeVMware Tools

หลังจากที่ฉันถอนการติดตั้งมันhiberfil.sysไม่เคยถูกสร้างขึ้นใหม่


-2

ครึ่งคำตอบ:

บน Windows XP นี่เป็นวิธีที่ง่ายและถาวร:

  1. ลบ hiberfil.sys ด้วยคำสั่งนี้ (ด้วยสิทธิ์ผู้ดูแลระบบ): powercfg -h off

  2. สร้างโฟลเดอร์ชื่อ "hiberfil.sys" ที่ C: \

น่าเสียดาย Win7 นั้น "ฉลาดกว่า XP" และฆ่าโฟลเดอร์นี้โดยไม่สนใจการเป็นเจ้าของ / สิทธิ์รวมที่ฉันได้ลอง แต่บางครั้งโฟลเดอร์ hiberfil.sys ของฉันรอดชีวิตจากการรีสตาร์ทครั้งเดียวโดยไม่ถูกแทนที่ เป็นที่น่าสนใจว่าระบบดูเหมือนจะสร้างไฟล์ต้นฉบับขึ้นใหม่หลังจากนั้นไม่กี่วินาทีที่หน้าต่าง C: \ ปรากฏบนเดสก์ท็อป

และขอบคุณสำหรับ downvote แรกของฉัน :)


นั่นอาจไม่ใช่ความคิดที่เลว - คุณสามารถตั้งค่าการอนุญาตเพื่อไม่ให้ระบบสามารถลบได้ (โดยไม่ต้องเปลี่ยนการอนุญาตก่อน) แน่นอน win7 อาจปฏิเสธการบูต
Hugh Allen

@Hugh: เป็นไปได้ว่ารหัสจำศีลซึ่งเป็นส่วนหนึ่งของเคอร์เนลจะไม่สนใจ ACLs
user1686
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.