Помощь в устранении синих экранов смерти (BSOD)

Что такое BSOD?

BSOD (англ. Blue Screen Of Death – “синий экран смерти”) – название ошибки, возникающей в коде, который выполняется в режиме ядра ОС Windows. Работать в системе после возникновения такой ошибки уже нельзя. После того как возникает синий экран смерти, ОС Windows создает дамп памяти, тип которого можно изменить и перегружает компьютер (это поведение также можно изменить). Дамп содержит важную информацию, анализируя которую, можно найти причину краха. Следует заметить, что бывают ситуации, когда дамп может не формироваться, например, при проблемах с драйвером жесткого диска.

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

Причины возникновения

Основная причина возникновения BSOD (согласно статистике Microsoft)  – это ошибки в коде драйверов сторонних разработчиков (70%).

image_thumb5-6418524

Как уже обсуждалось о режимах работы ОС Windows, только код, который работает в режиме ядра может быть причиной BSOD, за исключением ошибок в важных для системы процессах пользовательского режима: winlogon.exe, crss.exe. Поэтому, такие приложения как:

  • браузеры;
  • текстовые редакторы;
  • игры;
  • файловые менеджеры и т.п.

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

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

устанавливают свои драйвера, поэтому могут приводить к появлению BSOD.

Аппаратные ошибки также приводят к синим экранам смерти. Наиболее часто приходится встречаться с проблемами в работе памяти, жестких дисков, а также сбоями в работе, связанными с перегревом. Что же касается кода Microsoft, то это в основном, касается установки различных обновлений безопасности. Например, после выявления уязвимости, выпускается обновление безопасности, которое устраняет уязвимость, заменяя старый сетевой драйвер на новый с ошибками, вот и начинают возникать синие экраны смерти.

Информация отображаемая во время BSOD

Вот как выглядит экран с BSOD

windows-xp-professional-2014-02-15-17-21-09_thumb1-8498313

Давайте рассмотрим каждый из параметров, который присутствует на изображении:

  • DRIVER_IRQL_NOT_LESS_OR_EQUAL – это всего лишь символическое имя ошибки, чтобы не вспоминать, что такое STOP 0x000000d1;
  • STOP 0x000000D1 – код ошибки, благодаря которому, можно попытаться понять, что же именно произошло и что стало причиной;
  • параметры ошибки (указаны в скобках за самим кодом) – обычно используются разработчиками драйверов для анализа причины краха;
  • myfault.sys – предположительное имя драйвера, из-за которого возник BSOD.  К сожалению, в очень многих случаях, система не может правильно определить драйвер, из-за которого возникает синий экран смерти. Касательно этого кода ошибки (STOP 0x000000D1), система делает это правильно.

Во время отображения синего экрана смерти, система выполняет сохранение дампа памяти на жесткий диск. Иногда вы можете обратить внимание, что это происходит буквально мгновенно – это означает, что формируется малый дамп размером в 256 (64) Кб и система выполняет перезагрузку (можно отключить автоматическую перегрузку, см. ниже).

Информация на экране, а также сохраненный дамп – это единственные источники данных о причинах BSOD.

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

Настройка параметров ОС Windows, связанных с BSOD

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

В Windows 7 заходим “Пуск / Компьютер” правый клик мыши, выбираем “Свойства”. Выбираем “Дополнительные параметры системы” и выбираем “Параметры” напротив “Загрузка и восстановление”.

image_thumb7-8908889

Параметр “Файл дампа” задает путь к файлам дампов. %SystemRoot% – означает обычно каталог C:windows. Типы дампов:

  • дамп памяти ядра (это дамп всей памяти ОС, которая используется ядром и драйверами);
  • малый дамп памяти (дамп основной информации, такой как: стек на момент выполнения, список драйверов, данные касательно BSOD, такие как код ошибки и т.д.).

Если формируется дамп памяти ядра то предыдущий файл дампа перезаписывается, если установлено “Заменять существующий файл дампа”. Малый дамп памяти записывается по умолчанию в каталог %SystemRoot%Minidump. Малый дамп памяти в имени файла содержит дату и время, поэтому перезаписи не происходит. Конечно же дамп памяти ядра содержит больше полезной информации для анализа, но его размер может достигать значительных размеров, поэтому для того, чтобы быстро помочь пользователю, достаточно файла малого дампа памяти.

В Windows XP параметры практически аналогичны, за исключением типов дампов. Здесь есть следующие типы:

  • малый дама памяти (64 Кбайт);
  • дамп памяти ядра;
  • полный дамп памяти (сколько у вас ОЗУ такой размер дампа и будет, то есть в файле будет информация также о приложениях, который выполняются в пользовательском режиме).

Параметр “Записать событие в системный журнал” полезен в случае если компьютеров много, и есть какое-либо программное обеспечение, которое анализирует события в журналах аудита ОС Windows. Благодаря этому параметру можно включить сохранение специального события. Позже можно будет сформировать статистику по этому событию, например, по нескольким 1000-ам компьютеров, после чего найти проблемные и сделать наряды на работников ИТ.

Способы устранения

Мы подошли к самому интересному моменту. К сожалению, на основании файлов дампов не всегда можно установить причину BSOD, хотя бы в силу того, что сами файлы дампов могут быть повреждены (см. статистику причин появления BSOD). Кроме того, иногда причины могут быть слишком явными, например, поставили новое ПО – получили BSOD, удалили – все нормально. Дампы памяти более полезны, в первую очередь, разработчикам драйверов, которые благодаря им, могут найти ошибки в своем ПО. Часто приходится включать память и смекалку. Я приведу следующий алгоритм, который поможет вам самостоятельно найти причину.

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

windows-xp-professional-2014-02-15-18-57-23_thumb-2831713

Если синие экраны начались после того как вы установили драйвера к новой видеокарте или какому-либо другому устройству попробуйте обновить драйвера этого устройства до самой последней версии. Также проверьте установленные драйверы в вашей системе на предмет выявления подозрительных. Как это сделать, читайте в посте – проверка цифровой подписи драйверов с помощью sigcheck, а также в посте – проверка цифровой подписи драйверов с помощью sigverif.

Анализ аппаратной среды. Вспомните когда возникают синие экраны смерти. Это происходит когда вы играете в свою любимую игрушку, которая загружает ваше железо по полной? Если да, возможно причина в перегреве каких-либо компонент. Проверьте температуру процессора, жесткого диска. Обратите внимание на то, сильно ли запылен корпус вашего компьютера. Также обязательно проверьте память (см. пост — «Как проверить память в Windows 7 встроенной утилитой mdsched?«, а также «Диагностика памяти с помощью Memtestx86+«). Сбойная память также часто приводит к синим экранам смерти. Приводить к BSOD может один из компонентов аппаратной части: жесткий диск, видеокарта и т.д. В этом случае нужно анализировать дампы и делать выводы, является ли причиной сами драйвера. Если это не так то тогда необходимо пробовать менять по очереди видеокарту, память. Смотреть после этого, появляется ли проблема вновь.

Я когда-то купил две планки памяти б/у и не проверил их на работоспособность. Начали постоянно возникать синие экраны смерти. Здесь не трудно было догадаться о причине. Желательно поинтересоваться у продавца, проверял ли он память, например, такой программой как memtest86+. Еще один случай был с совершенно новым ноутбуком, на работе, на который никак не хотела устанавливаться ОС Windows XP (вылетал BSOD). Причина также была в сбойной памяти.

К сожалению, memtest86+ не всегда работает корректно. Я сталкивался с этим на серверах HP. Встроенные в BIOS серверов утилиты проверки памяти показывали, что все нормально, тогда как memtest86+ говорила о сбойной памяти.

Анализ файлов дампов. Выполните анализ сохраненных дампов памяти. Повторяется ли одна и та же ошибка или она разная? Если ошибка одна и та же, скажем, в 5 файлах и это такая ошибка как DRIVER_IRQL_NOT_LESS_OR_EQUAL то это говорит о том, что у вас проблема не с аппаратной частью, а с ошибками в драйвере. Также прочтите статью как выполнять анализ файлов дампов после BSOD — Анализ дампов после BSOD с помощью Debugging Tools for Windows. Если установить проблемный драйвер сложно, обязательно прочтите “Как пользоваться утилитой Driver Verifier”.

Если самому не получилось установить причину BSODсоздайте тему на форуме.

Интересное о BSOD

Марк Руссинович написал не одну полезную программу, которые могут вам пригодится и которые непосредственно связаны с BSOD:

  • программа генерации BSOD. Эта программа устанавливает драйвер в систему, который содержит одну из заранее определенных ошибок. После выбора типа ошибки и нажатия на кнопку, программа посылает команду драйверу, который вызывает крах системы. Эта программа может быть полезной при самостоятельном изучении типичных ошибок при программировании драйверов, а также способов анализа файлов дампов.
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: