Windows 7 виснет при загрузке в безопасном режиме

К сожалению, начиная с версии Windows Vista, можно заметить, что достаточно часто возникают проблемы «вылета» системы, после чего даже в безопасном режиме она виснет после загрузки (CLASSPNP.SYS – последний компонент, на котором происходит остановка).

К сожалению, начиная с версии Windows Vista, можно заметить, что достаточно часто возникают проблемы «вылета» системы, после чего даже в безопасном режиме система виснет после загрузки (CLASSPNP.SYS – последний компонент, на котором происходит остановка). Давайте посмотрим, с чем это может быт связано, и как восстановить работоспособность Windows.

Не грузится CLASSPNP.SYS: причины

Что касается причин появления такой нелицеприятной ситуации, то их может быть достаточно много. Обычно даже при перезагрузке с использованием клавиши F8 (Safe Mode) система вроде бы должна вести себя нормально. Но тут вдруг почему-то некий компонент, в нашем случае CLASSPNP.SYS, не грузится в безопасном режиме.

classpnp sys не грузится в безопасном режиме

Вообще, такое явление может наблюдаться, скажем, при банальном заражении компьютерной системы вирусом, нарушении целостности или в связи с отсутствием самого файла CLASSPNP.SYS, а также при возникновении конфликтов со сторонними приложениями или во время сбоев в работе загрузчика системы.

Windows не загружалась (CRCDISK.SYS, CLASSPNP.SYS): последствия

В целом же, такие сбои наиболее характерны для двух системных библиотек – CRCDISK.SYS и CLASSPNP.SYS. Первая является средством проверки жесткого диска, вторая отвечает за режим работы винчестера SCSI. Нарушения в их работе являются просто катастрофичными. Располагаются эти компоненты в системной папке drivers каталога System32 корневой директории Windows. Понятно, что их повреждение влечет за собой негативные последствия. В некоторых случаях бывает невозможным даже произвести восстановление Windows. Но обо всем по порядку.

Не работает безопасный режим: что делать?

Итак, имеем ситуацию, когда системная библиотека CLASSPNP.SYS не грузится в безопасном режиме. Признаками такого сбоя может быть полное зависание на загрузке этого компонента. А в некоторых случаях – даже появление BSoD (того, что принято называть синим экраном смерти).

система виснет после загрузки classpnp sys

Исходя из причин, указанных выше, и будем принимать решение по устранению последствий такого сбоя. Для начала рассмотрим вопрос отката системы, предположительно исходя из того, что файл все-таки на винчестере присутствует и не поврежден (причина сбоя может крыться и в другом).

Восстанавливаем систему

Когда, например, Windows 7 зависает на загрузке CLASSPNP.SYS, можно попробовать повторное использование загрузчика с применением клавиши F8, но только после входа в меню стоит выбирать не безопасный режим, а загрузку последней удачной конфигурации.

windows 7 зависает на загрузке classpnp sys

В принципе, если сам файл не поврежден, то есть причина абсолютно с этим не связана, достаточно часто восстановление происходит без всяких проблем. Однако не всегда. Бывает и такое, что при попытке отката, когда появляется окно параметров восстановления, система входит в такой себе бесконечный поиск. В таком состоянии она может провисеть очень долгий промежуток времени. Что делать в этом случае? Попробуем использовать несколько универсальных средств.

Проверяем систему на вирусы

Если наблюдается ситуация, когда загрузка Windows 7 останавливается на CLASSPNP.SYS, весьма вероятным является заражение компьютера или ноутбука каким-то вирусом. Собственно, его-то и нужно удалить или изолировать. Но как это сделать, ведь система не загружается, а штатный антивирус или какую-то портативную утилиту запустить просто нет возможности?

Тут нам на помощь приходят универсальные и, пожалуй, самые действенные средства проверки, которые принято называть восстановительными дисками (Rescue Disk). Правда, записать диск придется на другом терминале, зато его последующее использование для устранения всевозможных угроз в нашем случае является единственно возможным и правильным решением.

загрузка windows 7 останавливается на classpnp sys

Сама утилита проверки стартует еще до начала загрузки операционной системы (в BIOS обязательно нужно будет указать CD/DVD-ROM в качестве первого Boot-устройства). После запуска программа предложит пользователю выбрать режим работы (загрузить графический интерфейс, использовать какой-то язык, произвести процессы из командной строки и т. д.). Выбираем графический интерфейс – так удобнее всего. Теперь остается только запустить процесс сканирования (установленный по умолчанию или с выбором объектов и дисковых разделов вручную). Если даже вирус засел глубоко в оперативной или системной памяти, можно не сомневаться, что он будет обнаружен и полностью изолирован или удален.

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

Опять же, а что делать, если вирусы обнаружены не были, и снова компонент останавливает загрузку, или система перезагружается на CLASSPNP.SYS? Такое положение дел может свидетельствовать о том, что данный файл попросту поврежден или отсутствует в локации по умолчанию. Некоторые рекомендуют воспользоваться его заменой на оригинальную библиотеку. Тут есть два варианта: скачать файл с официального ресурса с другого терминала или попробовать скопировать его с установочного диска, который нам понадобится в любом случае (даже при копировании искомого объекта с USB-устройства).

не грузится classpnp sys причины

Рассмотрим второй способ, поскольку он практически полностью идентичен первому. За исключением только того, что копирование будет производиться, например, не с флэшки, а именно с оптического носителя с инсталляционным дистрибутивом.

Как уже понятно, загружаемся с диска. После появления на экране графического интерфейса установщика не включаем инсталляцию, а используем командную строку (вызывается она сочетанием Shift + F10). После этого командой copy «литера диска или флэшки»:«путь к файлу» c:windowssystem32drivers переносим файл в нужное место (команда вводится без кавычек). После этого можно попробовать перезагрузить систему и посмотреть, что будет при загрузке.

система перезагружается на classpnp sys

Отдельно стоит обратить внимание на копируемый файл. Его версия должна соответствовать разрядности системы, ведь если в 32-битную Windows 7 поместить файл, рассчитанный на 64-битную версию, то работать ничего не будет.

Восстанавливаем загрузчик

Если и это не помогает, и ситуация повторяется снова и снова (CLASSPNP.SYS не грузится в безопасном режиме или в любом другом), проблема может заключаться в повреждении самого загрузчика Windows и загрузочного сектора. Тут придется применять крайние меры. Опять же, для этого потребуется загрузочный диск Windows или какой-нибудь Live CD. Как и в прошлом варианте, нужно вызвать командную строку, после чего для начала задать стандартную проверку диска, введя последовательность chkdsk c: /f /r.

windows не загружалась crcdisk sys classpnp sys

После этого можно приступать непосредственно к восстановлению загрузчика. Для этого в консоли последовательно нужно ввести две основные команды:

  • Bootrec.exe /FixMbr
  • Bootrec.exe /FixBoot

После этого, конечно, можно попытаться перезапустить систему, но лучше для полной уверенности переписать весь загрузочный сектор. Для этого используется команда Bootrec.exe /RebuildBcd. Вот теперь загрузка должна произойти в любом режиме.

Если система хоть раз загрузилась…

Напоследок обратим внимание еще на один момент. Если система хотя бы раз загрузилась после применения первых способов, возможно, конфликты возникают между каким-то софтом. Отзывы пользователей свидетельствуют о том, что, как ни странно, очень часто такая проблема происходит по вине пакета Daemon Tools. Утверждается, что смена его на облегченную версию Lite проблему устраняет.

classpnp sys не грузится в безопасном режиме

Впрочем, при загруженной системе можно воспользоваться утилитой DLL Suite, которая позволит автоматически восстановить все жизненно важные системные библиотеки, в том числе и CLASSPNP.SYS.

Итог

Вот, собственно, и все о причинах появления сбоев, когда CLASSPNP.SYS не грузится в безопасном режиме, и методах устранения негативных последствий таких ситуаций. Если же говорить о том, какую именно методику предпочесть, думается, лучше всего использовать сразу восстановление загрузчика, а затем применить программу DLL Suite. Такой путь многим может показаться окольным, тем не менее в большинстве случаев помогает именно такая комбинация. Конечно, нельзя сбрасывать со счетов и самые простые решения, ведь проблема может иметь и быстро устраняемые причины. Но в общем и целом особых проблем возникнуть не должно. Да, еще одна, последняя рекомендация: всегда имейте под рукой какой-нибудь антивирусный и загрузочный диск, а то ведь случиться может всякое.

Пользователи Windows отмечают, что иногда 7 версия дает сбой при безопасном запуске. Загрузка системы тормозит на файле CLASSPNP.SYS и зависает на неопределенное время. Так как причин того, что не загружается в безопасном режиме файл CLASSPNP.SYS в Виндовс 7, может быть много, существует несколько действий, помогающих решить проблему. О них и пойдет речь в данной статье.

Скрин загрузки системных файлов

Содержание

  1. Почему не грузится файл?
  2. Что делать для восстановления загрузки в безопасном режиме
  3. Восстановление ОС
  4. Проверка системы на наличие вирусов
  5. Переустановка файла
  6. Восстановление загрузчика как крайняя мера
  7. Один из интересных моментов

Почему не грузится файл?

Безопасный режим запуска ОС предусмотрен для того, чтобы пользователь мог исправить ошибки системы или устранить последствия деятельности вирусов. В этом режиме осуществляется загрузка необходимых драйверов. Поэтому данный способ запуска обычно работает без проблем. Но бывает, что загрузка ОС тормозит именно на CLASSPNP. Это связано с повреждением либо полным отсутствием данного файла, последствиями вирусных атак, появлением конфликтов с установленным на ПК софтом, а также со сбоями функционала загрузчика Windows.

Указанный файл – это библиотека, предусмотренная для контроля работы винчестера SCSI, поэтому любые нарушения ее работы могут иметь отрицательные последствия для работы всего ПК. Иногда даже появляется и “синий экран смерти” – BSoD. Как и при ошибке nvlddmkm.sys.

Скриншот BSoD с кодом ошибки

Что делать для восстановления загрузки в безопасном режиме

Исходя из причин сбоя применяются и конкретные меры по исправлению ситуации. Первым рассмотрим восстановление системы.

Восстановление ОС

Итак, что мы имеем? Даже несколько раз перезагружая компьютер, мы видели, что безопасная загрузка системы останавливалась на файле CLASSPNP.SYS. Делаем перезагрузку еще раз и сразу после короткого сигнала, говорящего о том, что в работе компьютера ошибок не имеется, нажимаем на F8. Выходит такое меню.

Иллюстрация выбора Last Known Good Configuration

Вместо выделенной строки может быть написано на русском языке “Последняя удачная конфигурация (дополнительно)”. Жмем на эту фразу. Если в файле CLASSPNP нет повреждений и он присутствует в системе, то Windows должна спокойно загрузиться. Если же изменений нет, применяем следующий способ.

Проверка системы на наличие вирусов

Понятно, что раз система не загружается, то бесполезно прибегать к помощи антивирусных программ или утилит. В этом случае поможет использование Rescue Disk (восстановительный диск). Вообще антивирусный диск необходимо иметь каждому пользователю Windows, так как неизвестно, с какой ситуацией мы можем столкнуться при эксплуатации компьютера.

Заставка антивирусного диска Касперского

Итак, размещаем диск в дисководе и отключаем компьютер.

Нажимаем кнопку питания. Входим в BIOS.

  1. Обязательно определяем, что первоначальным Boot-устройством в нашем случае выступит CD-DVD-ROM.
  2. Программа запускается с диска и предлагает нам произвести определенные действия: выбор удобного языка, ввод команд через командную строку, загрузка графического интерфейса и многое другое.
  3. Мы отмечаем загрузку графического интерфейса и запускаем сканирование (нужные объекты и разделы диска определяются вручную или уже выставлены по умолчанию).
  4. Одно из достоинств применения антивирусного диска – даже если вредоносный код забрался далеко внутрь системы или попытался где-то замаскироваться, он все равно будет найден и уничтожен.
  5. После проведенных действий нужно перезагрузить ПК и убедиться, что все работает нормально. Если же проблема остается, перейдем к следующему шагу.

Переустановка файла

Не помогли ни действия по восстановлению ОС, ни поиск и уничтожение вирусов? Может быть, данный файл попросту испорчен или отсутствует среди системных данных. В этом случае действуем так. Садимся за другой компьютер и http://iloaddll.ru/classpnp.sys_download.html из интернета. Также нам необходим оригинальный установочный диск. Когда после его загрузки перед нами появится главное меню, никаких действий по установке не предпринимаем, а нажимаем command prompt (командная строка) внизу списка действий. Вводим команду copy и далее прописываем букву, обозначающую диск или флеш-карту, и путь к нужному нам файлу, находящемуся на ней. Например, если ПК определил диск или флешку как H, то: H:путь к CLASSPNP. Затем пробел и адрес директории нашего компьютера, где файл должен располагаться. Полная команда выглядит так:

H:путь к CLASSPNP.SYS c:windowssystem32drivers

Следите, чтобы файл, который вы копируете, подходил под разрядность вашей ОС (х32 или х64).

Восстановление загрузчика как крайняя мера

Загружаем установочный диск и снова вызываем командную строку. На этот раз прописываем следующую команду: chkdsk c: /f /r и проверяем диск С. Затем восстанавливаем загрузчик. Для этого набираем Bootrec.exe /fixmbr и Bootrec.exe /fixboot.

Командная строка с прописанными командами

Для надежности нужно перезаписать весь загрузчик при помощи команды Bootrec.exe /rebuildbcd. Это может помочь исправить проблему отсутствия загрузки CLASSPNP.SYS на Виндовс 7.

Один из интересных моментов

Может быть, что в какой-то момент система нормально загрузится. Это говорит о том, что существуют проблемы с каким-либо софтом. Пользователи отмечают, что часто этим “грешит” программа Daemon Tools и рекомендуют сменить ее на облегченную версию Lite. Если ОС загружена, воспользуйтесь утилитой DLL Suite, автоматически восстанавливающей системные библиотеки. Это должно решить проблему с загрузкой системы в безопасном режиме.

Когда вы пытаетесь загрузить ОС Windows в безопасном режиме, но обнаруживаете, что Безопасный режим Windows завис в Подождите пожалуйста или же Загрузка файлов экранов или при загрузке файлов classpnp.sys, disk.sys, amdkmpfd.sys, aswardisk.sys и т. д. этот пост предлагает предложения, которые могут помочь вам решить проблему.

Безопасный режим Windows завис

Эта ошибка безопасного режима может возникать по нескольким причинам, включая сбой оборудования, повреждение программного обеспечения, поврежденные файлы в системе, поврежденные драйверы и проблемы с BIOS. Когда ваш компьютер с Windows 10 застревает на каком-либо экране или сообщении, или это означает, что ОС не может найти и загрузить системные файлы, необходимые для завершения процесса. Это могут быть системные драйверы или файлы ОС, например. файлы classpnp.sys, disk.sys, amdkmpfd.sys, aswardisk.sys и т. д. Например, classpnp.sys — это системный файл классов Microsoft Windows SCSI, который входит в состав ОС Windows.

Windows 10 застряла в бесконечном цикле перезагрузки

Скорее всего, поскольку вы не можете загрузиться в безопасном режиме, вы также не сможете загрузиться в чистом состоянии загрузки или нормальной загрузке.

Что ж, если вы оказались в такой ситуации, попробуйте следующие предложения и посмотрите, поможет ли что-нибудь.

Отключите внешнее оборудование

Прежде чем начать, отключите от вашего ноутбука или ПК внешнее оборудование — например, USB-мышь, внешний жесткий диск, адаптер Bluetooth для беспроводной мыши, внешний кулер и любое другое устройство.

Загрузитесь в Advanced Startup Options

Чтобы погрузить вас в Расширенные параметры запуска экран, нажмите Сдвиг и нажмите Перезапуск. Это работает? Если так, то хорошо. Если вы не можете этого сделать, вам необходимо использовать установочный носитель.

Теперь, поскольку вы не можете войти в безопасный режим, вам нужно загрузить Windows 10 с помощью Установочный носитель Windows или же Диск восстановления и выберите Почини свой компьютер для входа в Устранение неполадок> Дополнительные параметры запуска.

Оказавшись здесь, вы можете использовать CMD для выполнения команд. Вы можете использовать DVD с Windows 10 или загрузочный USB-накопитель, или вы можете записать Windows 10 ISO на USB-накопитель с другого компьютера, а затем использовать его.

Windows-10-загрузка 7

Как только у вас есть получил доступ к дополнительным параметрам, вы можете использовать несколько предложенных ниже вариантов для решения проблемы.

  1. Запустить восстановление при загрузке
  2. Запустить восстановление системы
  3. Запустите Центр обновления Windows
  4. Запустите проверку системных файлов с помощью CMD
  5. Изменить параметры запуска
  6. Сбросить BIOS
  7. Обновите BIOS.

1]Запустить восстановление при загрузке

На экране дополнительных параметров откройте командную строку и запустите восстановление при загрузке.

2]Запустите восстановление системы

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

3]Запустите Центр обновления Windows

На экране дополнительных параметров откройте командную строку и запустите обновления Windows из командной строки.

4]Запустите сканирование SFC и DISM.

На экране дополнительных параметров откройте командную строку и запустите средство проверки системных файлов. Это позволяет пользователям сканировать системные файлы Windows на наличие повреждений и восстанавливать поврежденные файлы.

5]Изменить настройки запуска

Изменить настройки загрузки Windows 10 по умолчанию

Щелкните Изменить параметры запуска и перезапустите, чтобы временно отключить эти два параметра:

  • Отключить принудительную подпись драйверов
  • Отключите ранний запуск защиты от вредоносных программ.

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

Безопасный режим не работает, не удается загрузиться в безопасном режиме в Windows 10

7]Сбросить BIOS

Если вы недавно внесли какие-либо изменения в BIOS, а затем начали сталкиваться с этой проблемой, возможно, это время, когда вы отмените изменение или сбросите настройки BIOS до значений по умолчанию. Чтобы открыть настройки BIOS, вам необходимо перезагрузить компьютер и продолжать нажимать F2 или же F9 (по данным производителя материнской платы). Оказавшись там, найдите соответствующую опцию и сбросьте BIOS до настроек по умолчанию.

6]Обновите BIOS

Если проблема все еще возникает, вы можете попробовать обновить BIOS в своей системе, создав загрузочный USB-накопитель.

Связанное чтение: ПК завис и не может выйти из безопасного режима.

Надеюсь, что-то здесь вам поможет.

Безопасный режим Windows завис

Причины и решения проблем с загрузкой Windows 7

Одной из самых больших неприятностей, которая может случиться с компьютером, является проблема с его запуском. Если какая-либо неисправность возникает в запущенной ОС, то более или менее продвинутые пользователи стараются решить её тем или иным способом, но если ПК вообще не запускается, многие просто впадают в ступор и не знают, что делать. На самом деле указанная проблема далеко не всегда так серьезна, как может показаться на первый взгляд. Давайте выясним причины, по которым не запускается Виндовс 7, и основные способы их устранения.

Причины проблемы и способы решения

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

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

Кроме того, проблема с загрузкой ОС может возникнуть при накоплении большого количества пыли внутри корпуса ПК. В этом случае нужно просто почистить компьютер от пыли. Лучше всего при этом применять кисточку. Если вы используете пылесос, то включайте его на выдув, а не на вдув, так как он может засосать детали.

Также проблемы с включением могут возникнуть, если первым устройством, с которого производится загрузка ОС, в БИОС прописан CD-привод или USB, но при этом в данный момент в дисководе находится диск или к ПК подключена флешка. Компьютер будет пытаться загрузиться с них, а с учетом того, что на этих носителях в реальности операционная система отсутствует, то ожидаемо все попытки приведут к неудачам. В этом случае следует перед запуском отсоединять от ПК все USB накопители и CD/DVD-диски либо же указать в BIOS первым устройством для загрузки жесткий диск компьютера.

Возможен и просто конфликт системы с одним из подключенных к компьютеру устройств. В этом случае необходимо отключить все дополнительные девайсы от ПК и попробовать запустить его. При удачной загрузке это будет означать, что проблема кроется именно в обозначенном факторе. Последовательно подключайте к компьютеру устройства и после каждого подключения производите перезагрузку. Таким образом, если на определенном этапе проблема вернется, вы будите знать конкретный источник её причины. Это устройство перед запуском компьютера всегда нужно будет отключать от него.

Главные факторы программных сбоев, вследствие которых не удалось загрузить Виндовс, следующие:

  • Повреждение файлов ОС;
  • Нарушения в реестре;
  • Некорректная установка элементов ОС после обновления;
  • Присутствие в автозапуске конфликтующих программ;
  • Вирусы.

О способах решения вышеуказанных проблем и о восстановлении запуска ОС мы как раз поговорим в этой статье.

Способ 1: Активация последней удачной конфигурации

Одним из самых простых способов решения проблемы с загрузкой ПК является активация последней удачной конфигурации.

    Как правило, если компьютер аварийно завершил работу или предыдущий его запуск закончился неудачей, при следующем его включении открывается окно выбора типа загрузки ОС. Если же это окно не открывается, то существует способ принудительно его вызвать. Для этого после загрузки BIOS сразу же вслед за тем, как прозвучит звуковой сигнал, требуется нажать определенную клавишу или комбинацию на клавиатуре. Как правило, это клавиша F8. Но в редких случаях может быть и другой вариант.

  • Если после этого Виндовс загрузится, то можете считать, что проблема устранена. Если же загрузка не удалась, то переходите к следующим вариантам, описанным в текущей статье.
  • Способ 2: «Безопасный режим»

    Ещё один вариант решения проблемы с запуском осуществляется путем захода в Виндовс в «Безопасном режиме».

      Опять же сразу при старте ПК нужно активировать окошко с выбором типа загрузки, если оно не включилось самостоятельно. Путем нажатия клавиш «Вверх» и «Вниз» выберите вариант «Безопасный режим».

  • Если теперь компьютер загрузится, то это уже хороший знак. Затем, дождавшись полной загрузки Windows, перезагрузите ПК и, вполне вероятно, что в следующий раз он уже удачно запустится в обычном режиме. Но даже если этого не произойдет, то, что вы зашли в «Безопасном режиме» — это уже хороший знак. Например, вы сможете попробовать восстановить системные файлы или проверить компьютер на наличие вирусов. В конце концов, вы сможете сохранить нужные данные на носитель, если переживаете за их целостность на проблемном ПК.
  • Способ 3: «Восстановление запуска»

    Устранить описываемую проблему можно также при помощи системного инструмента, который так и называется — «Восстановление запуска». Особенно он эффективен при повреждении реестра.

      Если при предыдущем запуске компьютера Windows не загрузился, вполне возможно, что при повторном включении ПК автоматически откроется инструмент «Восстановление запуска». Если это не случилось, его можно активировать принудительно. После активации BIOS и звукового сигнала нажмите F8. В появившемся окне выбора типа запуска на этот раз выберите «Устранение неполадок компьютера».

    Если у вас установлен на учетную запись администратора пароль, то потребуется его ввести. Откроется среда восстановления системы. Это своеобразный реаниматор ОС. Выберите «Восстановление запуска».

  • После этого инструмент предпримет попытку восстановить запуск, исправляя выявленные ошибки. Во время этой процедуры, возможно, будут открываться диалоговые окна. Нужно следовать указаниям, которые отобразятся в них. Если процедура реанимирования запуска пройдет успешно, то после её завершения Виндовс будет запущена.
  • Данный способ хорош тем, что он довольно универсален и отлично подходит для тех случаев, когда вы не знаете причины неполадки.

    Способ 4: Проверка целостности системных файлов

    Одной из причин, по которой не удается запустить Виндовс, является повреждение системных файлов. Для устранения этой неполадки необходимо произвести процедуру соответствующей проверки с последующим восстановлением.

      Указанная процедура выполняется через «Командную строку». Если вы можете загрузить Windows в «Безопасном режиме», то откройте указанную утилиту стандартным методом через меню «Пуск», перейдя по наименованию «Все программы», а затем зайдя в папку «Стандартные».

    Если вы вообще не можете запустить Windows, то в этом случае откройте окно «Устранение неполадок компьютера». Процедура его активации была описана в предыдущем способе. Затем из раскрывшегося списка инструментов выберите «Командная строка».

    Если не открывается даже окно устранения неполадок, то вы в таком случае можете попробовать реанимировать Виндовс с помощью LiveCD/USB или при помощи родного загрузочного диска ОС. В последнем случае «Командную строку» можно вызвать, активировав инструмент устранения неполадок, как и в обычной ситуации. Главное отличие будет состоять в том, что загрузитесь вы при помощи диска.
    В открывшемся интерфейсе «Командной строки» введите следующую команду:

    Если вы активируете утилиту из среды восстановления, а не в «Безопасном режиме», то команда должна выглядеть так:

    sfc /scannow /offbootdir=c: /offwindir=c:windows

    Вместо символа «c» нужно указать другую букву, если ваша ОС расположена в разделе под иным наименованием.

    После этого применяйте Enter.

  • Запустится утилита sfc, которая проведет проверку Windows на наличие поврежденных файлов. За прогрессом данного процесса можно наблюдать через интерфейс «Командной строки». В случае обнаружения поврежденных объектов будет произведена процедура реанимирования.
  • Способ 5: Сканирование диска на наличие ошибок

    Одной из причин невозможности загрузить Виндовс может быть физическое повреждение жесткого диска или логические ошибки в нем. Чаще всего это проявляется в том, что загрузка ОС вообще не начинается либо же завершается на одном и том же месте, так и не дойдя до конца. Чтобы выявить подобного рода неполадки и попытаться их исправить, необходимо произвести проверку при помощи утилиты chkdsk.

      Активация chkdsk, как и предыдущей утилиты, производится при помощи ввода команды в «Командную строку». Вызвать этот инструмент можно так же, как это было описано в предыдущем способе действий. В её интерфейсе введите такую команду:

    Далее нажмите Enter.

    Если вы зашли в систему в «Безопасном режиме», придется перезагрузить ПК. Анализ будет выполнен при следующей его загрузке автоматически, но для этого вам предварительно нужно будет ввести в окно «Командной строки» букву «Y» и нажать Enter.

    Если же вы работаете в режиме устранения неполадок, то утилита chkdsk проверит диск немедленно. В случае обнаружения логических ошибок будет произведена попытка их устранения. Если же винчестер имеет физические повреждения, следует либо обратиться к мастеру, либо заменить его.

    Способ 6: Восстановление конфигурации загрузки

    Следующий способ, который производит восстановление конфигурации загрузки при невозможности запуска Виндовс, тоже осуществляется путем ввода командного выражения в «Командную строку», запущенную в среде восстановления системы.

      После активации «Командной строки» введите выражение:

    После этого нажмите Enter.

    Далее введите такое выражение:

    Снова применяйте Enter.

  • После перезагрузки ПК вполне вероятно, что он сможет запуститься в стандартном режиме.
  • Способ 7: Удаление вирусов

    Неполадку с запуском системы может вызвать также вирусное заражение компьютера. При наличии указанных обстоятельств следует найти и удалить вредоносный код. Выполнить это можно при помощи специальной антивирусной утилиты. Одним из наиболее хорошо зарекомендовавших себя инструментов данного класса является Dr.Web CureIt.

    Но у пользователей может возникнуть резонный вопрос, как же осуществить проверку, если система не запускается? Если у вас получается включить ПК в «Безопасном режиме», то вы можете выполнить сканирование, произведя этот тип запуска. Но даже в этом случае мы советуем совершить проверку, запустив ПК с LiveCD/USB или с другого компьютера.

    При обнаружении утилитой вирусов следуете тем инструкциям, которые будут отображаться в её интерфейсе. Но даже в случае ликвидации вредоносного кода проблема с запуском может остаться. Это означает, что, вероятно, вирусная программа повредила системные файлы. Тогда необходимо произвести проверку, подробно описанную при рассмотрении Способа 4 и осуществить реанимирование при обнаружении повреждений.

    Способ 8: Очистка автозапуска

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

      Запустите компьютер в «Безопасном режиме». Наберите Win+R. Открывается окошко «Выполнить». Введите туда:

    Далее применяйте «OK».

    Запускается системный инструмент под названием «Конфигурация системы». Перейдите во вкладку «Автозагрузка».

    Нажмите на кнопку «Отключить все».

    Будут сняты галочки со всех элементов списка. Далее жмите «Применить» и «OK».

    Затем откроется окошко, где будет отображено предложение перезагрузить компьютер. Нужно нажать «Перезагрузка».

  • Если после перезапуска ПК запустится в обычном режиме, то это означает, что причина крылась как раз в конфликтующем с системой приложении. Далее при желании вы сможете вернуть самые необходимые программы в автозапуск. Если при добавлении какого-то приложения проблема с запуском повторится, то вы уже точно будете знать виновника неполадки. В этом случае необходимо отказаться от добавления такого ПО в автозагрузку.
  • Способ 9: Восстановление системы

    В случае если ни один из указанных способов не сработал, то можно произвести восстановление системы. Но главное условие для применения указанного метода состоит в наличии ранее созданной точки восстановления.

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

    Если ПК не запускается даже в «Безопасном режиме», то откройте инструмент устранения неполадок при загрузке или активируйте его с установочного диска. В среде восстановления выберите вторую позицию – «Восстановление системы».

    Открывается интерфейс средства под названием «Восстановление системы» с обобщающей информацией об этом инструменте. Жмите «Далее».

    В следующем окне требуется выбрать конкретную точку, к которой будет восстановлена система. Рекомендуем выбирать самую последнюю по дате создания. Для того чтобы увеличить пространство выбора, установите отметку в чекбоксе «Показать другие…». После того как выделен нужный вариант, жмите «Далее».

    Затем откроется окно, где нужно сделать подтверждение своих действий по восстановлению. Для этого жмите «Готово».

    Начнется процедура восстановления Windows, вследствие которой компьютер перезагрузится. Если проблема была вызвана только программными, а не аппаратными причинами, то запуск должен произвестись в стандартном режиме.

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

    Как видим, в Виндовс 7 существует довольно много вариантов восстановления запуска. Поэтому если вы вдруг встретитесь с изучаемой тут проблемой, то не нужно сразу впадать в панику, а просто использовать советы, которые даны в данной статье. Тогда, если причиной неполадки выступил не аппаратный, а программный фактор, с большой долей вероятности можно будет восстановить работоспособность. Но для надежности настоятельно рекомендуем применять и превентивные меры, а именно не забывать периодически создавать точки восстановления или резервные копии Виндовс.

    Источник

    Пользователи Windows отмечают, что иногда 7 версия дает сбой при безопасном запуске. Загрузка системы тормозит на файле CLASSPNP.SYS и зависает на неопределенное время. Так как причин того, что CLASSPNP.SYS не грузится в безопасном режиме Windows 7, может быть много, существует несколько действий, помогающих решить проблему. О них и пойдет речь в данной статье.

    CLASSPNP.SYS не грузится в безопасном режиме Windows 7
    Проблемы с загрузкой CLASSPNP.SYS

    Содержание статьи

    • 1 Почему не грузится CLASSPNP.SYS?
    • 2 Что делать для восстановления загрузки в безопасном режиме
      • 2.1 Восстановление ОС
      • 2.2 Проверка системы на наличие вирусов
      • 2.3 Переустановка файла CLASSPNP.SYS
      • 2.4 Восстановление загрузчика как крайняя мера
      • 2.5 Один из интересных моментов

    Безопасный режим запуска ОС предусмотрен для того, чтобы пользователь мог исправить ошибки системы или устранить последствия деятельности вирусов. В этом режиме осуществляется загрузка необходимых драйверов. Поэтому данный способ запуска обычно работает без проблем. Но бывает, что загрузка ОС тормозит именно на CLASSPNP.SYS. Это связано с повреждением либо полным отсутствием данного файла, последствиями вирусных атак, появлением конфликтов с установленным на ПК софтом, а также со сбоями функционала загрузчика Windows.

    CLASSPNP.SYS – это библиотека, предусмотренная для контроля работы винчестера SCSI, поэтому любые нарушения ее работы могут иметь отрицательные последствия для работы всего ПК. Иногда даже появляется и “синий экран смерти” – BSoD. Как и при ошибке nvlddmkm.sys.

    Синий экран смерти CLASSPNP.SYS

    Что делать для восстановления загрузки в безопасном режиме

    Исходя из причин сбоя применяются и конкретные меры по исправлению ситуации. Первым рассмотрим восстановление системы.

    Восстановление ОС

    Итак, что мы имеем? Даже несколько раз перезагружая компьютер, мы видели, что безопасная загрузка системы останавливалась на файле CLASSPNP.SYS. Делаем перезагрузку еще раз и сразу после короткого сигнала, говорящего о том, что в работе компьютера ошибок не имеется, нажимаем на F8. Выходит такое меню.

    CLASSPNP.SYS не грузится в безопасном режиме Windows 7
    Выбор последней удачной конфигурации

    Вместо выделенной строки может быть написано на русском языке “Последняя удачная конфигурация (дополнительно)”. Жмем на эту фразу. Если в файле CLASSPNP.SYS нет повреждений и он присутствует в системе, то Windows должна спокойно загрузиться. Если же изменений нет, применяем следующий способ.

    Проверка системы на наличие вирусов

    Понятно, что раз система не загружается, то бесполезно прибегать к помощи антивирусных программ или утилит. В этом случае поможет использование Rescue Disk (восстановительный диск). Вообще антивирусный диск необходимо иметь каждому пользователю Windows, так как неизвестно, с какой ситуацией мы можем столкнуться при эксплуатации компьютера.

    CLASSPNP.SYS не грузится в безопасном режиме Windows 7
    Kaspersky Rescue Disk 10

    Итак, размещаем диск в дисководе и отключаем компьютер.

    Нажимаем кнопку питания. Входим в BIOS.

    1. Обязательно определяем, что первоначальным Boot-устройством в нашем случае выступит CD-DVD-ROM.
    2. Программа запускается с диска и предлагает нам произвести определенные действия: выбор удобного языка, ввод команд через командную строку, загрузка графического интерфейса и многое другое.
    3. Мы отмечаем загрузку графического интерфейса и запускаем сканирование (нужные объекты и разделы диска определяются вручную или уже выставлены по умолчанию).
    4. Одно из достоинств применения антивирусного диска – даже если вредоносный код забрался далеко внутрь системы или попытался где-то замаскироваться, он все равно будет найден и уничтожен.
    5. После проведенных действий нужно перезагрузить ПК и убедиться, что все работает нормально. Если же проблема остается, перейдем к следующему шагу.

    Переустановка файла CLASSPNP.SYS

    Не помогли ни действия по восстановлению ОС, ни поиск и уничтожение вирусов? Может быть, файл CLASSPNP.SYS попросту испорчен или отсутствует среди системных данных. В этом случае действуем так. Садимся за другой компьютер и скачиваем CLASSPNP.SYS из интернета. Также нам необходим оригинальный установочный диск. Когда после его загрузки перед нами появится главное меню, никаких действий по установке не предпринимаем, а нажимаем command prompt (командная строка) внизу списка действий. Вводим команду copy и далее прописываем букву, обозначающую диск или флеш-карту, и путь к нужному нам файлу, находящемуся на ней. Например, если ПК определил диск или флешку как H, то: H:путь к CLASSPNP.SYS. Затем пробел и адрес директории нашего компьютера, где файл должен располагаться. Полная команда выглядит так:

    H:путь к CLASSPNP.SYS c:windowssystem32drivers

    Следите, чтобы файл, который вы копируете, подходил под разрядность вашей ОС (х32 или х64).

    Восстановление загрузчика как крайняя мера

    Загружаем установочный диск и снова вызываем командную строку. На этот раз прописываем следующую команду: chkdsk c: /f /r и проверяем диск С. Затем восстанавливаем загрузчик. Для этого набираем Bootrec.exe /fixmbr и Bootrec.exe /fixboot.

    CLASSPNP.SYS не грузится в безопасном режиме Windows 7
    Ввод команд для восстановления загрузчика

    Для надежности нужно перезаписать весь загрузчик при помощи команды Bootrec.exe /rebuildbcd.

    Один из интересных моментов

    Может быть, что в какой-то момент система нормально загрузится. Это говорит о том, что существуют проблемы с каким-либо софтом. Пользователи отмечают, что часто этим “грешит” программа Daemon Tools и рекомендуют сменить ее на облегченную версию Lite. Если ОС загружена, воспользуйтесь утилитой DLL Suite, автоматически восстанавливающей системные библиотеки. Это должно решить проблему с загрузкой системы в безопасном режиме.

    Download PC Repair Tool to quickly find & fix Windows errors automatically

    When you try to boot your Windows OS in Safe Mode, but find that the Windows Safe Mode is stuck at Please wait or Loading files screens or while loading classpnp.sys, disk.sys, amdkmpfd.sys, aswardisk.sys, etc files, then this post offers suggestions that may help you get out of the problem.

    Windows Safe Mode stuck

    This Safe Mode error can occur due to several reasons including hardware failure, software corruption, corrupt files in the system, corrupt drivers, and issues with the BIOS. When your Windows 10 PC is stuck on some screen or message or it means that the OS is unable to locate and load the system files that are required for the process to complete. They could be system drivers or OS files – eg. classpnp.sys, disk.sys, amdkmpfd.sys, aswardisk.sys, etc files. For instance, classpnp.sys is a Microsoft Windows SCSI class system file that comes as part of the Windows OS.

    Related: Windows is stuck in an endless reboot loop.

    The chances are that since you cannot boot into Safe Mode, you will not be able to boot in Clean Boot State or Normal Boot as well.

    Well if you are in this situation, try the following suggestions and see if something helps.

    Disconnect your external hardware

    Before you begin, disconnect your external hardware – eg USB mouse, external hard drive, Bluetooth dongle for a wireless mouse, external cooler and any other device to your laptop or PC.

    Boot into Advanced Startup Options

    To boot you into the Advanced Startup Options screen, press Shift and click Restart. Does this work? If so, good. If you cannot then you need to use the installation media.

    Now, since you cannot enter Safe Mode, then you have to boot into Windows 10 with your Windows Installation Media or Recovery Drive and select Repair your computer to enter Troubleshoot > Advanced Startup Options.

    Once here, you can now use CMD to run commands. You may use a Windows 10 DVD or a bootable USB drive, or you can burn Windows 10 ISO to a USB drive using another computer and then use it.

    windows-10-boot 7

    Once you have accessed the Advanced Options, you can use several options offered below to resolve the issue.

    1. Run Startup Repair
    2. Run System Restore
    3. Run Windows Update
    4. Run System File Checker using CMD
    5. Change Startup settings
    6. Reset BIOS
    7. Update BIOS.

    1] Run Startup Repair

    From the Advanced options screen, open Command Prompt and Run Startup Repair.

    2] Run System Restore

    If the problem started recently, you can run Run System Restore and see.

    Read: How to get out of Safe Mode in Windows

    3] Run Windows Update

    From the Advanced options screen, open Command Prompt and run Windows Updates from the Command Line.

    4] Run SFC and DISM scan

    From the Advanced options screen, open Command Prompt and run System File Checker. It allows users to scan for corruptions in Windows system files and restore corrupted files.

    5] Change Startup settings

    Change Windows 10 Boot defaults

    Click on the Change Startup settings and restart to temporarily disable these two settings:

    • Disable driver signature enforcement
    • Disable early-launch anti-malware protection.

    Once the issue is resolved, remember to reverse the changes made.

    Related: Safe Mode not working; Cannot boot in Safe Mode.

    7] Reset BIOS

    If you have recently made any change in BIOS and then started facing this problem, maybe this is the time when you revert the change or reset BIOS settings to default values. To open BIOS settings, you need to restart your computer and keep pressing F2 or F9 (based on the motherboard manufacturer). Once there, find out the corresponding option and reset BIOS to default settings.

    6] Update BIOS

    If you’re still experiencing the issue, then you can try updating the BIOS on your system by creating a Bootable USB.

    Related read: PC stuck and cannot exit Safe Mode.

    Hope something here helps you.

    Ezoic

    Anand Khanse is the Admin of TheWindowsClub.com, a 10-year Microsoft MVP (2006-16) & a Windows Insider MVP (2016-2022). Please read the entire post & the comments first, create a System Restore Point before making any changes to your system & be careful about any 3rd-party offers while installing freeware.

    Download PC Repair Tool to quickly find & fix Windows errors automatically

    When you try to boot your Windows OS in Safe Mode, but find that the Windows Safe Mode is stuck at Please wait or Loading files screens or while loading classpnp.sys, disk.sys, amdkmpfd.sys, aswardisk.sys, etc files, then this post offers suggestions that may help you get out of the problem.

    Windows Safe Mode stuck

    This Safe Mode error can occur due to several reasons including hardware failure, software corruption, corrupt files in the system, corrupt drivers, and issues with the BIOS. When your Windows 10 PC is stuck on some screen or message or it means that the OS is unable to locate and load the system files that are required for the process to complete. They could be system drivers or OS files – eg. classpnp.sys, disk.sys, amdkmpfd.sys, aswardisk.sys, etc files. For instance, classpnp.sys is a Microsoft Windows SCSI class system file that comes as part of the Windows OS.

    Related: Windows is stuck in an endless reboot loop.

    The chances are that since you cannot boot into Safe Mode, you will not be able to boot in Clean Boot State or Normal Boot as well.

    Well if you are in this situation, try the following suggestions and see if something helps.

    Disconnect your external hardware

    Before you begin, disconnect your external hardware – eg USB mouse, external hard drive, Bluetooth dongle for a wireless mouse, external cooler and any other device to your laptop or PC.

    Boot into Advanced Startup Options

    To boot you into the Advanced Startup Options screen, press Shift and click Restart. Does this work? If so, good. If you cannot then you need to use the installation media.

    Now, since you cannot enter Safe Mode, then you have to boot into Windows 10 with your Windows Installation Media or Recovery Drive and select Repair your computer to enter Troubleshoot > Advanced Startup Options.

    Once here, you can now use CMD to run commands. You may use a Windows 10 DVD or a bootable USB drive, or you can burn Windows 10 ISO to a USB drive using another computer and then use it.

    windows-10-boot 7

    Once you have accessed the Advanced Options, you can use several options offered below to resolve the issue.

    1. Run Startup Repair
    2. Run System Restore
    3. Run Windows Update
    4. Run System File Checker using CMD
    5. Change Startup settings
    6. Reset BIOS
    7. Update BIOS.

    1] Run Startup Repair

    From the Advanced options screen, open Command Prompt and Run Startup Repair.

    2] Run System Restore

    If the problem started recently, you can run Run System Restore and see.

    Read: How to get out of Safe Mode in Windows

    3] Run Windows Update

    From the Advanced options screen, open Command Prompt and run Windows Updates from the Command Line.

    4] Run SFC and DISM scan

    From the Advanced options screen, open Command Prompt and run System File Checker. It allows users to scan for corruptions in Windows system files and restore corrupted files.

    5] Change Startup settings

    Change Windows 10 Boot defaults

    Click on the Change Startup settings and restart to temporarily disable these two settings:

    • Disable driver signature enforcement
    • Disable early-launch anti-malware protection.

    Once the issue is resolved, remember to reverse the changes made.

    Related: Safe Mode not working; Cannot boot in Safe Mode.

    7] Reset BIOS

    If you have recently made any change in BIOS and then started facing this problem, maybe this is the time when you revert the change or reset BIOS settings to default values. To open BIOS settings, you need to restart your computer and keep pressing F2 or F9 (based on the motherboard manufacturer). Once there, find out the corresponding option and reset BIOS to default settings.

    6] Update BIOS

    If you’re still experiencing the issue, then you can try updating the BIOS on your system by creating a Bootable USB.

    Related read: PC stuck and cannot exit Safe Mode.

    Hope something here helps you.

    Ezoic

    Anand Khanse is the Admin of TheWindowsClub.com, a 10-year Microsoft MVP (2006-16) & a Windows Insider MVP (2016-2022). Please read the entire post & the comments first, create a System Restore Point before making any changes to your system & be careful about any 3rd-party offers while installing freeware.

    • Выполняйте это руководство, если «зацикливание» происходит на этапах настройки запуска или дополнительных параметрах загрузки (ABO) всякий раз, когда вы пытаетесь загрузится в безопасный режим или использовать другие варианты запуска.
    • Обязательно попробуйте сначала, все доступные вам варианты запуска, если вы еще этого не сделали.
    • Если Вы опробовали все доступные варианты запуска операционной системы Windows, и не один из них не помог исправить проблему, то скорее всего вам придется использовать “Восстановление Windows, Восстановление системы или Восстановление защищенных файлов Windows”.

    pic

    В операционных системах Windows 8 и 10 используется название “Параметры загрузки”, а в Windows XP, Vista и 7” “Дополнительные варианты загрузки”, эти настройки помогают запускать Windows, специально настроенными способами, обходя проблемы, мешающие нормальному запуску системы.

    Если все варианты запуска, которые вы попытались выполнить, потерпели неудачу, и ваш компьютер перезагружается снова и снова, попробуйте выполнить ниже следующие шаги, которые, возможно вам помогут решить проблему!

    Причины, по которым Ваш компьютер не запускается в безопасном режиме

    Восстановления загрузки операционных систем Windows, использующих встроенные средства, такие как “Параметры загрузки или Дополнительные варианты загрузки”, название зависит от используемой версии Windows, уже давно являются распространенным способом решение проблем запуска.

    pic

    Внимание: Если во время запуска компьютера, Вы не доходите до экрана “Параметры загрузки», входа в систему Windows или получаете какое-либо сообщение об ошибке, то попробуйте “Все варианты самостоятельного ремонта компьютера, ноутбука или планшета”, для поиска наиболее правильного варианта решения вашей проблемы.

    Как исправить компьютер, который во время запуска останавливается на “Настройках запуска или Дополнительные варианты загрузки”

    Процедура восстановления нормальной загрузки операционной системы, может занять от нескольких минут до нескольких часов в зависимости от того, почему Windows не запускается в безопасном режиме или в одном из других режимов диагностики Windows.

    Попробуйте предпринять следующие действия:

    Запустите Windows, поочерёдно перебирая все доступные варианты из “Параметры загрузки”.

    Возможно, вы уже попробовали это сделать, но если нет, то сделайте это, потому что каждый вариант доступный в меню «Параметры загрузки» или «Дополнительные параметры загрузки», помогает решить одну или нескольких известный проблем, препятствующих нормальной загрузке Windows:

    • Запустите Windows в безопасном режиме.
    • Запустите Windows с последней удачной конфигурацией.
    • Запустите Windows в видеорежиме с низким разрешением.

    Попробуйте также запустить Windows в обычном режиме — Возможно проблема была единичная и загрузка уже восстановлена.

    Если операционная система запускается в одном из трех вариантов запуска, то используйте справку Windows для получения более подробного описания решения проблемы.

    Выполните “Восстановление Windows”.

    Наиболее распространенная причина, по которой операционная система Windows “зацикливается” и постоянно возвращает вас в меню «Параметры загрузки» или «Дополнительные параметры загрузки», заключается в том, что один или несколько важных файлов Windows повреждены или отсутствуют.

    Средство “Восстановления Windows”, проверяет системные файлы и, если они изменены или отсутствую, производит замену, не повреждая основную систему на вашем компьютере.

    В разных версия операционной системы Windows, “Средство восстановление” называются так:

    В Windows 10 – “Вернуть компьютер в исходное состояние”.
    В Windows 8 – “Сбросить компьютер” или «Обновить компьютер».
    В Windows 7 и Vista – “Восстановление ранее сохраненного состояния этого компьютера”.
    В Windows XP – Установочный диск, выбрать пункт восстановления.

    Запустив установку Windows XP, необходимо выбрать пункт восстановления с помощью консоли восстановления. Это достаточно сложная задача, поэтому вы можете пока пропустить этот шаг руководства.

    pic Выполните “Восстановление системы” с помощью “Дополнительных параметров запуска или Параметров восстановления системы”, в зависимости от версии Windows, чтобы отменить последние изменения.

    Возможно, операционная система Windows “зацикливается” на меню «Параметры загрузки» или «Дополнительные параметры загрузки» из-за повреждения драйвера, системного файла или части реестра.

    Восстановление системы поможет вернуть компьютера, в момент, когда состояние операционной системы Windows было полностью работоспособной, что может решить вашу проблему.

    Windows 10 и 8: Восстановление системы можно запустить не только в работающей системе, но и из меню загрузки «Дополнительные параметры».

    Windows 7 и Vista: Восстановление системы можно запустить не только в работающей системе, но и из меню загрузки «Параметры восстановления системы», а также с установочного загрузочного диска Windows.

    Если вы используете операционную систему Windows 7, то параметры восстановления системы доступны в меню «Дополнительные параметры загрузки» где в качестве опции можно выбрать «Восстановить компьютер». Если запуск не возможен, то используйте загрузочный установочный диск.

    Дополнительный вариант для Windows 10, 8 или 7: Если у вас нет установочного диска или флэш-накопителя Windows 10, 8 или 7, но у вас есть доступ к другому компьютеру с установленной одной из этих версий Windows, то вы можете создать диск восстановления на этом компьютере.

    Windows XP и Me: Для пользователей этих систем этот способ восстановления не доступен.  Восстановление системы с помощью загрузочного диска, стало доступным с выпуска Windows Vista.

    pic Запустите команду проверки и восстановления целостности системных файлов Windows.

    Поврежденный или отсутствующий файл операционной системы Windows, может препятствовать запуску меню настроек “Дополнительные параметры загрузки”, а выполнение команды “sfc” поможет устранить эту проблему.

    pic

    Из-за проблем с загрузкой Windows, запуск командной строки, можно будет сделать из меню загрузки «Дополнительные параметры (Windows 10 и 8) или Параметры восстановления системы (Windows 7 и Vista)».

    Windows XP и Me: Для пользователей этих систем этот способ восстановления не доступен. Средство проверки системных файлов доступно только в работающей системе в Windows.

    Скорее всего, если “Восстановление Windows” на шаге 2, не сработал, то запуск проверки и восстановления целостности системных файлов Windows тоже не поможет, но попробовать всё же стоит, учитывая, что дальнейшие шаги связанны с устранением неполадок оборудования.

    pic Проведите сброс памяти CMOS.

    Очистка микросхемы памяти BIOS на материнской плате приведет к сбросу все настроек BIOS до заводских значений по умолчанию. Иногда неправильно настроенный BIOS, может быть причинной невозможности загрузки Windows даже в безопасном режиме.

    Если сброс CMOS помог решить вашу проблему, то вам необходимо изменить настройки BIOS так, чтобы в дальнейшем это не приводило к зависанию компьютера. Для выявления потенциально нежелательной настройки, изменения в конфигурации, вносите  по одному.

    pic Замените батарейку CMOS, если вашему компьютеру более трех лет или если он был выключен в течение длительного времени.

    CMOS-батарейка стоит недорого, и если компьютер долгое время был выключен, то лучше заменить подсевшую батарейку, так как она, может вызывать всевозможные странности в процессе запуска Windows.

    pic Переподключите все важные компоненты вашего компьютера.

    Повторное подключение возможно восстановит электрические контакты, которые с течением времени ослабли или окислились и поможет устранить сбой, из-за которого Windows зависает на экране меню загрузки «Дополнительные параметры или Параметры восстановления системы».

    Переподключить — это значить все соединяющие кабели, карты и любые другие компоненты, надо отсоединить и снова соединить!

    Выполните следующие действия, а затем проверьте ваш компьютер включением:

    • Переустановите все внутренние устройства и силовые кабели.
    • Переустановите модули памяти.
    • Переустановите все карты расширения.
    • Отключите и снова подключите клавиатуру и мышь.

    pic Проверьте оперативную память на ошибки.

    Как правило, оперативная память компьютера, выходит из строя не сразу, а постепенно, вызывая непонятные ошибки, сбои и зависания. В случае, когда один из модулей оперативной памяти полностью поврежден, то компьютер или ноутбук может даже не включится!

    Поэтому, если оперативная память вашего компьютера повреждена, то операционная система Windows, может не загрузится и в безопасном режиме. В таком случае Вам необходимо заменить или отключить поврежденный модуль памяти.

    Перед тем как приступать к ниже следующим шагам 9 и 10 (более сложным и разрушительным), проверьте ещё раз, что вы выполнили все предыдущие (простые и безопасные) способы устранения неисправностей.

    pic Проверьте жесткий диск на ошибки.

    Если жесткий диск вашего компьютера поврежден “физически”, то операционная система Windows как правило, начинает вести себя странно, притормаживает, зависает, загружается с ошибками и т.п. Замените жесткий диск, если при проверке (тестировании) происходят не устранимые (физические) ошибки.

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

    Выполните чистую установку Windows.

    Чистая установка удаляет все данные с раздела, на котором установлена Windows, а затем снова устанавливает операционную систему с нуля.

    Полезные советы и дополнительная информация

    Если операционная система Windows запускается в одном или нескольких вариантах “Безопасного режима”, то воспользуйтесь этой возможностью для решения вашей проблемы из частично работающей системы.

    Если операционная система Windows запускается после выбора варианта “Последняя удачная конфигурация”, то это значить, что внесенные вами изменения (установка, программы, драйверов, очистка и т.п.) привели к невозможности нормальной загрузки. Поэтому если вы снова повторите свои действия, то проблема может вернутся.

    Если операционная система Windows запускается после выбора варианта “Включить видеорежим с низким разрешением”, то возможно, что видеокарта вашего компьютера неисправна. Для устранения попробуйте следующее:

    1. Попробуйте использовать разные варианты разрешение экрана и посмотрите, исчезнет проблема или нет.
    2. Позаимствуйте рабочий монитор с другого компьютера и попробуйте установить его вместо своего.
    3. Обновите драйверы для видеокарты.
    4. Проверьте память вашего компьютера и замените память, если тесты покажут какие-либо ошибки или проблемы.
    5. Замените или добавьте видеокарту, если ваша видеокарта встроена в материнскую плату.

    Компиляция и перевод: Ruterk
    1 октября 2021 г.
    Источник: https://www.lifewire.com


    Неоконченный эксперимент с неполным количеством входных данных.

    Данный материал представляет собой своего рода исследование, попытку разобраться в одной, набившей уже оскомину, загадке этапа загрузки операционной системы Windows. Многие специалисты согласятся со мной, что на практике довольно часто приходится наблюдать сбой при котором станция, загружаясь в безопасном режиме, отображает на экране монитора список загруженных драйверов (последним из которых часто выводится classpnp.sys) и сообщение «Подождите, пожалуйста…», после чего благополучно подвисает:

    classpnp.sys

    При этом, та же проблема имеет зеркальное отображение и в обычном (нормальном) режиме загрузки: в редких случаях загрузка останавливается на анимированном логотипе (значке) Windows (bootscreen), который может «видоизменяться» на экране приветствия бесконечно долго:

    bootscreen

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

    black screen of death

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

    Подопытная конфигурация: Windows 7 SP1 Professional RUS x86, 32-битная выбрана как наименее капризная в плане препятствий, чинимых на пути исследователя, защита у неё определенно проще, патчить легче, бороться с PatchGuard не приходится!! :)

    Теория

    На данный исторический момент уровень моих знаний оставляет желать лучшего, тем не менее, все же попытаемся выйти за привычный ареал обитания, распахнуть, так сказать, рамки собственного познания, тем самым устремившись навстречу эволюции :) В очередной раз не перестаешь удивляться отсутствию у одной из самых популярных настольных операционных систем продуманной диагностической подсистемы. Удивляюсь, конечно же, не я один.. на официальных форумах Microsoft по теме зависания на classpnp.sys можно встретить достаточно много вопросов, к примеру, пользователь с ником Дима_413 пишет:

    classpnp.sys freeze

    Справедливо, поскольку зависание на classpnp.sys, наряду с черным экраном смерти и штормом прерываний, является примером недоработок в архитектуре системы Windows 7, вероятно ведущих свою родословную из недостатков архитектуры x86. Странно другое, ведь на ранних стадиях загрузки операционной системы (начиная с кода сектора MBR, Bootmgr) уже обеспечена простая диагностика, которая выводит сообщения в текстовом режиме в качестве реакции на ошибки. Получается, что отсутствие подобного подхода при зависании на classpnp.sys наблюдается по причине возникновения блокировок в коде ядра в части обработки ошибок/таймаутов от сторонних драйверов [устройств] на раннем этапе загрузки, вероятно разработчики посчитали подобный код бессмысленными, поскольку он все-равно не сможет отработать? Поэтому:

    причина появления этого опуса — отсутствие на начальных этапах загрузки какой бы то ни было внятной системы журналирования, либо отсутствия полноценных знаний о таковой.

    Во всех ветках обсуждений на тему зависания на classpnp.sys, найденных в Сети, все обычно сводится к рассуждениям относительно природы этого драйвера, структуры, функциональных задач, роли, которую он играет в процессе загрузки и, главное, как можно привести его (обратно) в работоспособное состояние? Очевидно что драйвер уже однозначно определен в виновники происходящего зависания, при том, что во всех дискуссиях попросту отсутствует исследовательская (практическая) доказательная часть, что, конечно же, понижает объективность данных теорий. Ну что же, давайте и мы последуем в рамках описанного «слепого» тренда и начнем повествование с попытки описания функциональных особенностей драйвера.

    Что есть сам classpnp.sys?

    Classpnp — общая библиотека класса устройств хранения информации (жестких/твердотельных накопителей, ленточных устройств, CD/DVD-ROM’ов и аналогичных), используемая драйверами жестких дисков, CD/DVD-ROM, ленточных накопителей (включая SATA/SCSI-накопители).

    Из определения следует, что любой драйвер, относящийся к классу устройств хранения информации (магнитных, ленточных, оптических), использует функции данной библиотеки в процессе функционирования. Действительно, образ представляет собой типовую системную библиотеку (DLL), содержащую набор устройствонезависимых процедур (функций), используемых классом отмеченных ранее устройств. Похоже что данная библиотека — это библиотека, функции которой используются всеми драйверами накопителей (устройств хранения) в операционной системе Windows. Библиотека обеспечивает для системных/сторонних драйверов уровня ядра общие процедуры работы с устройствами хранения на уровне обслуживания пакетов IRP, поддержки функций PnP и управления питанием, выполнения общих алгоритмов работы с памятью, чтения, записи, инициализации, конфигурации устройств, работа с уровнями IRQL, обработку ошибок и много прочей аналогичной необходимой требухи.
    В Windows XP и последующих операционных системах, некоторые из наиболее часто используемых сервисов, ранее предоставляемых прямыми вызовами к библиотеке classpnp.sys, теперь предоставляются драйвером класса. Поэтому в Windows XP (и более поздних системах) обычно нет необходимости прямого вызова функции classpnp.sys из сторонних минипорт-драйверов.

    Драйвера класса устройств хранения информации вместе с соответствующим драйвером порта, используются для взаимодействия с конечными физическими накопителями. Драйвера класса располагаются в стеке (драйверов) выше драйверов портов и управляют устройствами своего класса, вне зависимости от того, к какой шине они подключены.

    Ну что же, бегло ознакомились с функциональными особенностями мнимого виновника торжества? Теперь нам необходимо разобраться со структурой данного «драйвера», понять как и когда он загружается и загружается ли вообще.

    Общая теория загрузки

    Перед тем как понять, какое же место classpnp.sys занимает в системе, нам необходимо освежить в памяти общую теорию загрузки. Из неё мы знаем, что весь процесс запуска операционной системы Windows 7 на начальных стадиях можно описать следующим образом (упрощенное представление):

    • Выполняется код микропрограммы BIOS/UEFI (POST);
    • Выполняется код сектора MBR;
    • Выполняется код сектора(ов) PBR;
    • Выполняется код модуля Bootmgr.exe(.efi);
    • Выполняется код модуля Winload.exe(.efi);
    • Выполняется инициализация ядра (ntoskrnl.exe | ntkrnpa.exe | ntkrnlmp.exe | ntkrpamp.exe)
    • Ядро создает/запускает процесс SMSS, который создает сессии:
      • Сессия 0
        • запускается копия процесса CSRSS:
        • Wininit
        • SCM (services.exe)
        • LSASS
        • LSM
      • Сессия 1
        • запускается копия процесса CSRSS:
        • WinLogon
        • LogonUI.exe
        • UserInit
        • оболочка (explorer.exe)
        • Приложения автозагрузки

    Есть примета, что если зависает на classpnp.sys — это к апгрейду :) Если серьезно, то за все время компьютерной практики относительно данной темы накопилось несколько наблюдений:

    1. В разные периоды практики удавалось понаблюдать очень похожие между собой сбои, когда возникали ситуации, в которых загрузка в безопасном режиме зависала не на самом драйвере classpnp.sys, а на следующих за ним, то есть этот драйвер не был последним в списке (например, иногда загрузка вставала на agp440.sys).
    2. На нормально загружающихся в безопасном режиме системах периодически наблюдал картину, когда текстовый режим кончался на выводе строки classpnp.sys с надписью «Подождите, пожалуйста…», после чего присутствовала совсем уж короткая пауза и загрузка уходила в графический режим и продолжалась. Делаем выводы, что приведенная строка ожидания характеризует конец одного (визуально определяемого нами как «текстовый») этапа загрузки и переход к следующему (визуально «графическому»).

    Каково, а? Первый пункт, я бы сказал, просто расшатывает столпы веры в то, что виновником является именно драйвер classpnp.sys. Отсюда непременно возникает один резонный вопрос: действительно ли причина зависания кроется в тех драйверах, которые мы наблюдаем в списке на экране монитора? Или то что мы видим является ли истинной причиной происходящего?

    Этап Winload

    Где же впервые в коде модулей запуска встречается загрузка каких-либо системных или сторонних драйверов/библиотек? Очевидно что на этапе Winload.exe, поскольку именно в коде данного модуля впервые начинают загружаться системные драйвера с флагом BOOT_START. С целью анализа нам придется изучать исходный код, для этого расчехляем IDA и дизассемблируем код модуля Winload.exe. После продолжительного изучения алгоритмов можно прийти к выводу, что исполнение кода модуля начинается с точки входа в процедуре OslMain. Уже из этой процедуры вызывается дочерняя функция OslInitializeCodeIntegrity, которая проверяем целостность модулей, участвующих в загрузке. В коде основной функции встречается интересная вложенная функция под названием OslpLoadAllModules, которая используется разнообразным кодом для обеспечения загрузки системных модулей (они же — драйвера/библиотеки режима ядра). Могу ошибаться, но мне показалось, что все модули, загружаемые через неё на начальной стадии, делятся на:

    • жестко заданные во внутренней переменной OslMicrosoftBootImages;
    • загружаемые уже при подключении и разборе ветви реестра HKLMSYSTEMCurrentControlSetservices;
    • загружаемые при разборе зависимостей используемых функций;

    Непосредственно сама загрузка производится через вложенную функцию OslLoadImage (и подчиненную LoadImageEx). Теперь настало время ознакомиться с полным списком загружаемых кодом модуля Winload.exe драйверов:

    Имя Официальное описание Зависимости
    ntoskrnl.exe NT Kernel & System pshed.dll, hal.dll, bootvid.dll, kdcom.dll, clfs.sys, ci.dll
    hal.dll Hardware Abstraction Layer DLL ntoskrnl.exe, pshed.dll, kdcom.dll
    kdcom.dll Serial Kernel Debugger ntoskrnl.exe, hal.dll
    pshed.dll Драйвер аппаратных ошибок, специфичных для платформы ntoskrnl.exe, hal.dll
    bootvid.dll VGA Boot Driver ntoskrnl.exe, hal.dll
    ci.dll Code Integrity Module ntoskrnl.exe
    clfs.sys Common Log File System Driver ntoskrnl.exe, hal.dll
    fileinfo.sys Fileinfo Filter Driver ntoskrnl.exe, hal.dll, fltmgr.sys
    fltmgr.sys Диспетчер фильтров файловых систем Майкрософт ntoskrnl.exe, hal.dll
    atapi.sys ATAPI IDE Miniport Driver ntoskrnl.exe, ataport.sys
    ataport.sys ATAPI Driver Extension ntoskrnl.exe, hal.dll
    wmilib.sys WMILIB WMI support library DLL ntoskrnl.exe
    amdxata.sys Storage Filter Driver ntoskrnl.exe, hal.dll
    mountmgr.sys Диспетчер точек подключения ntoskrnl.exe, hal.dll
    msahci.sys MS AHCI 1.0 Standard Driver ntoskrnl.exe, pciidex.sys
    pciide.sys Generic PCI IDE Bus Driver ntoskrnl.exe, pciidex.sys
    pciidex.sys PCI IDE Bus Driver Extension ntoskrnl.exe, hal.dll
    msisadrv.sys ISA Driver ntoskrnl.exe, wdfldr.sys
    wdfldr.sys Kernel Mode Driver Framework Loader ntoskrnl.exe, hal.dll
    acpi.sys ACPI драйвер для NT ntoskrnl.exe, hal.dll, wmilib.sys
    partmgr.sys Partition Management Driver ntoskrnl.exe, hal.dll, wmilib.sys
    pci.sys NT Plug and Play PCI-перечислитель ntoskrnl.exe, hal.dll, pshed.dll
    vdrvroot.sys Корневой перечислитель виртуальных дисков ntoskrnl.exe, wdfldr.sys
    volmgr.sys Volume Manager Driver ntoskrnl.exe, hal.dll, wmilib.sys
    volmgrx.sys Драйвер расширения диспетчера томов ntoskrnl.exe, hal.dll
    wdf01000.sys Среда выполнения платформы драйвера режима ядра ntoskrnl.exe, hal.dll, wdfldr.sys
    msrpc.sys Kenrel Remote Procedure Call Provider ntoskrnl.exe
    cng.sys Kernel Cryptography, Next Generation ntoskrnl.exe, hal.dll
    pcw.sys Perfomance Counters for Windows Driver ntoskrnl.exe
    fs_rec.sys File System Recognizer Driver ntoskrnl.exe
    ndis.sys Драйвер NDIS 6.20 ntoskrnl.exe, hal.dll, netio.sys
    ksecpkg.sys Kernel Security Support Provider Interface Packages ntoskrnl.exe, ksecdd.sys, cng.sys
    ksecdd.sys Kernel Security Support Provider Interface Packages ntoskrnl.exe, hal.dll, msrpc.sys
    tcpip.sys Драйвер TCP/IP ntoskrnl.exe, hal.dll, msrpc.sys, ksecdd.sys, fwpkclnt.sys, fltmgr.sys, ndis.sys, netio.sys
    fwpkclnt.sys FWP/IPSec Kernel-Mode API ntoskrnl.exe, hal.dll, msrpc.sys, ndis.sys, netio.sys
    netio.sys Network I/O Subsystem ntoskrnl.exe, hal.dll, ndis.sys, msrpc.sys
    vmstorfl.sys Virtual Storage Filter Driver ntoskrnl.exe, hal.dll, wdfldr.sys
    volsnap.sys Драйвер теневого копирования тома ntoskrnl.exe, hal.dll
    spldr.sys loader for security processor ntoskrnl.exe
    rdyboost.sys ReadyBoost Driver ntoskrnl.exe, hal.dll, ksecdd.sys
    mup.sys Драйвер поставщика множественных UNC-имен ntoskrnl.exe, hal.dll
    hwpolicy.sys Hardware Policy Driver ntoskrnl.exe
    fvevol.sys BitLocker Drive Encryption Driver ntoskrnl.exe, hal.dll
    disk.sys PnP Disk Driver ntoskrnl.exe, hal.dll, classpnp.sys
    classpnp.sys SCSI Class System DLL ntoskrnl.exe, hal.dll

    В таблице представлены (сведены) драйверы, у которых соответствующий параметр START выставлен в значение 0, то есть приведенные в таблице драйвера можно смело назвать группировкой драйверов режима загрузки (BOOT). Столбец зависимостей приведен в таблице не случайно, он то как раз нужен нам с целью определения функциональных взаимосвязей (зависимостей на уровне функций) того или иного драйвера.

    В модуле winload.exe драйвер с именем classpnp.sys вы не найдете ни в жесткозакодированных (вкомпилированных) переменных, ни в ветвях реестра. Он загружается при разборе зависимостей от драйвера disk.sys, который использует некоторые функции classpnp.sys.

    Одним из первых загружается образ ядра (ntoskrnl.exe) и уровень аппаратных абстракций HAL.DLL, но секции импорта у этих модулей на данном этапе не разрешаются (то есть указанные модули просто подгружаются в память без связывания). Соответственно и код библиотеки на этом этапе всего-лишь загружается в адресное пространство ядра, для того что бы в последствии, после инициализации, функции были «видимыми» (доступными) для кода других драйверов. Затем, таблица импорта актуального модуля ядра (ntoskrnl.exe и аналогичные) заполняется и связывается (при помощи функции LoadImports и вложенной в неё BindImportRefences). После того, как все подобные подготовительные процедуры отработали, управление передается ядру при помощи функции OslArchTransferToKernel. То есть, давайте резюмируем данный этап загрузки:

    В процессе функционирования модуля Winload.exe драйвера режима загрузки только лишь подгружаются в память, но не инициализируются.

    Отсюда рождается ряд вопросов:

    • может ли этот этап (Winload.exe) загрузки зависнуть по причине какого-либо типа повреждения файлов подгружаемых драйверов (в том числе и библиотеки classpnp.sys)?
    • если да, то по каким именно причинам: повреждение записи файла в файловой системе ntfs? неправильная версия classpnp.sys? нулевая длина файла?

    Этап ntoskrnl

    Собственно, это ни что иное как ядро операционной системы. На самом деле имя ntoskrnl.exe используется только в одноядерной системе (без режимов SMP/PAE). Имена ядра определяются следующим образом:

    • ntoskrnl.exe — (1 ядро ЦП);
    • ntkrnlmp.exe — (N ядер ЦП, SMP);
    • ntkrnlpa.exe — (1 ядро ЦП, PAE);
    • ntkrpamp.exe — (N ядер ЦП, SMP, PAE);

    Как мы знаем из теории загрузки операционной системы Windows, после передачи управления на код модуля ядра, в нем происходит последовательная инициализация множества подсистем ядра. Поэтому дизассемблируем и начинаем изучать исходный текст актуального (на моей тестовой конфигурации это был ntkrnlpa.exe) ядра. Если честно, задача перед нами стоит не такая уж и тривиальная и по уму нам предстоит проанализировать множество этапов загрузки операционной системы и попытаться связать кодовые ветвления с событиями, происходящими на экране монитора. Тем не менее, при отсутствии исходников на языке C и знаний по декомпиляции кода из машинного языка в листинг на C, разобраться в дизассемблированных исходных кодах будет непросто, благо что разработчиком предоставляются символы ядра.
    Итак, выше мы уже упоминали, что визуально на экране надпись «Подождите, пожалуйста…» знаменует окончание какого-то одного этапа загрузки и переход к следующему, при том что деление это чисто формальное, но для нас оно требуется с целью упрощения понимания происходящего. Теперь, за неимением другой внятной логики, нам надо визуально привязаться к тому, что происходит на экране, но как отследить момент начала текстового этапа и его конец? Поскольку я не умею пока работать с удаленной отладкой, был использован следующий алгоритм действий: мы будем расставлять так называемые «точки зацикливания» (точки «подвисания»), представляющие собой пару машинных опкодов EB FE (команда «прыжка на месте» — jmp $) и вводящие процессор в бесконечный цикл выполнения.

    Ага, прямо так вот сразу взяли и модифицировали! Не все так просто как хотелось бы, дело в том, что ядро проверяет собственную целостность, поэтому если вы не выключили проверку подлинности кода ядра (флаги DISABLE_INTEGRITY_CHECKS и TESTSIGNING), то при попытке внесения изменений ядро «валится» в BSOD. Поэтому сперва нам следует отключить проверку целостности bootmgr и winload.

    Первая точка останова

    Как уже было рассмотрено, процесс загрузки некоторых драйверов категории BOOT_START начинается на этапе работы модуля winload.exe. Поэтому было решено начать с модуля winload.exe и попытаться обнаружить в нем участок кода, в котором процесс загрузки может подвиснуть на том самом текстовом участке (после вывода списка драйверов и сообщения «Подождите, пожалуйста..»). Далее, мы постараемся модифицировать найденный фрагмент таким образом, чтобы ввести в бесконечный цикл (подвесить), тем самым найдя первую точку останова. Самая удачная, по моему мнению, точка — это непосредственно перед передачей управления коду ядра ntoskrnl.exe. Где осуществляется передача управления? Для выяснения этого стартуем с начала основной процедуры OslMain и доходим до её финальной части, где код передачи управления происходит через вызов процедуры OslArchTransferToKernel. Вот так выглядит обрамляющий участок кода:

    .text:00401781                         loc_401781:

    .text:00401781 8B 70 1C                                mov     esi, [eax+1Ch]

    .text:00401784 E8 AC 7C 00 00                          call    _BlBdStop@0

    .text:00401789 56                                      push    esi

    .text:0040178A 53                                      push    ebx

    .text:0040178B E8 50 72 04 00                          call    near ptr _OslArchTransferToKernel@8

    .text:00401790

    .text:00401790                         loc_401790:

    .text:00401790 EB FE                                   jmp     short loc_401790

    .text:00401790                         _OslpMain@4     endp

    после непродолжительного оттупления, было решено заменить два маркированных (выделены цветом) пуша на инструкцию зацикленного прыжка jmp $ (опкоды EB FE). Изменения выполняем в шестнадцатеричном редакторе методом поиска длинной сигнатуры и замены (двух) байтов. После сохраняем изменений в Winload.exe, обязательно модифицируем контрольную сумму (CRC) образа, затем перезагружаемся, загрузка в безопасном режиме и.. результат:

    classpnp.sys подвисает

    Удача!! Произошло зависание процесса загрузки внутри «текстового» этапа на строке, содержащей имя драйвера classpnp.sys. Значит, мы попали своей модификацией в нужное место. Условимся, что отправная первая точка останова найдена.

    Вторая точка останова

    Теперь давайте попробуем определиться со второй точкой останова.

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

    Судя по всему, ядро принимает от кода модуля Winload.exe управление в собственной точке входа, которая является первой инструкцией функции KiSystemStartup. После этого процесс инициализации ядра системы проходит несколько внутренних этапов, во время которых на экране отображается все тот же «текстовый» режим (с уже знакомым нам списком загруженных драйверов). Затем происходит переключение в графический режим с разрешением 640×480 и выводом анимированного логотипа загрузки (bootscreen). Анимация этого логотипа обеспечивается группой функций с суффиксом Invb*, которые занимаются инициализацией драйвера видеокарты и последующим выводом разнообразных графических примитивов. Например, функция InbvUpdateProgressBar в определенном режиме обновляет прогресс-бар времени загрузки.
    Но это все представляет для нас лишь опосредованный интерес, поскольку после текстового режима загрузка уходит в графический режим далеко не сразу. Этап с выводом логотипа находится в модуле ядра, а вот переход к следующему (графическому) этапу происходит позже, во время загрузки диспетчера (менеджера) сессий SMSS (модуль smss.exe). Вычислил я это экспериментальным путем, проставляя точки останова по ходу исполнения этапов инициализации ядра. В конце концов я обнаружил интересную процедуру с именем Phase1Initialization, в которой происходит вызов вложенной процедуры Phase1InitializationDiscard, в конце которой мы находим следующий фрагмент кода:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    . . .

    INIT:007C9378                         loc_7C9378:                             ; CODE XREF: Phase1InitializationDiscard(x)+DCDj

    INIT:007C9378 6A 5A                                   push    5Ah

    INIT:007C937A E8 B3 D9 C3 FF                          call    _InbvUpdateProgressBar@4 ; InbvUpdateProgressBar(x)

    INIT:007C937F E8 BB 00 00 00                          call    _StartFirstUserProcess@0 ; StartFirstUserProcess()

    INIT:007C9384 FF 05 30 4B 57 00                       inc     _InitializationPhase

    INIT:007C938A 53                                      push    ebx             ; Tag

    INIT:007C938B FF 74 24 34                             push    [esp+0B8h+P]    ; P

    INIT:007C938F E8 2A 47 D6 FF                          call    _ExFreePoolWithTag@8 ; ExFreePoolWithTag(x,x)

    INIT:007C9394 53                                      push    ebx             ; Argument2

    INIT:007C9395 53                                      push    ebx             ; Argument1

    INIT:007C9396 FF 35 28 6E 54 00                       push    _ExCbPhase1InitComplete ; CallbackObject

    INIT:007C939C E8 B6 83 C6 FF                          call    _ExNotifyCallback@12 ; ExNotifyCallback(x,x,x)

    INIT:007C93A1 39 1D 20 CE 54 00                       cmp     _ViVerifierEnabled, ebx

    INIT:007C93A7 74 07                                   jz      short loc_7C93B0

    INIT:007C93A9 6A 05                                   push    5

    INIT:007C93AB E8 DB D0 F7 FF                          call    _VfNotifyVerifierOfEvent@4 ; VfNotifyVerifierOfEvent(x)

    . . .

    Как помечено цветовой маркировкой, тут у нас вызывается функция _StartFirstUserProcess которая и создает процесс SMSS (Диспетчер сеанса/сессии, Session Manager Subsystem Service). Фактически именно в коде данной функции и происходит (визуально) переключение из графического режима 640×480 в «родное» разрешение установленного монитора (при условии, что установлены драйвера видеоадаптера и выставлено правильное разрешение). Таким образом, инструкция вызова функции _StartFirstUserProcess и знаменует собой:

    • в безопасном режиме: окончание «текстового» этапа загрузки модуля ядра;
    • в нормальном режиме: начало этапа анимированного логотипа (bootscreen);

    Но поскольку мы сейчас разбираем именно безопасный режим загрузки, то данная функция является последней точкой блока кода, зависание внутри которого подвешивает загрузку со списком драйверов на экране. Таким образом мы (вероятно) получили вторую точку останова, тем самым обозначив участок возникновения проблем!!

    Данным экспериментом мы подтвердили, что от момента вывода на экран строки о загрузке библиотеки classpnp.sys и до перехода в графический режим происходит выполнение довольно большого фрагмента кода, на протяжении которого возможно (теоретически) огромное количество подвисаний в абсолютно разносортных по назначению процедурах.

    Между точками: инициализация драйвера classpnp.sys

    Помните мы говорили, что загрузка большинства драйверов происходит на этапе работы модуля Winload.exe, а вот связывание и инициализация этих драйверов происходит уже на этапе работы модуля ядра (ntoskrnl.exe). Выходит что и инициализация интересующей нас библиотеки classpnp.sys происходит на этапе функционирования ядра. Давайте проверим, могут ли проблемы с инициализацией быть причиной зависания, для этого изучим внутреннюю структуру драйвера classpnp.sys. Как и в любом другом драйвере, после загрузки в адресное пространство ядра, требуется выполнить инициализацию, поэтому вызывается процедура инициализации драйвера, которая традиционно носит название DriverEntry.

    . . .

    INIT:0002F048                         _GsDriverEntry@8 proc near

    INIT:0002F048

    INIT:0002F048                         DriverObject    = dword ptr  8

    INIT:0002F048                         RegistryPath    = dword ptr  0Ch

    INIT:0002F048

    INIT:0002F048 8B FF                                   mov     edi, edi

    INIT:0002F04A 55                                      push    ebp

    INIT:0002F04B 8B EC                                   mov     ebp, esp

    INIT:0002F04D E8 BD FF FF FF                          call    ___security_init_cookie

    INIT:0002F052 5D                                      pop     ebp

    INIT:0002F053 EB B0                                   jmp     short _DriverEntry@8

    INIT:0002F053                         _GsDriverEntry@8 endp

    . . .

    и код вызываемой подфункции:

    . . .

    INIT:0002F005                         _DriverEntry@8  proc near

    INIT:0002F005 33 C0                                   xor     eax, eax

    INIT:0002F007 C2 08 00                                retn    8

    INIT:0002F007                         _DriverEntry@8  endp

    . . .

    Ну и что мы тут видим? Помимо сервисной функции __security_init_cookie, которая, по заверению разработчиков, предназначается для защиты от переполнения буфера (При входе в функцию с защитой от переполнения cookie-файл помещается в стек, а при выходе значение в стеке сравнивается с глобальным cookie-файлом. Любое различие между ними указывает, что произошло переполнение буфера, что приводит к немедленному завершению работы программы), процедура инициализации этого драйвера не выполняет никаких специфических действий, по большому счету не делает вообще ничего, что могло бы её подвесить, даже не инициализирует привычных структур драйвера и не содержит никаких вложенных вызовов, просто-напросто возвращает управление с кодом STATUS_SUCCESS (EAX=0). И о чем нам это может говорить? Это говорит нам о том, что:

    Сам по себе код classpnp.sys на этапе инициализации не является источником проблем, поскольку это библиотека для стороннего использования и процедура инициализации её исключительно формальна (предельно проста).

    Такое возможно, однако требуется дополнительное подтверждение. Вспоминаем, что драйвер classpnp.sys является библиотекой класса устройств и его функции вызываются из других драйверов. Надо проверить все драйвера режима BOOT_START на предмет использования функций данной библиотеки. Судя по всему, функции библиотеки classpnp.sys на начальном «текстовом» этапе использует всего один-лишь драйвер disk.sys.

    Между точками: инициализация драйвера disk.sys

    Ну что же, тогда перейдем к драйверу disk.sys и проверить гипотезу о причастности его к подвисанию, с этой целью дизассемблируем и заглянем в код. Данный драйвер является драйвером класса дисковых накопителей и обеспечивает монтирование сконфигурированных в системе дисковых томов. В драйвере процедура инициализации (DriverEntry) выглядит уже намного сложнее, в ней мы обнаруживаем вызовы функции ClassInitialize, которая не является собственной внутренней функцией драйвера, а импортируется из библиотеки класса устройств classpnp.sys. Возможно что функция ClassInitialize может вызываться любым драйвером класса устройства при выполнении его собственной функции инициализации драйвера DriverEntry.

    Один интересный момент: на экране (в списке) мы видим пункт с драйвером disk.sys ДО classpnp.sys, тем не менее, для того, чтобы disk.sys мог использовать некоторые свои функции, библиотека classpnp.sys должна быть УЖЕ загружена и инициализирована ДО загрузки и инициализации disk.sys. Этот факт лишний раз подтверждает, что та последовательность загрузки драйверов, которую мы наблюдаем на экране при запуске в защищенном режиме, всего-навсего отражает очередность загрузки драйверов/библиотек в память на этапе работы модуля загрузчика Winload, но никак не отражает очередность их инициализации на стадии ядра Ntoskrnl. Что, в свою очередь, укрепляет нас в предположении, что видимый нами последним на экране драйвер не обязательно является причиной подвисания!!

    Хорошо, переключаемся на изучение исходного кода драйвера classpnp.sys и анализируем код функции ClassInitialize, а вот он то как раз ужасающе огромен :) Но ошибочные коды возврата все же удалось обнаружить:

    • Функция возвращает C0000059 (STATUS_REVISION_MISMATCH): в случае расхождения размера структуры InitializationData, фактически проверка версии файла classpnp.sys.
    • Функция возвращает C0000059 (STATUS_REVISION_MISMATCH): если требуемые поля структуры (фактически ссылки на соответствующие функции драйвера) нулевые (NULL).
    • Функция возвращает C000009A (STATUS_INSUFFICIENT_RESOURCES): если нулевое значение буфера RegistryPath.Buffer в расширениях driverExtension. То есть похоже не выделился буфер по каким-то причинам.
    • Функция возвращает C0000035 (STATUS_OBJECT_NAME_COLLISION): в любом ином случае.

    Драйвер disk.sys обеспечивает функционирование стека устройств хранения в операционной системе Windows, и ниже данного драйвера в стеке располагаются:

    • драйверы многопутевого ввода-вывода (MPIO-драйвера, обеспечивающие доступность томов по нескольким путям) (mpio.sys и прч.);
    • драйверы порта (обеспечивает поддержку транспортного протокола: SCSI/SAS/SATA/ATAPI);
    • драйвер минипорта (обеспечивает функциональность контроллера на материнской плате);

    Но, опять же, сам драйвер disk.sys на этапе функционирования ядра (ntoskrnl.exe) не может быть причиной зависания, поскольку тут он инициализируется: вызывается функция инициализации драйвера DriverEntry. А как мы видели выше, в процедуре инициализации в случае проблем возвращаются конкретные коды ошибок, которые будут выведены на экран в случае сбоя, что исключает «тихое» подвисание.

    Что еще между точками?

    Ну хорошо, помимо инициализации вышеописанных драйверов, что у нас еще расположено между найденными нами точками останова? Да там адская прорва кода!! Получается, что весь код, размещающийся от начала кода модуля ядра в функции KiSystemStartup и до окончания в функции Phase1InitializationDiscard (фактически всей фазы 1), может, потенциально, являться причиной изучаемого нами подвисания (в безопасном режиме). Да уж, тут, что называется, без комментариев!!
    Но не все так страшно, как кажется на первый взгляд. В большинстве расположенного на этом участке кода ядра выполняется обработка возникающих ошибок, что тем или иным образом (в виде сообщений) становится известно пользователю. А вот где действительно могут скрываться «мертвые» зависания процесса загрузки, так это на стыке хорошо отлаженного кода ядра и кода сторонних драйверов (то есть на этапе загрузки/инициализации драйверов сторонних разработчиков). Судя по всему в ядре существуют несколько цепочек кода загрузки подобных драйверов:

    • Start = 0 (режим BOOT_START) : цепочка вызова функций IoInitSystemIopInitializeBootDriversPnpInitializeBootStartDriverIopInitializeBuiltinDriver;
    • Start = 1 (режим SYSTEM_START) : цепочка вызова функций IoInitSystemIopInitializeSystemDriversIopLoadDriverMmLoadSystemImage;
    • Start = 2 (режим AUTO_START) : цепочка вызова функций NtLoadDriverIopLoadUnloadDriverIopLoadDriverMmLoadSystemImage;
    • Start = 3 (режим DEMAND_START) : ???

    Вот перечисленные то функции нам в первую очередь и интересны. В дополнение участвует функция MmLoadSystemImage, которая выполняет загрузку исполняемого образа драйвера в адресное пространство ядра (создает секции и производит связывание, заполняет таблицы импорта, перемещения, выполняет проверки безопасности и прочие задачи.). Еще одна функция IopLoadDriver работает с реестром, ответственная за открытие файла драйвера, создание объекта драйвера и передачу управления на точки входа (вызов процедуры инициализации DriverEntry). Для драйверов режима BOOT_START, функции IopLoadDriver и MmLoadSystemImage не участвуют в процессе, поскольку, как мы писали ранее, данные драйвера загружаются еще на этапе winload.exe.

    Если предположить, что я допустил ошибку в оценке области подвисания, то в эту область еще должны входить последующие этапы, начиная с smss.exe и до самого logonui.exe. А мы знаем, что на этих этапах уязвимым для сбоев местом являются сервисы/службы режимов AUTO_START и DEMAND_START как загружаемые на схожих с драйверами принципах.

    . . .

    ПРОДОЛЖЕНИЕ СЛЕДУЕТ

    . . .

    Общие причины

    Общие причины подвисания следующие:

    • установленное на станции железо: после загрузки общих библиотек/драйверов (в том числе и classpnp.sys) начинается перечисление устройств и загрузка драйверов к ним.
    • подключение системных томов: возможно ядро не может проинициализировать устройство (накопитель), на котором располагается один из сконфигурированных в системе разделов.
    • установленное на станции железо: возможно загрузка какого-либо драйвера устройства проводит первичную инициализацию устройства (через вызов инициализации драйвера и вложенных процедур), которая не может завершиться, подвешивая весь процесс запуска системы.

    Частные причины [решения]

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

    • BIOS: перепрошивка BIOS на последнюю версию + сброс всех настроек в [Factory] Default (умолчание);
    • BIOS: замена механизма подключения дисков с AHCI → IDE (и наоборот);
    • BIOS: смена режима работы контроллера с Compatible (Legacy) Mode → Enhanced (Native) mode (и наоборот);
    • BIOS: смена режима загрузки CSM (Legacy) ↔ UEFI;
    • Железо: вышедшие из строя сторонние аппаратные модули (например: WIFI/Bluetooth/CardReader): отключение их в BIOS или (при возможности) физически на материнской плате;
    • Железо: попробовать использовать для загрузочного диска другой порт IDE/SATA на материнской плате;
    • Железо: в случае наличия в системе нескольких накопителей — поочередное отключение носителей (HDD/SSD);
    • Железо: заменить кабели данных/питания;
    • Железо: проверка утилитами SMART-мониторинга состояния основного загрузочного диска (замена в случае наличия существенных проблем);
    • Железо: проблема с модулями ОЗУ (RAM) + нестандартные настройки таймингов при использовании «нестандартных» модулей/разгоне;
    • ОС: загрузиться с LiveCD, подцепить реестр сбойной машины, в ветке HKLMSYSTEMCurrentControlSetservices пройтись по всем ключам и для каждого драйвера с параметром START = 0 проверить физическое наличие в файловой системе соответствующего файла.
    • ОС: загрузиться с LiveCD, подцепить реестр сбойной машины (ветка HKLMSYSTEMCurrentControlSetservices), пробежаться по всем ключам и для каждого драйвера этапа BOOT_START (список выше в статье) проверить чтобы параметр START был равен 0.
    • ОС: проверка файловой системы диска (команда: chkdsk c: /f /r);
    • ОС: подмена/повреждение драйверов этапа загрузки:
      • замена всего набора файлов classpnp.sys/disk.sys и остальных драйверов начальной загрузки из единого доверенного источника — работоспособной ОС аналогичной редакции (с сохранением старых, конечно же).
      • отключение проверки подписей драйверов. в меню начальной загрузки (клавиша F8 на старте) нужно отключить проверку подписей драйверов;
    • ОС: Разнообразные модификации ключевых структур разметки жесткого диска: например, сокрытие/отображение дисков при помощи сторонних утилит (Acronis);
    • ОС: Отключение любого ПО, способного вмешиваться в ранние этапы загрузки ОС: антивирусы, оптимизаторы, системы обнаружения вторжений и прочее подобное;

    Выводы

    При изучении некоторых функций модулей загрузки, я вышел на некий термин Adding Event Tracing to Kernel-Mode Drivers, вероятно возможность появилась начиная с версии Windows Vista. ETW и WPP — два инструмента диагностики для системных приложений (в том числе и драйверов). Интересно, можно включить через утилиту perfmon логгирование для classpnp/disk? Памятка: Группы сборщиков данных — сеансы отслеживания событий — ПКМ — создать — группа сборщиков данных — создать вручную (для опытных) — далее — в окне поставщики жмем добавить — Disk Class Driver Tracing Provider и Classpnp. Тем не менее, тут же возникает резонный вопрос: как это применимо к уже подвисающим станциям? Как на них можно включить логгирование и получить отчет?
    К тому же, интересно, описанная в статье проблема зависания на classpnp.sys решена в Windows 10? И как та же логика реализована в Windows 10, имеются ли там «визуальные» зависания этапа загрузки и как изменился алгоритм обработки отказа в загрузке сторонних драйверов?

    Like this post? Please share to your friends:
  • Windows 7 виснет при завершении установки
  • Windows 7 виснет при входе в систему
  • Windows 7 виснет на disk sys
  • Windows 7 висит окно запуск windows
  • Windows 7 висит на заставке добро пожаловать