Hibernate bị vô hiệu hóa, hiberfil.sys được tạo lại ở mỗi lần khởi động


20

Tôi có Windows 7 chạy trên một phân vùng nhỏ (40 GB), với ram 4GB. Điều này có nghĩa là tệp hiberfil.sys được tạo bởi Hibernate chiếm một phần đáng kể của không gian đĩa có sẵn. Tôi muốn loại bỏ nó.

Tôi biết rằng tôi có thể vô hiệu hóa Hibernate và xóa hiberfil.sys bằng cách nhập vào powercfg -h offdấu nhắc lệnh nâng cao. Điều này hoạt động - tập tin ngay lập tức bị xóa và sau khi làm như vậy, HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Power\HibernateEnabledkhóa được (chính xác) được đặt thành 0.

Tuy nhiên, lần sau khi tôi khởi động lại PC, hiberfil.sys trở về từ cõi chết, Hibernate được kích hoạt lại và khóa đăng ký đó đã trở về 1.

Tôi khá nhiều ở cuối trí thông minh của tôi với điều này. Hầu hết mọi thứ tôi có thể tìm thấy trực tuyến liên quan đến việc xóa tệp hiberfil.sys chỉ đơn giản đề xuất sử dụng powercfg để tắt chế độ ngủ đông và dường như mọi thứ đều hoạt động với mọi người. Nhưng nó cứ trở về với tôi! (Giống như một con ma cà rồng, hút hết dung lượng đĩa của tôi.) Tôi đã tìm thấy một chủ đề khác từ một người dường như có cùng một vấn đề, nhưng không có gợi ý nào ở đó làm việc cho poster gốc (hoặc cho tôi). Tuy nhiên, tôi đã thử mọi thứ được liệt kê ở đó, bao gồm:

  • Vô hiệu hóa giấc ngủ lai

  • Vô hiệu hóa Hibernate thông qua dấu nhắc lệnh, thông qua GUI Tùy chọn nguồn và qua cả hai (trong cả hai đơn hàng)

  • Thay đổi HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Power\HibernateEnabledchìa khóa bằng tay

  • Tôi có thể nghĩ ra khá nhiều thứ khác!

Tôi muốn nhắc lại rằng tôi không có vấn đề gì khi xóa tệp - nó hoạt động rất tốt. Nó chỉ trở lại sau mỗi lần khởi động lại. Tôi đã sẵn sàng ném vào khăn và chỉ cần chạy một đoạn script khi đăng nhập để vô hiệu hóa Hibernate mỗi lần, mặc dù đó có vẻ như là một "giải pháp" hacky điên cuồng. . . nhưng tôi đã hy vọng ai đó ở đây có thể đề xuất một cái gì đó khác, đầu tiên.


Bạn phải có một số phần mềm bảo mật giám sát và bảo vệ sổ đăng ký.
Moab

1
Cho biết câu hỏi này đã được ngồi ở đó bao lâu và vì đây có thể là một vấn đề phổ biến, tôi đã đặt tiền thưởng cho câu hỏi này.
bwDraco

Bạn không có cài đặt phần mềm khởi động tùy chỉnh sẽ làm điều này, phải không?
Mehrdad

Câu trả lời:


18

Cài đặt Windows 7x64 của tôi nằm trên phân vùng SSD trên máy tính xách tay Mac. Tôi đã tắt chức năng tắt powercfg / h (nâng cao) và ms fixit tắt chế độ ngủ đông, cũng như khóa đăng ký cài đặt Giá trị HibernateEnable thành 0. Hiberfil.sys chỉ bị xóa cho đến khi khởi động lại. Khi tôi khởi động hiberfil.sys tự nhiên luôn được tạo lại, nhưng khi tôi khởi động bên trong OS X và VMware Fusion, chế độ ngủ đông vẫn bị vô hiệu hóa.

Đề xuất về ProcessMonitor của Tom Wijsman với ghi nhật ký khởi động đã giúp tôi thấy rằng vmtoolsd.exe (từ VMware) đã kích hoạt lại khóa đăng ký trong quá trình khởi động tự nhiên. Tôi đã cố gắng thay đổi các quyền trong regedit, nhưng chúng không dừng thay đổi giá trị thành 1. Tôi nghĩ về việc tạo một hiberfil.sys nhỏ, nhưng tôi nghĩ rằng nó sẽ bị ghi đè.

Là một giải pháp 99%, tôi đã thay đổi giá trị HiberFileSizePercent thành số thập phân 1, điều này làm cho hiberfil.sys chỉ có 80 MB trên máy RAM 8GB. Tôi cho rằng tôi có thể thử 0,001 hoặc ít hơn, nhưng 80 MB không nhiều.


1
Cảm ơn bạn - Tôi đang dùng Macbook với Bootcamp và VMWare Fusion, có lẽ bạn đã tiết kiệm cho tôi hàng giờ.
DanB

13

Bạn có thể dễ dàng khắc phục sự cố này với Process Monitor .

Khởi động nó và bật Nhật ký khởi động trong menu Tùy chọn , khởi động lại máy tính của bạn và bắt đầu Trình theo dõi tiến trình.

Sau đó, để cho nó dừng chụp và sau đó tìm kiếm HibernateEnabledvà kiểm tra những gì đã thay đổi giá trị.


Đối với những hiểu biết nâng cao hơn, điều này cũng có thể được thực hiện với XBootMgr từ Bộ công cụ hiệu suất Windows.

Hướng dẫn cài đặt - Tài liệu phân tích hiệu suất chuyển đổi bật / tắt


3
Vì câu trả lời của bạn có tiềm năng nhất để giải quyết vấn đề, tôi đã quyết định trao tiền thưởng cho bạn.
bwDraco

Phương pháp này đã giải quyết vấn đề của tôi. Cảm ơn! (Vấn đề của tôi là về Wake-On-LAN, chi tiết tại đây: superuser.com/questions/1405082/iêu )
smwikipedia

6

Nếu bạn đang sử dụng boot camp và vmware fusion:

Tìm tệp% programfiles% \ VMware \ VMware Tools \ plugins \ vmsvc \ eacGuestHibernate.dll xóa nó hoặc di chuyển nó.

Cuối cùng, vô hiệu hóa chế độ ngủ đông một lần và mãi mãi bằng cách mở một lời nhắc lệnh nâng cao của quản trị viên và chạy:

tắt nguồn

Plugin pluginGuestHibernate tải khi tải công cụ vmware. Nếu các công cụ vmware tải trong khi chạy trong vm, nó sẽ vô hiệu hóa chế độ ngủ đông (vì vmware có hệ thống treo riêng của nó làm cho chế độ ngủ đông trở nên dư thừa.) Nhưng nếu các công cụ vmware tải bên ngoài vm (ví dụ: bạn sử dụng boot camp để khởi động vào windows) kích hoạt lại chế độ ngủ đông nếu nó bị vô hiệu hóa.


Đây là một câu trả lời tuyệt vời và chi tiết. Nếu tôi có thể cung cấp cho nó 10 upvote, tôi sẽ!
Rijk

Nhân tiện: đơn giản là đổi tên nó không hoạt động, bạn thực sự phải loại bỏ dll.
Rijk

Điều này đã sửa nó cho tôi là tốt. Upvote!
MortenRøgenes

4

Bạn có thể thử bật và tắt chế độ ngủ đông một lần nữa. Trong cmd "Chạy với tư cách quản trị viên" làm:

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

Nếu bạn đang sử dụng máy tính xách tay, sau khi bật chế độ ngủ đông và trước khi tắt, hãy thực hiện như sau:

  1. Đảm bảo rằng giấc ngủ lai bị vô hiệu hóa.
  2. Tùy chọn nguồn → Thay đổi cài đặt gói → Thay đổi cài đặt nguồn nâng cao, mở rộng Ngủ và thay đổi giá trị của "Trên pin" và "Đã cắm" thành 0 phút.

hình ảnh


2

Tôi đã từng gặp vấn đề tương tự. Đã thử:

powercfg –H OFF

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

Đặt Control Panel\All Control Panel Items\Power Options\Edit Plan Settingscho Không bao giờ cho tất cả các tùy chọn nguồn.

Và các tập tin tiếp tục trở lại với cuộc sống. Lời khuyên của việc sử dụng trình theo dõi quá trình đã giúp tôi. Hệ thống tôi sử dụng đã cài đặt "Pointsec cho PC" và quá trình prot_srv.exe tiếp tục đặt lại giá trị này. Do PC này bị khóa với phần mềm này, tôi không thể làm được gì nhiều.


1

điều tương tự ở đây

Vì thất vọng, tôi thậm chí đã cấu hình chính sách cục bộ để nó chạy một cmd khi khởi động máy sẽ chạy dòng powercfg, nhưng thậm chí nó không đủ tốt!

điều này thực sự gây khó chịu vì tôi đang chạy Win7 Ultimate trên phân vùng 60 GB.

trong thử nghiệm tiếp theo của tôi, tôi sẽ chơi với khóa đăng ký "HiberFileSizePercent" trong:

HKEY_LOCAL_MACHINE \ HỆ THỐNG \ CurrentControlset \ Control \ Power

và xem nếu điều đó có thể buộc nó (tái) ít nhất tạo một tệp nhỏ hơn.

f.


+1 - Đây có lẽ là một ý tưởng tốt. Tôi đã bắt gặp giải pháp tương tự này trong khi giúp một người dùng khác với các vấn đề ngủ đông không liên quan của anh ta.
SgtOJ

Tôi chưa bao giờ kết thúc việc giải quyết này. Tôi đã chạy một kịch bản đăng nhập được một lúc, nhưng nó không ổn định và cuối cùng tôi đã mua một ổ đĩa lớn hơn và để lại tệp hiberfil.sys. Tôi chúc bạn may mắn nhất, và tôi sẽ theo chủ đề này. Nếu bạn thành công, xin vui lòng gửi lại!
Corey White

Bạn cũng có thể xóa hiberfil.syssau khi tắt chế độ ngủ đông và sau đó tạo thư mục có tên hiberfil.sys. Bạn không thể có một tệp và một thư mục trong cùng một thư mục có cùng tên, vì vậy Windows sẽ không thể tạo một tệp có tên hiberfil.sys. Tất nhiên, MS có thể đã tính đến điều đó và nó có thể tạo một tệp khác (hiberfi2.sys?) Hoặc nó có thể phàn nàn lớn về nó.
Bacon Bits

@BaconBits: biziclop cho biết điều này không hoạt động; Windows thay thế thư mục với hiberfil.systập tin.
bwDraco

1

Không phải là một giải pháp, mà là một cách giải quyết có hiệu quả với tôi:

Tôi chỉ có 900 MB dung lượng trống trên ổ C của mình và muốn thoát khỏi tệp hiberfil.sys, mất hơn 6GB. Vì vậy, tôi đã loại bỏ nó với powercfg -h. Nhưng nó chỉ tiếp tục quay trở lại sau khoảng 10 giây hoặc một cái gì đó. Tôi nghĩ nó có liên quan đến PointSec vì điều đó đã được đề cập trước đó ở đây.

Sau đó, tôi đã tắt chế độ ngủ đông và sau đó nhanh chóng sao chép tệp 1GB sang ổ C. Bây giờ nó không quay trở lại và tôi vẫn còn 6GB dung lượng. Tôi đoán nó vẫn đang cố gắng kích hoạt chế độ ngủ đông và thấy rằng không còn đủ không gian cho việc đó. Và lần tới khi tôi hết dung lượng trên ổ C, tôi vẫn có thể xóa tệp 1GB ..


0

Có thể tự tạo lại nó sau khi xóa và đặt quyền không cho phép hệ thống sửa đổi tệp? Tôi biết, đó là một cú sút xa.

Điều này có thể được gây ra bởi một phân vùng khôi phục hoặc tương tự?


0

Tôi có một cách giải quyết có vẻ như chỉ hoạt động tốt với tôi (mặc dù, có thể không phải tất cả mọi người). Từ những gì tôi đã thu thập được, vmtoolsd.exe sẽ tắt chế độ ngủ đông khi khởi động trong VMware và sau đó kích hoạt lại nó (bất kể trạng thái trước đó) khi khởi động tự nhiên. Vì VMware Tools không cần thiết khi chạy bản địa (Boot Camp), tôi đã tạo một tệp bó chứa các mục sau:

@echo off

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

:enable
net start "VMware Tools"

:end

Tôi đặt dịch vụ VMware Tools thành Thủ công (thay vì Tự động) và tạo một tác vụ trong Trình lập lịch tác vụ. Nhiệm vụ được thiết lập như sau:

  • Chạy xem người dùng có đăng nhập hay không
  • Chạy với đặc quyền cao nhất
  • Ẩn (có thể không cần thiết)
  • Kích hoạt: lúc khởi động hệ thống
  • Hành động: tệp bó ở trên
  • Bỏ chọn mọi thứ trong Điều kiện / Cài đặt (có thể không cần thiết)

LƯU Ý: vì tôi dựa vào NUMBER_OF_PROCESSORS khác với khi được khởi động nguyên bản, điều này sẽ chỉ hoạt động nếu bạn không có máy ảo được cung cấp cùng số lượng bộ xử lý (logic, không phải vật lý) trên máy Mac của bạn.

Ngoài ra, tệp bó có thể được đơn giản hóa thành:

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

Tôi đã có một vài thứ trong tệp bó để gỡ lỗi / kiểm tra và chỉ giữ nó.


ot, nhưng có một kiểm tra bình đẳng và 2 gotos chồng chéo như thế làm tổn thương cảm giác thẩm mỹ của tôi khi bạn chỉ có thể có một không bằng và 1 goto.
gạch dưới

0

Như oKtosiTe đã nói, tôi đã thử cách tiếp cận lén lút này vì không có gì khác làm việc cho tôi. ProcessMonitor chỉ đơn giản chỉ ra rằng mục trong sổ đăng ký được tạo bởi powercfg.exechính nó.

Tôi không thể đơn giản vô hiệu hóa / đổi tên hoặc loại bỏ nó.

Có lẽ là do Chính sách nhóm có trên máy tính xách tay của tôi (máy tính xách tay của công ty -> chính sách bảo mật siêu ngu ngốc của công ty!).

Vì vậy, tôi đã chạy lệnh, hiberfile.sysbiến mất trong vài giây, sao chép tệp có tên hiberfile.systừ nơi khác (được tạo trong trình chỉnh sửa và kích thước 1 KB) và thay đổi quyền của nó thành chỉ đọc (thuộc tính của tệp).

Đã làm nên điều kỳ diệu!

Vì vậy, trong ngắn hạn:

  1. Chạy trong cmd powercfg -h off
  2. Sao chép hiberfile.sys đã chuẩn bị
  3. Thuộc tính -> chỉ đọc

Làm xong!

Lưu ý: không thay đổi tập tin cấp phép tăng trở lại khoảng 6GB trong trường hợp của tôi.

hiberfile.sys chỉ có 1KB


0

Tín dụng vào @Tom Wijsman.

Vấn đề cụ thể của tôi là về Wake-On-LAN bị chặn bởi chế độ ngủ đông, chi tiết tại đây: Làm cách nào để tắt chế độ ngủ đông vĩnh viễn trên Windows 10?

Tôi làm theo phương pháp của anh ấy và lấy nhật ký khởi động.

Trong trường hợp của tôi, đó là vmtoolsd.execài đặt tiếp tục đặt dưới giá trị đăng ký thành 1, hoàn toàn đánh bại powercfg /h off.

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Power\HibernateEnabled

Cái vmtoolsd.exethuộc về VMware Tools.

Sau khi tôi gỡ cài đặt nó, nó hiberfil.syskhông bao giờ được tạo lại.


-2

Một nửa câu trả lời:

Trên Windows XP, đây là một giải pháp dễ dàng và lâu dài:

  1. xóa hiberfil.sys bằng lệnh này (với quyền quản trị viên): powercfg -h off

  2. tạo một thư mục có tên "hiberfil.sys" tại C: \

Thật không may, Win7 "thông minh" hơn XP và giết chết thư mục này, bỏ qua mọi kết hợp quyền sở hữu / quyền mà tôi đã thử. Nhưng đôi khi thư mục hiberfil.sys của tôi vẫn tồn tại trong một lần khởi động lại mà không bị thay thế. Điều thú vị là hệ thống dường như tạo lại tệp gốc sau vài giây, cửa sổ của C: \ xuất hiện trên màn hình nền.

Và cảm ơn bạn vì downvote đầu tiên của tôi :)


Đó có thể không phải là một ý tưởng tồi - bạn có thể đặt quyền của nó để ngay cả Hệ thống cũng không thể xóa nó (mà không cần thay đổi quyền trước tiên). Tất nhiên, win7 có thể đơn giản từ chối khởi động.
Hugh Allen

@Hugh: Có thể mã ngủ đông, là một phần của kernel, sẽ bỏ qua ACL.
grawity
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.