Перейти к контенту ↓


Hibernate — как много в этом звуке… муки

Теория

К большому сожалению для всех пользователей персональных компьютеров, среди производителей железа и ПО все ещё царит разброд и шатание. Каждый новый компьютерный стандарт рождается в муках и борьбе с конкурирующими фирмами, пытающимися продвигать свои собственные разработки вместо того, чтобы ко всеобщей пользе договариваться о единых спецификациях. За примерами далеко ходить не надо — достаточно вспомнить всё тот же DVD или безуспешные попытки найти универсальную замену дешёвому, но давно изжившему самого себя флопповоду.

Когда подобные дрязги касаются отдельных блоков ПК — это ещё полбеды, гораздо хуже, если чёткого следования стандартам не наблюдается среди разработчиков основы компьютера — материнской платы. Так, подавляющее большинство современных материнских плат считаются ACPI-совместимыми. На деле же оказывается, что они поддерживают лишь некоторый набор стандартов этого интерфейса, оставляя за кадром часть других его рекомендаций. Отчасти именно по этой причине одним из самых часто задаваемых пользователями вопросов сегодня является «Почему у меня не работает Спящий режим?».

Но обо всём по порядку. Не так давно на смену систем с APMAdvanced Power Management (Расширенное управление питанием) пришли компьютеры, разработанные с учётом новой спецификации ACPIAdvanced Configuration and Power Interface (Расширенный интерфейс конфигу­рирования ПК и управления питанием). ACPI — не ОС или программа. Это — некий меж­плат­форменный интерфейс или набор рекомендаций, т.н. «спецификаций», которые были приняты рядом ведущих компьютерных компаний (Intel, Microsoft, Toshiba и Phoenix) чтобы добиться стандарти­зированного и улучшенного метода конфигу­рирования и управления питанием в компьютере. Начальный акцент касался, конечно, портативных ЭВМ, для которых рациональное управление питанием было одной из главных задач, но с появлением Windows 98 это ново­введение коснулось и PC. В сегодняшних моделях компьютеров благодаря ACPI назначаются прерывания и рас­пре­деляются ресурсы между различными устройствами, система получает информацию об их функцио­нировании, используются различные энерго­сберегающие режимы. Таким образом, главная задача ACPI — обеспечение взаимо­действия между ОС, аппаратными средствами и системным BIOS. Однако по не вполне понятным причинам (а, вернее, всё из-за того самого разброда) решается она в действи­тельности не лучшим образом, что особенно ярко проявляется в отношении ново­модного энерго­сберегающего режима Hibernate (Спячка).

Но для чего, собственно, нужны все эти прибамбасы со снижением потребления электричества? Отчасти это дань усилиям всевозможных экологических организаций и законов, направленных на охрану окружающей среды. Однако для пользователя главное их достоинство состоит именно в управлении питанием, в возможности очень быстро привести компьютер в работо­способное состояние после длительного перерыва. Согласитесь, чрезвычайно удобно, если система готова пробудиться за несколько секунд, чтобы принять входящее обращение по телефону или ответить на запрос по локальной сети. В перспективе это даёт возможность системе авто­мати­чески включать и выключать не только периферийные устройства типа CD-ROM, сетевых плат, жёстких дисков и принтеров, но и внешние бытовые приборы, связанные с ПК типа видео­магнитофонов, теле­визоров, телефонов и стерео­систем. С этой технологией и сами периферийные устройства могут активи­зировать ПК. Например, установка кассеты в видео­магнитофон может включить компьютер, который, в свою очередь, активизирует теле­визор и аудио­систему домашнего кинотеатра.

Вряд ли есть смысл распространяться о преимуществах, недостатках и особенностях нового стандарта — более подробную информацию о взаимо­связанных технологиях ACPI, SIPC и OnNow вы найдёте в Интернете, например, на сайте www.microsoft.com/hwdev/ [1] или на куда более понятном и близком простому российскому юзеру iXBT.com [2]. Нас же сейчас интересует только одна сторона этого вопроса — Великая Проблема Спящего режима.

Hibernate

На сегодня имеются два наиболее продвинутых режима энерго­сбережения: во-первых — это Suspend To Ram (STR), при котором останав­ливаются жёсткие диски, выключается монитор, мощность, подводимая к большинству компонентов, уменьшается (или снимается совсем), работа CPU приостанав­ливается, и в идеале — только RAM остаётся активной, сохраняя все наработанные до перехода в Suspend данные. Потребление энергии, таким образом, достигает минимума, но при первом же обращении к ПК, например, при движении мышью или входящем звонке, он «просыпается» и готов к работе уже через пару секунд. В результате становится возможно во многих случаях избежать длительной и утомительной процедуры загрузки ПК после его полного выключения. Однако если в этом режиме пропадёт электро­питание или у ноутбука разрядятся батареи, то все данные из памяти будут потеряны, что не есть хорошо. К сожалению, в настольных компьютерах полностью этот режим не часто реализуется из-за того, что многие материнские платы не умеют обесточивать все компоненты ПК по отдельности, поэтому вместо него используется более простой Ждущий режим (Stand By), при котором и с некоторых других устройств помимо RAM питание не снимается.

Но, дабы избежать неожиданной потери данных при разрядке аккумулятора, в пере­носных компьютерах появилась более подходящая для ноутбуков функция Suspend To Disk или HibernationСпящий режим, при переходе в который вся информация из оперативной памяти записывалась в специальный файл или раздел на жёстком диске, после чего снималось питание вообще со всех узлов ПК без исключения. При последующем включении компьютера после прохождения стандартной процедуры проверки POST происходила не загрузка ОС, а недолгое считывание этого файла, в результате чего Рабочий стол системы восстанавливался точно таким же, как он был перед выключением ПК — запущены все те же приложения и открыты документы, с которыми пользователь работал до перехода в «спячку». Разумеется, времени на пробуждение уходило в этом случае больше, чем при переходе в Suspend, но всё равно гораздо меньше, чем на полноценную загрузку системы и всех используемых приложений.

В ноутбуках это достигалось средствами BIOS. С выходом же Windows 2000 и Windows Me Спящий режим стал поддерживаться не только BIOS, но и самой ОС (т.н. OS-controlled ACPI S4 sleep state, те есть контролируемый ОС режим ACPI S4, то есть Hibernate), при этом для Windows гораздо предпочтительнее её собственный механизм управления электро­питанием, чем то, что даёт BIOS. В принципе, Спящий режим может присутствовать и на системах с Windows 98, но это происходит очень редко, поскольку здесь, как в случае с ноутбуками, необходима его реализация на уровне BIOS, в котором дело часто ограничивается лишь режимом Stand By. Аналогично не обязательно (но желательно) наличие и самого ACPI-совместимого BIOS, так как на некоторых старых системах, оснащённых только APM, Hibernate вполне успешно работает, в частности, если используется Windows 2000, чуть более качественно управляющая этим режимом. В общем, условий много, и всё так запущено…

И вот именно этот, граничащий с шаманством Спящий режим является самым лакомым куском новой технологии для многих пользователей ПК. Конечно, в Windows Me всё равно приходится несколько раз в день полностью пере­загружать ПК из-за нестабильности ОС и приложений для неё, но вот в Windows 2000 вполне реально месяц-два погружать ПК исключительно в «зимнюю спячку», забыв о его выключении. Если учесть, сколько времени грузится «винтукей», то польза Спящего режима очевидна.

Таким образом, если ваш ПК достаточно современный, и фортуна не повернулась к вам задом, то режим Hibernate уже присутствует в вашей системе — его надо только включить. Для этого в диалоге «Параметры электро­питания» (Power Options) Панели Управления на вкладке «Спящий режим» (Hibernation) просто установите флажок, разрешающий использование этого режима. Теперь внимание! Сразу после этого сделайте резервную копию реестра, запустив, например, системную утилиту Scanregw.exe, производящую резервирование после проверки реестра на ошибки. Дело в том, что Спящий режим также легко потерять, как и включить. Теперь, в меню «Пуск» жмите «Выключить компьютер» и выбирайте опцию «Спящий режим». Компьютер погрузится в сон. Через пару минут (быстрое повторное включение вредно для жёстких дисков) попробуйте его разбудить, нажав кнопки на клавиатуре или пошевелив мышью. Повторите эту процедуру несколько раз. Если всё благо­получно и претензий к этому режиму нет, то дальше читать не обязательно. Если же ПК в целом или отдельные его компоненты ведут себя нестабильно, то вы — мой клиент 🙂.

Очень возможен также вариант, когда в «Параметрах электро­питания» вообще не окажется вкладки, отвечающей за Спящий режим. В этом случае отчаиваться не стоит, так как всё-таки имеется возможность добиться её появления.

Предварительная проверка совместимости

Итак, если вкладка «Спящий Режим» отсутствует, то, во-первых, посмотрите, установлена ли поддержка ACPI, одно из главных условий полноценной работы Hibernate в вашей системе. Дело в том, что при инсталляции Windows ACPI авто­мати­чески устанавливается только на те ПК, которые имеют ACPI-совместимый BIOS, известный Windows и датированный после 12/01/1999. Для этого откройте Панель управления → «Система» → «Устройства» → «Системные устройства» («Control Panel» → «System Properties» → «Device Manager» → «System Devices»), выберите способ отображения устройств «by connection» (по подключению) — и если самым первым устройством окажется Advanced Configuration and Power Interface (ACPI) BIOS, то ACPI установлен. Большинство других аппаратных средств должно быть скрыто позади плюса «+», кроме «Поддержки процессора» («Processor support») и «Системной платы» («System board»), а также Сетевых адаптеров («Networking Adapters»). Все другие элементы, находящиеся вне плюса — ACPI-несовместимые аппаратные средства, то есть они не управляются ACPI и могут вызвать некоторые проблемы. Если же это не так, и ACPI на вашей системе не установлена, то можно попробовать установить поддержку ACPI вручную. Но об этом позже, а пока начнём с определения того, что ещё является обязательными условиями поддержки Спящего режима, цели наших исследований:

  • BIOS поддерживает ACPI или APM 1.2;
  • аудио­драйверы стандарта WDM (отсутствуют VxD-драйвера);
  • драйвера модема стандарта WDM; совместимый с APM драйвер сетевой карты;
  • отсутствие SCSI-контроллера (касается только Windows 9x, в Windows 2000 контроллер может быть);
  • отсутствие устаревших видео­карт и устройств захвата видео;
  • WebTV® for Windows не должна быть установлена;
  • Internet Connection Sharing (ICS) не должен быть установлен;
  • драйвер видео­карты с поддержкой Hibernation.

На самом деле, всё это очень зыбко, и даже если BIOS материнской платы полностью поддерживает ACPI, то совсем не обязательно, что весь ПК совместим с этой спецификацией, так как в нём могут быть установлены устаревшие устройства, не совместимые с каким-либо режимом ACPI. Поэтому желательно также проверить соответствие всей системы стандарту ACPI с помощью утилиты ACPIHCTv1.61, имеющейся на сайте www.microsoft.com/hwdev/acpihct.htm [3]. Если она покажет, что ПК не совместим с ACPI, то шансы обрести Hibernate серьёзно падают. Другой тест используется уже при установленной ACPI и может выявить причины проблем, возникающих, например, при выключении ПК или попытке перейти в режим Suspend. Утилита, его осуществляющая, называется PM Troubleshooter [4], однако она поможет выявить мешающий драйвер только в том случае, если ПК не зависает совсем при переходе в режимы Suspend и Hibernate, так как если после зависания ПК вы его пере­загрузите, то, естественно, собранные «траблешутером» данные потеряются. Полезно будет также посетить страничку www.microsoft.com/hcl/default.asp [5], где приведена таблица совместимости аппаратных средств с операционными системами Windows, так как только полная совместимость всех компонентов ПК обеспечит все функции ACPI. В то же самое время, некоторые функции ACPI будут доступны и без полной совместимости. Так что, из любого правила есть исключения, и неудача этих испытаний не подразумевает, что ACPI не будет работать, как, например, имеет место быть с материнской платой Intel AL440LX.

Больше всего проблем с Hibernate в Windows Me (если не считать Windows 98, где он почти не встречается). Многие пользователи обнаруживают, что на их ПК в Windows 2000 спящий режим есть, а в Windows Me — нет. Это нормальное явление, дело в том, что слишком различаются эти операционные системы, по-разному они работают с оборудованием и используют разные модели драйверов. В принципе, есть шанс попробовать использовать для проблемного устройства драйвер Windows 2000 и в Windows Me (если он стандарта WDM), что может решить проблему, однако особенно надеяться на это не стоит, так как система Windows Me более новая и все включённые в неё драйвера, по идее, тоже должны поддерживать Hibernate (хотя на деле это далеко не так).

Если же вам не повезло, и Спящий режим отсутствует, несмотря на наличие ACPI-совместимого BIOS, то для начала найдите в папке Windows файл Nohiber.txt. В нём будут пере­числены драйверы или устройства, которые препятствуют использованию данного режима. Как правило, это драйверы старых типов, не соответ­ствующие спецификации WDM. Чтобы спящий режим заработал, их необходимо заменить на драйверы, входящие в состав Windows Me или специально написанные для неё драйверы WDM. Учтите, однако, что Спящий режим может быть недоступен из-за того, что сразу несколько устройств не удовлетворяют необходимым требованиям, однако в документе Nohiber.txt всегда отображается только одна (первая найденная) причина. Таким образом, необходимо устранять неисправности поочерёдно, например, удаляя из корпуса ПК одно устройство за другим и после каждой пере­загрузки анализировать ошибки, зафиксированные в файле Nohiber.txt. Наиболее часто причиной отсутствия функции «Спящий режим» являются SCSI-адаптеры.

В той же папке может находиться файл Susfail.txt, в котором регистрируются уже причины проблем с уходом в «спячку» или режим Suspend. Так, если Спящий режим включён, а компьютер, тем не менее, уходить в него не хочет или возникают другие сбои, то загляните в этот файл. В нём будет указано устройство, отказавшееся корректно уйти в «спячку». Ещё одной причиной отсутствия Спящего режима может оказаться нехватка места на диске, поскольку для записи содержимого оперативной памяти на винчестер необходимо место, равное размеру самого ОЗУ. При этом файл, в который сбрасывается образ оперативной памяти, в Windows Me называется VMMHIBER.W9X и находится в папке Windows. В Windows 2000 файл расположен уже в корне системного диска и носит имя HIBERFIL.SYS. Так что не пугайтесь большого размера этих непонятных файлов.

Итак, что следует конкретно делать, если, несмотря на все усилия, спящий режим работать категорически отказывается либо работает нестабильно? Вообще говоря, возможны несколько вариаций подобной проблемы:

  • ваша система ACPI-совместима, но режим Hibernate вы никогда даже не видели — он отсутствует сразу же после установки ОС. Тут может быть причиной какое-то изначально установленное устройство или, например, то, что за управление питанием и контроль над железом «дерутся» BIOS и операционная система и никак не могут его поделить между собой;
  • Hibernate раньше был, но потом неожиданно пропал и в свойствах управления питанием исчезла вкладка, на которой он включается. Это может происходить, например, в том случае, если система дважды потерпела неудачу при попытке перейти в Hibernate — некстати хитрая Windows тогда решает, что стабильность системы важнее спящего режима и, дабы не вводить юзера во искушение, прячет от него эту вкладку;
  • ваш ПК слишком старый, и его BIOS поддерживает только APM, либо Windows не хочет признавать, что BIOS ACPI-совместимый.

Во всех трёх случаях вернуть Hibernate, в принципе, возможно.

Не было и нет…

Если вам не посчастливилось обнаружить вкладку «Спящий режим» сразу после установки ОС, то первым делом необходимо проверить настройки CMOS Setup. В меню «Power Management» необходимо установить:

  • ACPI Function: Enabled (Только если вы уверены, что ваша машина на 100% совместима с ACPI (включая все приложения и аппаратные средства), иначе это должно быть установлено на «Disabled»)
  • Power Management: Disable (только если BIOS имеет опцию PM Control By APM)
  • PM Control by APM: No (тут иногда успешной оказывается и установка «Yes»)
  • Video Off Method: DPMS
  • Video Off After: N/A
  • MODEM Use IRQ: N/A (либо установите требуемое прерывание)
  • Doze Mode: Disabled
  • Standby Mode: Disabled
  • Suspend Mode: Disabled
  • HDD Power Down: Disabled
  • Throttle Duty Cycle : N/A
  • Reload Global Timer Events : Disabled
  • В разделе PNP,PCI & Onboard I/O Setup установите: PNP OS Installed: Yes (хотя иногда помогает «No»)
  • В разделе «Wake Up Events»: VGA: On, PCI Master: On

В «IRQ Activity Monitoring» для Wake Up Events нужно разрешить использовать для пробуждения прерывания AGP-видео­карты (или PCI) и PS/2-мыши (IRQ12). Остальные прерывания отключить.

Затем удалите из корпуса ПК все платы расширения кроме видео­карты и отключите все периферийные устройства — если причиной несчастий было какое-то устройство, то это поможет его выявить, когда впоследствии вы будете подключать все платы по-очереди. Так, например, даже громкоговорители Altec Lansing Multimedia USB Speakers — ACS-495 напрочь отключают Спящий режим. Учтите также, что на большинстве материнских плат AGP-видео­карта совместно использует одно и то же прерывание, что и расположенный рядом PCI-слот, поэтому при установке плат расширения оставьте соседний с видео­картой слот пустым. Вообще говоря, совместное использование прерываний несколькими устройствами (IRQ sharing) — хоть и совершенно нормальное явление, но на деле — большая головная боль, часто блокирующая Спящий режим. Если именно IRQ sharing мешает вашей системе, то в файле NOHIBER.TXT будет запись BAD IRQ HOLDER. Избавиться от этого почти нереально, хотя попытаться можно. Для этого в Панели управления откройте диалог «Система» и на вкладке «Устройства» («Device Manager») выберите «Системные устройства» («System Devices»). Откройте свойства шины PCI («PCI Bus») и на вкладке «Управление IRQ» («IRQ Steering») снимите флажок «Использовать управление IRQ» («Use IRQ Steering»), после чего пере­загрузите ПК. Попробуйте также поэкспери­ментировать с рас­пре­делением прерываний через CMOS Setup.

Далее, установите все сервис-паки и заплатки для операционной системы. Так, Windows 98 (не SE) без пакета обновлений неправильно работает даже с режимом Suspend, а SP2 для Windows 2000 устраняет просто море проблем, препятствующих работе Hibernate. Разумеется, в Windows 98SE надо в обязательном порядке установить известный патч «Windows Shutdown Supplement», а также установить для всех систем Windows 9x заплатку «IDE Hard Drive Cache Package», решающую проблемы слишком быстрого снятия питания с жёсткого диска. Найдёте всё это на странице corporate.windowsupdate.microsoft.com [6]. В Windows 98, где вообще проще обозначить конфигурацию, полностью поддерживающую Hibernate, чем рассказывать о причинах его неработо­способности, Спящий режим иногда может отсутствовать, если установлена файловая система FAT32 — попробуйте временно перейти на FAT16 — вдруг повезёт? Также в Windows 98 Спящему режиму не нравится, если файл подкачки расположен не на том же диске, что и ОС — верните управление виртуальной памятью операционной системе. В «Миллениуме» проблема со свап-файлом уже устранена, так что всегда есть смысл использовать наиболее свежие версии операционных систем. Наконец, обновите все драйверы, доступные для ваших аппаратных средств — в особенности, видео­карты. Учтите, что это должны быть только WDM-драйверы.

Часто причиной неработо­способности Hibernate оказывается и материнская плата, вернее, её BIOS, причём пользователи нередко жалуются на платы с чипсетами VIA. В этом случае есть шанс, что все проблемы разрешатся с прошивкой свежей версии BIOS или установкой всех драйверов от производителя чипсета, хотя, например Asus P2B, согласно некоторым данным, ни при каких условиях не поддерживает Hibernation.

Ах, куда ты удалилась?..

Как я уже говорил, при двукратной неудаче с переходом в спячку, ОС авто­мати­чески убирает вкладку «Спящий режим» диалога управления электро­питанием. К сожалению, мне не удалось выяснить, какой параметр реестра отвечает за её отображение, поэтому если вы вовремя это заметили, то, вероятно, лучшим способом её вернуть будет полное восстановление реестра из резервной копии, сделанной в то время, когда эта вкладка ещё была. После этого необходимо разобраться в причинах такого поведения ОС. А причин пользователями компьютеров выявлено уже множество. Тут опять помогут прояснить ситуацию файлы Nohiber.txt и Susfail.txt. В них будет отражена наиболее вероятная причина проблем — обычно ей оказывается новый драйвер какого-то устройства, несовместимый с Hibernate. Поэтому крайне желательно заботиться о сохранности режима Hibernate с помощью деинсталляторов, позволяющих максимально точно вычищать систему в случае неудачной установки нового драйвера. То есть, если после обновления драйвера Hibernate пропал, то делайте полный откат настроек системы к состоянию, предшествующему установке драйвера. При этом необходим откат не только настроек реестра, но и возврат предыдущих версий файлов драйвера.

В столь неблаговидном поведении на сегодня уже замечены Iomega Ditto Tools, драйвера Creative Labs Sound Blaster, драйвера контроллера жёстких дисков от Highpoint, видео­карты GeForce, модема Creative Modem Blaster USB DE5670, драйвера мышей Genius и Logitech — ищите их самые последние версии от производителя оборудования, совместимые с Hibernate и соответ­ствующие стандарту WDM, либо экспери­ментируйте с драйверами из состава Windows. Похожая ситуация случается с драйверами от Adaptec, устанавливаемыми вместе с Windows Media Player 7. Если после его инсталляции вы распрощаетесь со Спящим режимом, то достаточно удалить не весь проигрыватель, а лишь пере­установить его без поддержки записи дисков CD-R. Правда, иногда происходит обратное, и более старый драйвер устройства или прошивка BIOS работает с Hibernate, а новый — отказывается. Подобная неприятность происходит, например, с драйвером Intel Ultra ATA Storage Driver — некоторые его свежие версии «отрубают» спящий режим. Драйвера видео­карты рекомендуется использовать от их производителя, поскольку то, что имеется в составе Windows (например, драйвер стандартного VGA-адаптера), зачастую вызывает проблемы. Проверьте также вкладку Device Manager (Устройства) в свойствах системы — проблемные и отключённые устройства могут деактивировать Hibernate. Обратите также внимание на то, какое прерывание использует ACPI — часто ему почему-то нравится IRQ 5, предназначенное изначально для звуковой карты. Поэтому владельцам Sound Blaster Live!, возможно, придётся отключить Creative SB16 Emulation; владельцам Sound Blaster AWE32 — отключить COM-порт, а при наличии Sound Blaster PCI64 — отключить Legacy Device for DOS, дабы избежать конфликта рас­пре­деления ресурсов.

Аналогичные проблемы могут быть и при установке программ, использующих свои собственные драйверы виртуальных устройств. Тут должна бы спасать обычная деинсталляция приложения, поскольку Microsoft обещает, что после устранения причины неполадок режим Hibernate авто­мати­чески возвращается, однако лучше подстраховаться деинсталлятором, делающим более полный откат, нежели стандартный диалог «Установка-удаление программ». В качестве деинсталлятора подойдёт и встроенный в WindowsMe System Restore и более надёжный от стороннего производителя, например, мой любимый Ashampoo Uninstaller [7]. Если же вы пренебрегли деинсталлятором, то попробуйте хотя бы восстановить реестр из резервной копии и вернуть предыдущие версии системных файлов из дистрибутива Windows, воспользовавшись утилитой SFC.EXE — Проверка системных файлов, правда, она изначально присутствует только в Windows 98 и в «Миллениуме» не спасёт, если только вы предварительно не скопировали её туда из Windows 98.

Среди программ отмечены проблемы с Norton AntiVirus, Norton System Works, McAfee AntiVirus, с некоторыми файерволлами. Вообще, многие старые версии антивирусов несовместимы со Спящим режимом. Некоторые трёх­мерные скрин­сейверы не дают системе нормально заснуть — откажитесь от них. Internet Connection Sharing из состава Windows Me категорически не рекомендуется — то, что он пред­намеренно отключает «гибернацию», честно признаёт сама Microsoft. В Windows 2000 аналогично ведёт себя служба Terminal Services, деактивирующая и «гибернацию» и Ждущий режим. Сбои Спящего режима иногда вызывают и работающие в момент выключения ПК фоновые программы, поэтому есть смысл сократить число фоновых задач до необходимого минимума с помощью утилиты MSCONFIG.EXE, а также закрывать ненужные приложения при погружении ПК в спячку.

Попробуйте очистить диск от временных файлов, забываемых обычно в папке C:\WINDOWS\TEMP или C:\TEMP — на пере­полненном мусором диске в один прекрасный момент не окажется места под файл-образ ОЗУ. Особенно опасны в этом плане утилиты типа Norton Protected Bin — при их использовании образуется как бы скрытая битком набитая корзина, а система при этом неадекватно отображает свободное место на диске, вводя пользователя в заблуждение. Откажитесь от сетевых дисков, отключите авто­запуск (autorun) для всех дисков.

Само железо также может быть причиной отказа ПК заснуть, например, подключённые к ECP-порту много­функцио­нальные агрегаты типа принтер+факс+сканер, USB-устройства (веб-камеры в том числе) или устройства FireWire — попробуйте их выключить перед тем, как отправить ПК в сонное царство. Иногда устройства честно заявляют ОС, что они не дружат с Hibernate, прописывая в реестр параметр DisHiber с некоторым двоичным значением. Попытайтесь найти в реестре все такие параметры и изменить их на "DisHiber"=hex:00,00,00,00. Хотя, получится ли из этого что–то путное — не уверен. «Гибернейту» иногда не нравятся мульти­мониторные конфигурации — откажитесь от них. Добавление большего количества (192 мегабайта и более) оперативной памяти, бывает, вызывает проблемы — тут может помочь только соответ­ствующая заплатка с сайта Windows Update. Да и чрезмерный разгон процессоров и их перегрев негативно сказываются на работо­способности ACPI в целом. Откажитесь от разгона и сбросьте установки CMOS Setup. Если система не смогла проснуться после перехода в спячку, то попробуйте отключить параметр «Fast R-W Turn Around» в CMOS Setup.

Если же пропала возможность войти даже в Ждущий режим, то запустите MSCONFIG.EXE и на странице «General» → «Advanced» («Общие» → «Дополнительно») установите флажок «Enable DeepSleep» — этот режим должен вернуться.

Старый

Последний вариант — Windows не видит совместимости вашего ПК с ACPI и, следовательно, не хочет включать Спящий режим. При таком раскладе стоит рискнуть и установить ACPI вручную (резервную копию реестра сделать не забыли?). Для этого существует два метода. Первый наиболее надёжен: пере­установить Windows с параметром программы установки системы /P J, то есть, введя в командной строке SETUP /P J. В этом случае Windows не будет обращать внимания на дату BIOS и включит поддержку ACPI принудительно. Если же этот номер не пройдёт, и поддержки ACPI вы всё равно не получите, значит, это невозможно в принципе — обновите BIOS, смените саму материнскую плату, либо ограничьтесь APM. Крайне желательно пере­установку ОС производить «по-голому» — «глюков» будет меньше, и шансы получить Hibernate повысятся.

Второй способ приводит к успеху реже, но не требует пере­установки ОС. В разделе реестра

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Detect

создайте новый строковый параметр с именем ACPIOption и значением 1. Это также заставит Windows не реагировать на версию BIOS компьютера и установить поддержку ACPI, если только она реально имеется. Далее в Панели управления запускайте апплет «Установка оборудования» («Add New Hardware») и разрешите Windows произвести поиск новых устройств. Если по завершении этой процедуры ОС найдёт ACPI BIOS и предложит удалить PnP BIOS, то вы добились желаемого. Скопируйте дистрибутив Windows на жёсткий диск («Миллениум» уже хранит все свои установочные файлы на диске), так как после пере­загрузки CD-ROM будет временно недоступен, и дайте ОС пере­установить драйвера оборудования. Если после этого в списке устройств окажутся дубли и индикаторы конфликтов, то просто удалите то устройство из конфликтной пары, которое не имеет значка восклицательного знака.

Если же все эти трюки не помогут, несмотря на то, что вы скрестите все 20 пальцев между собой и будете параллельно призывать на помощь духов усопших товарищей по неравной борьбе с Windows, то не отчаивайтесь: глючных и неработающих стандартов на ваш век ещё хватит, и многие весёлые деньки, проведённые в настройке очередного Plug-and-Pray, вам гарантированы.




Темы