Действительно ли возможно препятствовать тому, чтобы Windows удалил, в спящем режиме файл (hiberfil.sys), когда закрыто?

Я пытаюсь переместить быть в спящем режиме файл от системного раздела (SSD) к некоторому другому разделу (жесткий диск).

Я знаю, что много людей говорит, что это невозможно, но я еще не полностью убежден.

То, что я пытаюсь сделать:

  1. Загрузитесь из Windows 7 DVD;
  2. Копия hiberfil.sys от SSD до жесткого диска;
  3. Удалить hiberfil.sys от SSD;
  4. Создайте символьную ссылку для hiberfil.sys на SSD;

К сожалению, когда я загружаюсь из Windows 7 DVD, я печально нашел, что hiberfil.sys файл не был там. Я помню, что читал где-нибудь, что Windows автоматически удаляет hiberfil.sys файл, когда закрыто.

Действительно ли возможно препятствовать тому, чтобы Windows удалил hiberfil.sys файл, когда закрыто?

Спасибо


Обновление:

Кажется, что Windows на самом деле не удаляет hiberfil.sys файл, когда закрыто. Это были Инструменты VMware, автоматически отключенные, в спящем режиме, когда закрыто / запускают.

7
задан 07.04.2011, 11:46

2 ответа

Нет, Вы не можете переместить его.

Во время Windows времени начальной загрузки (и Ваш BIOS) использует минимальную систему файлового ввода-вывода для определения местоположения загрузочного диска, и файлы должны были закончить начальную загрузку (включая драйверы файловой системы). Так как файл спящего режима содержит состояние системы перед завершением работы, это необходимо на самом деле начальная загрузка к 'полной' файловой системе.

Если Вы были вокруг со дней DOS, можно не забыть иметь необходимость использовать "SYS" для создания диска загрузочным; Вы не могли только скопировать загрузочные файлы (msdos.sys, io.sys, и т.д.) к диску и иметь его работа, becuase им нужно (редактор), чтобы быть в определенном адресе на диске, таким образом, система знала, где найти, что они загружают фактическую ОС. То же соглашение здесь...

Вот хорошая аннотация об этом:

Спящий режим следует за подобным шаблоном. Будучи в спящем режиме операционная система означает выводить все содержание памяти в файл спящего режима; восстановление от спящего режима влечет за собой всасывание, что файл назад в память и притворство ничего произошел. Снова, это - другая проблема курицы-и-яйца: для загрузки файла спящего режима Вам нужен драйвер файловой системы, но драйвер файловой системы находится в файле спящего режима. Если Вы сохраняете файл спящего режима в корневом каталоге загрузочного диска, миниатюрный драйвер файловой системы может использоваться вместо этого.

Можно считать остальную часть статьи здесь.

5
ответ дан 07.12.2019, 15:00

Запрещение удаляет (если существует SID),

Сначала удостоверьтесь это hiberfil.sys не наследовал полномочия, убедиться добавить полномочия.

Затем удостоверьтесь для каждого пользователя, который имеет доступ за исключением способности удалить файл:

enter image description here

Таким образом, файл не может быть удален, если существует, по крайней мере, присоединенный идентификатор безопасности.

Взгляд на то, что Microsoft должна заявить о файле спящего режима.

Когда пользователь впоследствии включает компьютер, нормальный процесс начальной загрузки происходит, за исключением того, что проверки Bootmgr на и обнаруживают допустимое отображение памяти, сохраненное в файле спящего режима. Если файл спящего режима содержит сохраненное состояние системы, Bootmgr запускает Winresume, который читает содержание файла в память и затем возобновляет выполнение в точке в памяти, которая зарегистрирована в файле спящего режима.

Если Windows позволил установке BCD сообщить Bootmgr резюме спящего режима, это ярлыки процесс начальной загрузки путем запуска Winresume.exe, который считает содержание файла в память и передаст управление для кодирования в ядре, которое возобновляет бывшую в спящем режиме систему. Тот код ответственен за перезапуск драйверов, которые были активны, когда система была закрыта. Hiberfil.sys будет допустим, только если в прошлый раз компьютер был закрыт, он был в спящем режиме.

После того, как Bootmgr включает защищенный режим, это является полностью операционным. Однако это все еще полагается на функции, предоставленные BIOS для доступа к основанной на IDE системе и загрузочным дискам, а также дисплею. Соединяющие интерфейсом с BIOS функции Bootmgr кратко переключают процессор назад на режим, в котором услуги, предоставленные BIOS, можно выполнить, назвать реальным режимом. Bootmgr затем читает файл BCD из \Boot каталога с помощью встроенного кода файловой системы.

Bootmgr содержит код NTFS только для чтения (Bootmgr также поддерживает другие файловые системы, такие как FAT, El Torito CDFS, UDFS и файлы WIM); в отличие от кода загрузочного сектора, однако, код файловой системы Bootmgr может считать подкаталоги.

— Windows Internals

Так, нет, поскольку это использует встроенный код файловой системы, делание этого простым способом, скорее всего, невозможно.

Лучшее, которое Вы могли попробовать, должно изменить BCD:

HKEY_LOCAL_MACHINE\BCD00000000\Objects\{db7f3566-bd6f-11df-b716-db3964014abb}\Elements\22000002\Element

Возможно, Вы могли попытаться изменить его к X:\Some\Path\To\Whatever\File.Ext или полностью определенный путь.

Решение, которое будет верная работа, которая делает Ваш вопрос возможным.

  1. Установите свой Windows на Вашем жестком диске.

  2. Переместите все в свой SSD за исключением hiberfil.sys файл.

  3. Создайте точки соединения ко всему на Вашем SSD.

Вы также можете уменьшить масштаб размера файла спящего режима.

Можно сделать это к 50%-му использованию powercfg.exe

-HIBERNATE, -H
        Enables-Disables the hibernate feature.  Hibernate timeout is not
        supported on all systems.

        Usage: POWERCFG -H <ON|OFF>
               POWERCFG -H -Size <PercentSize>
        -Size  Specifies the desired hiberfile size in percentage of the
               total memory. The default size cannot be smaller than 50.
               This switch will also enable the hiberfile automatically.
2
ответ дан 07.12.2019, 15:00

Теги

Похожие вопросы