- Главная
- Что такое BSOD?
- Причины возникновения
- Информация отображаемая во время BSOD
- Настройка параметров ОС Windows, связанных с BSOD
- Способы устранения
- Интересное о BSOD
- Анализ причин возникновения BSOD (Синий экран смерти) в Windows
- Почему возникает и как исправить?
- Как узнать причину возникновения BSOD?
- BlueScreenView
- WhoCrashed
- Debugging Tools for Windows
Главная
Что такое BSOD?
BSOD (англ. Blue Screen Of Death – “синий экран смерти”) – название ошибки, возникающей в коде, который выполняется в режиме ядра ОС Windows. Работать в системе после возникновения такой ошибки уже нельзя. После того как возникает синий экран смерти, ОС Windows создает дамп памяти, тип которого можно изменить и перегружает компьютер (это поведение также можно изменить). Дамп содержит важную информацию, анализируя которую, можно найти причину краха. Следует заметить, что бывают ситуации, когда дамп может не формироваться, например, при проблемах с драйвером жесткого диска.
BSOD — это защитный механизм ОС Windows, который позволяет предотвратить более серьезные проблемы. Например, если у нас аппаратные проблемы с жестким диском, вряд ли стоит позволять работать такой системе дальше, мы можем потерять важную информацию из-за этого.
Причины возникновения
Основная причина возникновения BSOD (согласно статистике Microsoft) – это ошибки в коде драйверов сторонних разработчиков (70%).
Как уже обсуждалось о режимах работы ОС Windows, только код, который работает в режиме ядра может быть причиной BSOD, за исключением ошибок в важных для системы процессах пользовательского режима: winlogon.exe, crss.exe. Поэтому, такие приложения как:
которые практически никогда не устанавливают драйвера, не могут быть причиной синих экранов смерти. И наоборот, такие приложения как:
устанавливают свои драйвера, поэтому могут приводить к появлению BSOD.
Аппаратные ошибки также приводят к синим экранам смерти. Наиболее часто приходится встречаться с проблемами в работе памяти, жестких дисков, а также сбоями в работе, связанными с перегревом. Что же касается кода Microsoft, то это в основном, касается установки различных обновлений безопасности. Например, после выявления уязвимости, выпускается обновление безопасности, которое устраняет уязвимость, заменяя старый сетевой драйвер на новый с ошибками, вот и начинают возникать синие экраны смерти.
Информация отображаемая во время BSOD
Вот как выглядит экран с BSOD
Давайте рассмотрим каждый из параметров, который присутствует на изображении:
Во время отображения синего экрана смерти, система выполняет сохранение дампа памяти на жесткий диск. Иногда вы можете обратить внимание, что это происходит буквально мгновенно – это означает, что формируется малый дамп размером в 256 (64) Кб и система выполняет перезагрузку (можно отключить автоматическую перегрузку, см. ниже).
Информация на экране, а также сохраненный дамп – это единственные источники данных о причинах BSOD.
BSOD может возникать при загрузке системы, прерывая дальнейшую работу. В таком случае, попытайтесь загрузиться в последней удачной конфигурации или в Safe режиме (для этого необходимо нажимать F8 в начале загрузки системы).
Настройка параметров ОС Windows, связанных с BSOD
ОС Windows имеет ряд настроек, благодаря которым, мы можем изменить тип формируемого файла дампа, а также поведение самой системы, например, будет ли она выполнять перегрузку или нет. Давайте рассмотрим их.
В Windows 7 заходим “Пуск / Компьютер” правый клик мыши, выбираем “Свойства”. Выбираем “Дополнительные параметры системы” и выбираем “Параметры” напротив “Загрузка и восстановление”.
Параметр “Файл дампа” задает путь к файлам дампов. %SystemRoot% – означает обычно каталог C:windows. Типы дампов:
Если формируется дамп памяти ядра то предыдущий файл дампа перезаписывается, если установлено “Заменять существующий файл дампа”. Малый дамп памяти записывается по умолчанию в каталог %SystemRoot%Minidump. Малый дамп памяти в имени файла содержит дату и время, поэтому перезаписи не происходит. Конечно же дамп памяти ядра содержит больше полезной информации для анализа, но его размер может достигать значительных размеров, поэтому для того, чтобы быстро помочь пользователю, достаточно файла малого дампа памяти.
В Windows XP параметры практически аналогичны, за исключением типов дампов. Здесь есть следующие типы:
Параметр “Записать событие в системный журнал” полезен в случае если компьютеров много, и есть какое-либо программное обеспечение, которое анализирует события в журналах аудита ОС Windows. Благодаря этому параметру можно включить сохранение специального события. Позже можно будет сформировать статистику по этому событию, например, по нескольким 1000-ам компьютеров, после чего найти проблемные и сделать наряды на работников ИТ.
Способы устранения
Мы подошли к самому интересному моменту. К сожалению, на основании файлов дампов не всегда можно установить причину BSOD, хотя бы в силу того, что сами файлы дампов могут быть повреждены (см. статистику причин появления BSOD). Кроме того, иногда причины могут быть слишком явными, например, поставили новое ПО – получили BSOD, удалили – все нормально. Дампы памяти более полезны, в первую очередь, разработчикам драйверов, которые благодаря им, могут найти ошибки в своем ПО. Часто приходится включать память и смекалку. Я приведу следующий алгоритм, который поможет вам самостоятельно найти причину.
Анализ программной среды. Вспоминаем, как программное обеспечение было установлено совсем недавно, особенно если это программы, которые используют драйвера (антивирусы, брандмауэры и т.д.), о чем было написано выше. Если у вас есть подозрения касательно определенных программ, попробуйте удалить их и поработать некоторое время. Если синие экраны исчезли – значит причина в этих программах. Попробуйте обновить эти программы до самых последних версий или обратитесь в тех поддержку разработчика. Если ваша система перестала загружаться, при загрузке системы нажимайте F8 и выбирайте “Последняя удачная конфигурация”.
Если синие экраны начались после того как вы установили драйвера к новой видеокарте или какому-либо другому устройству попробуйте обновить драйвера этого устройства до самой последней версии. Также проверьте установленные драйверы в вашей системе на предмет выявления подозрительных. Как это сделать, читайте в посте – проверка цифровой подписи драйверов с помощью 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 (Синий экран смерти) в Windows
В один безрадостный день (ночь) вы убеждаетесь, что бунт машин – не выдумка фантастов. Ваш комп перезагрузился. Сам. Без вашего желания, и, что наиболее поразительно, не спросив разрешения! Потом это случилось еще раз. Потом еще. Если вы – не Большой Босс, комп нужен вам для работы (полноценного отдыха), и морока с сервис-центром не входит в ваши планы, вы начинаете искать причину. И в еще один (прекрасный) день вам говорят, что перезагружаясь, комп пытается спастись от краха системы, и если вы эту перезагрузку снимете, то можно узнать причину грозящей беды.
Почему возникает и как исправить?
Синий экран смерти в Windows (известный также как BSOD) часто возникает даже на самых стабильных версиях ОС, таких как Windows 7 и Windows 10. Все дело в том, что огромное количество различных драйверов и модулей пишутся иногда очень неквалифицированными разработчиками, а также из-за различных багов в самой ОС Windows, так как ее исходный код закрыт. Сюда же добавляются различные программы для компьютера, которые обеспечивают «безопасность», вроде фаерволов и антивирусов.
Очевидно, чтобы исправить возникшую проблему, необходимо удалить софт, который вызывает эту проблему. Но заботливые разработчики из майкрософт сделали все максимально информативно (это сарказм), чтобы пользователь был вынужден пользоваться их службой поддержки и вместо всей необходимой информации показывают лишь код ошибки, пряча все остальное. Поэтому, чтобы самостоятельно разобраться почему вылезает синий экран смерти в Windows, необходимо будет пойти более длинным путем и разобраться в причинах возникновения.
Как узнать причину возникновения BSOD?
Рецепт прост, как все гениальное: нажимаем две клавиши — Win + R , и вводим туда команду:
и затем нажимаем Enter (или кнопку ОК).
Откроются «Свойства системы», где нужно перейти на вкладку Дополнительно, нажать на кнопку Параметры в разделе Загрузка и восстановление. И, наконец, в появившемся окошке, в разделе Отказ системы снять галочку напротив Выполнить автоматическую перезагрузку.
И вот с этого момента ваша зубная боль (перезагрузки) превращается в головную. Потому что с какого-то момента при очередном отказе системы появляется знаменитый Синий Экран (BSOD), на котором написаны цифры, тот самый код, в котором хранится та самая страшная тайна.
BlueScreenView
Одна из самых популярных программ для анализа дамп файлов — BlueScreenView, которая распространяется абсолютно бесплатно на сайте своего автора — в том числе, и для не домашнего использования. В наличии есть как и портативная версия, так и версия с полноценной установкой в систему. Утилита так же имеет поддержку русского языка (требует скачивания дополнительного пакета локализации, который необходимо разместить в один каталог с программой).
В использовании программа так же достаточно проста. Достаточно скачать программу, установить или распаковать её в любую папку (например, на «Рабочий стол»), и запустить исполняемый файл. Программа сама начнет автоматическое сканирование и анализ имеющихся дампов.
Интерфейс программы BlueScreenView
Интерфейс программы можно разделить на две части — верхнюю и нижнюю, каждая из которых представляет из себя таблицу. В верхней части отображен список имеющихся дампов, символьное имя ошибки (столбец Bug Check String), код ошибки (Bug Check Code), драйвер вызвавший падение системы (Caused By Driver), и другая полезная информация. Так же, при нажатии правой кнопкой мыши, будет предложено запустить поиск в гугле по коду ошибки и имени драйвера.
В нижней части окна программы можно увидеть информацию о загруженных в момент падения системы драйверах, причем те драйверы, которые вызвали синий экран смерти будут выделены красным цветом. Например, на картинке выше можно увидеть, что причиной синего экрана являлся файл CProCtrl.4.0.0.17.sys (компонент КриптоПро).
WhoCrashed
Наверное самая простая программа для анализа дампов, с целью определения причины падения системы. Скачать её можно со страницы разработчика (прямая ссылка на установщик). Стоит отметить, что программа бесплатна только для домашнего использования.
Если же Вы обычный домашний пользователь, то можете совершенно спокойно скачать и установить программу. После запуска, необходимо нажать кнопку «Analyze» с большой зеленой стрелкой, после чего программа начнет работу с последним файлом дампа в системе. В конце анализа, программа выдаст уведомление о его завершении, с предложением пролистать окно программы в самый низ, для просмотра результата.
Как можно увидеть на скриншоте, программа обнаружила, что причиной BSOD’а стал драйвер atikmpag.sys, который является драйвером AMD.
Debugging Tools for Windows
Пометавшись по Сети, получив на разных форумах рекомендации от замены всего железа и переустановки системы до. других (наверное, умных – потому что совершенно непонятных) и добравшись до сайта поддержки Майкрософт, вы, возможно, получите по коду ошибки решение вашей проблемы. Но чаще – получите вы совершенно непереводимую статью на английском языке. Но все-таки там периодически мелькает одно понятное слово – drivers.
Да, стоит упомянуть, что во время метаний по сайту Майкрософт вы пару раз наткнетесь на слово ОТЛАДЧИК (debugger). Но потом вам объяснят, что вещь, оно, может, и полезная, но бестолковая. Потому что результат работы отладчика надо посылать в Майкрософт и ждать от них ЦУ.
И вот свершилось! И от отладчика может быть польза.
Итак, определяем «виновный» драйвер:
- Возвращаемся к Свойствам системы (загрузка и восстановление) и проверяем Запись отладочной информации. По умолчанию будет как на верхнем рисунке. Так и оставьте. При этом на диске C в папке WINDOWS при появлении Синего Экрана возникнет папка Minidump, а в ней необходимые нам файлы.
- Загрузите и установите Debugging Tools for Windows. Это версия 6.12.2.633 от 2010 г., которая подойдет для анализа дампов для Windows XP и Windows 7. Debugging Tools for Windows устнавливается в папку %programfiles%\Debugging Tools for Windows (x86).
- Загрузите сценарий (kdfe.cmd), который написал Александр Суховей. Этот файл нужно извлечь из архива на рабочий стол.
- Так как данному сценарию очень много лет, то в случае использования 64-разрядной версии Windows, он может содержать не совсем верный путь к набору программ Debugging Tools for Windows. Для того, чтобы исправить данное недоразумение, нужно просто открыть блокнотом данный файл, и найти строчку, начинающуюся с set dbgpath= . После знака равенства необходимо прописать корректный путь к программе — в случае 64 разрядных операционных систем, это будет C:\Program Files (x86)\Debugging Tools for Windows (x86) . Меняем значение данного параметра, и сохраняем файл.
- Копируем файл kdfe.cmd в папку %systemroot%\system32 .
- Все, что вам осталось – открыть командную строку и написать там
где Mini050208-01.dmp – имя файла из папки Windows\Minidump. Вы, естественно, вместо моего файла подставляете имя своего. Нажимаете Enter и через некоторое время получаете имя повинного в ваших проблемах драйвера.
В моем случае это оказался драйвер USB-мыши (Razer Habu).