Синий экран смерти (BSoD) — боремся с ошибками
Операционная система Windows имеет несколько уровней работающих программ. Мы видим лишь самый верхний — открытые окна программ и запущенные службы. Именно их показывает Диспетчер задач. Когда одна из программ совершает ошибку, которую не в состоянии обработать и обойти, она, как говорят многие пользователи, «вылетает». Можно снова запустить и работать дальше.
Программные модули, работающие на более низком уровне (драйвера), при ошибке перезапуститься не смогут. Операционная система Windows старается оградить пользователя от многих ошибок, но это не всегда получается и она капитулирует, показывая на экране компьютера грустную рожицу или набор символов.
Нужно понимать, что драйвера — посредник между программной и аппаратной частью компьютера. Сбоить могут как драйвера (программисты тоже люди, могут чего-то не учесть или ошибиться), так и железная часть компьютера.
Что такое синий экран смерти
Синий экран смерти — понятие, пришедшее из английского языка и переведённое на наш родной. Собственно, как вы уже поняли, BSoD и «синий экран смерти» — это одно и то же. Аббревиатура BSoD расшифровывается как Blue Screen of Death или Blue Screen of Doom. Официальное название явления — Stop Error.
Когда вы видите синий экран на мониторе своего компьютера, это свидетельствует о критической системной ошибке. Такой способ информирования пользователя о произошедшем сбое характерен для ОС Windows.
Итак, что представляет собой BSoD? На рис. 1 можно разобрать запись CRITICAL_OBJECT_TERMINATION. Это ошибка синего экрана смерти с кодом (технически правильно — STOP код) 0x000000F4. Также применяется краткая запись, с отбрасыванием нулей после 0x — 0xF4. Далее в статье будет применяться именно такая запись, когда нет других цифр. Коды синего экрана смерти представляют собой запись в шестнадцатеричной системе счисления с префиксом 0x. Такой префикс используется для распознавания системными службами, использующими язык C.
С помощью STOP кода BSoD система идентифицирует произошедшую ошибку и вносит запись в системный журнал для последующего анализа и предотвращения ошибки в будущем. Ошибка синего экрана смерти 0xF4 означает сбой, произошедший из-за неожиданного прекращения работы критического для системы процесса или потока. Подробнее о значениях ошибок синего экрана смерти мы поговорим ниже.
Более детальную для продвинутых пользователей информацию предоставляет BSoD, используемый в ОС Windows XP/Vista/7, наиболее распространённых на сегодняшний день, а также Windows Server 2003.
Рис. 2. Синий экран смерти в Windows XP/2003/Vista/7
Используя данный BSoD, продвинутому пользователю гораздо легче разобраться, в чём проблема.
Во-первых, Microsoft уведомляет пользователя о том, что BSoD вызван прекращением работы для предотвращения выхода компьютера из строя. Далее приведён системный файл SPCMDCON.SYS — виновник, по мнению Windows, экстренного завершения работы. Ниже представлена сама ошибка синего экрана смерти PAGE_FAULT_IN_NONPAGED_AREA — свидетельствует о том, что данные, содержавшиеся в памяти, не найдены. Далее следует руководство для дальнейших действий пользователя с целью предотвращения возникновения подобной ошибки в будущем. Внизу приведена техническая информация: STOP код 0x50 и снова файл SPCMDCON.SYS, уже с параметрами.
Согласитесь, данный BSoD способен привести в куда большее замешательство неопытного пользователя, чем тот, который предлагают разработчики Windows 8.
Наиболее распространённые коды синего экрана смерти
Перечислим самые распространённые ошибки синего экрана смерти. Далее приводится краткое описание причины, по которой с наибольшей вероятностью появляется синий экран смерти. Однако для точной диагностики проблемы необходимо всё же обращаться к параметрам ошибок и правильно их интерпретировать при помощи программ отладки.
0xA — IRQL_NOT_LESS_OR_EQUAL — неверный адрес при обращении драйвера устройства;
0x1E — KMODE_EXCEPTION_NOT_HANDLED — процесс режима ядра пытается выполнить недопустимую инструкцию;
0x24 — NTFS_FILE_SYSTEM — сбой в файловой системе NTFS;
0x2E — DATA_BUS_ERROR — ошибка чётности в оперативной памяти;
0xB4 — VIDEO_DRIVER_INIT_FAILURE — ошибка инициализации видеодрайвера;
0xB9 — CHIPSET_DETECTED_ERROR — неисправен чипсет материнской платы;
0xC2 — BAD_POOL_CALLER — ошибка операции выделения памяти;
0x4E — PFN_LIST_CORRUPT — повреждена структура ввода/вывода драйвера;
0x50 или 0x8E — PAGE_FAULT_IN_NONPAGED_AREA — данные, запрашиваемые из памяти, отсутствуют;
0x69 — IO1_INITIALIZATION_FAILED — неудача инициализации системы;
0x77 — KERNEL_STACK_INPAGE_ERROR — чтение запрошенной страницы ядра невозможно;
0x79 — MISMATCHED_HAL — аппаратная несовместимость;
0x7A — KERNEL_DATA_INPAGE_ERROR — ошибка чтения в физическую память;
0x7B — INACCESSIBLE_BOOT_DEVICE — нет доступа к системному разделу диска;
0x7F — UNEXPECTED_KERNEL_MODE_TRAP — непредвиденная ошибочная операция в ядре;
0xD1 — DRIVER_IRQL_NOT_LESS_OR_EQUAL — ошибка драйвера, адрес памяти недоступен;
0xF3 — DISORDERLY_SHUTDOWN — Windows не смогла завершить работу из-за нехватки памяти;
0xC0000135 — STATUS_DLL_NOT_FOUND — ошибка при загрузке библиотеки;
0xC000021A — STATUS_SYSTEM_PROCESS_TERMINATED — ошибка службы, работающей в пользовательском режиме;
0xC0000221 — STATUS_IMAGE_CHECKSUM_MISMATCH — файл драйвера не найден или повреждён.
Если вашей ошибки синего экрана смерти в данном списке нет, то вы можете найти её на сайтах технической поддержки Microsoft. Там содержаться пояснения наиболее вероятных причин отказа для каждой ошибки, а также интерпретация параметров BSoD — это необходимо для качественного устранения неполадки, приводящей к появлению BSoD.
Синий экран смерти, что делать
Почему же появляется синий экран смерти? Причин может быть масса. В общем случае BSoD появляется, когда возникает критическая ошибка в ходе выполнения кода ядра или драйвера в режиме ядра.
Синий экран смерти появляется, например, когда в аппаратной составляющей компьютера были произведены какие-либо изменения: замена или установка видеокарты, аудиоадаптера, жесткого диска, контроллеров и устройств шин PCI и PCI Express. Драйвер этих устройств может оказаться плохо совместимым или несовместимым с существующей конфигурацией компьютера, что приводит к проблемам и появлению BSoD.
Помогает при появлении BSoD только перезагрузка компьютера, вследствие чего все несохранённые данные пользователя будут потеряны.
У пользователя есть возможность вручную вызвать BSoD. Это делается только в том случае, если нет другой возможности для обнаружения неисправности системы. Для вызова BSoD существует возможность назначить определённую комбинацию «горячих» клавиш. Поэтому при неблагоприятном стечении обстоятельств, пользователь может сам ненароком вызвать появление BSoD.
Злоупотреблять процедурой ручного вызова BSoD не следует, во избежание потери информации или программных неполадок. Кроме того, синий экран смерти, вызванный искусственно, не отобразит нужную пользователю информацию. Также можно столкнуться со сложностями в аппаратной зависимости этой процедуры: в частности, существуют ограничения на вызов BSoD c клавиатур, имеющих разъём USB. Более подробную информацию о вызове синего экрана смерти можно получить из документа Microsoft Q244139.
Итак, появляется синий экран смерти, что делать в этом случае? Единственное, что вы можете предпринять в данный момент — это выполнить перезагрузку. Далее, если вы достаточно опытный пользователь и не боитесь работы с отладчиками (дебаггерами), то есть решение. Для определения причины появления BSoD корпорация Microsoft разработала комплексное решение Debugging Tools for Windows c поддержкой 32 и 64-разрядных ОС, которое входит в состав Microsoft SDK for Windows.
Причины появления синего экрана смерти
Изменение настроек BIOS, произведённое на скорую руку может также оказаться причиной возникновения BSoD. Если вы не помните, какие точно изменения провели (особенно в том случае, если было произведено несколько изменений), то наилучшим решением для избежания ошибки синего экрана смерти станет приведение настроек BIOS в состояние по умолчанию (default).
Есть вирусы, которые созданы для поражения главной загрузочной записи (MBR), а также загрузочного сектора. Они также могут приводить к неполадкам и появлению ошибки синего экрана смерти. Проверить компьютер на наличие вирусов можно, если выполнить загрузку с восстановительного диска с установленным антивирусом. Многие компании-разработчики антивирусов, как, например, ЗАО «Лаборатория Касперского», предлагают в своих решениях функцию создания CD из имеющегося дистрибутива. Кроме того, можно скачать уже готовый образ с серверов компании. Также вы можете проверить состояние MBR антивирусной утилитой AVZ. Подробно о работе с утилитой можно прочитать по ссылке.
Неполадки в оперативной памяти. Диагностика
Нередко неисправные, а иногда и неодинаковые модули оперативной памяти могут стать причиной возникновения ошибки синего экрана смерти. Если вы заметили, что после установки, доустановки, замены модулей оперативной памяти у вас не загружается ОС или появляется синий экран смерти, вы можете попробовать поставить модули памяти в другие DIMM слоты или поменять планки DDR местами — часто это решает проблему памяти. Однако неполадки могут крыться и в другом, и выявить причину этого можно, проведя диагностику RAM с помощью штатного средства проверки памяти Windows. Утилита доступна в Windows 7 и Vista (для Windows XP можно использовать утилиту Windows Memory Diagnostic)
Давайте посмотрим, как работает средство диагностики:
Заходим в «Пуск», далее «Панель управления», находим там значок «Администрирование» и кликаем по нему.
В открывшемся окошечке выбираем из списка «Средство проверки памяти Windows» (обычно третий снизу).
В новом окошке Windows предложит выбрать из двух вариантов: «Выполнить перезагрузку и проверку (рекомендуется)» и «Выполнить проверку при следующем включении компьютера».
Закройте, все открытые программы, чтобы не потерять какие-либо данные, и нажмите «Выполнить перезагрузку и проверку (рекомендуется)».
Начинается перезагрузка компьютера и выполнения теста памяти. Обычно тест выполняется в два прохода. На экране представлены как проценты по текущему проходу, так и итоговые. После того, как тест завершится, будет произведена перезагрузка и представлены результаты теста.
Рис. 3. Проверка компьютера на предмет неполадок с памятью
Существует и другая возможность — протестировать состояние оперативной памяти с загрузочного диска (только Windows Vista и Windows 7). Для этого:
Зайдите в BIOS и установите CD-ROM (DVD-ROM) в качестве первого загрузочного устройства в меню BOOT, после чего выйдите из BIOS, сохранив настройки.
После перезагрузки загрузчик выдаст сообщение «Press any key to boot from CD», нажмите любую клавишу.
Дождитесь, пока Windows загрузит файлы. В окне «Установка Windows» нажмите «Далее».
Выберите «Восстановление системы», подождите.
Оставьте все настройки окошка «Параметры восстановления системы» по умолчанию («Используйте средства восстановления…») и кликните «Далее».
В представленном списке выберите «Диагностика памяти Windows».
В новом окне выберите 1 из 2 вариантов. Например, «Выполнить перезагрузку и проверку (рекомендуется)», чтобы начать проверку памяти немедленно.
Компьютер перезагрузится, и начнётся тест памяти.
Диагностика жёсткого диска
Неполадки жёсткого диска (HDD) также могут быть причиной появления ошибки синего экрана смерти. Утилита Windows CHKDSK позволяет выполнять проверки жёсткого диска на наличие ошибок и повреждённых секторов. С помощью этой утилиты возможно восстановление повреждённых секторов HDD. Для запуска проверки, выполните следующие шаги:
Откройте Проводник Windows.
Кликните правой кнопкой мыши по разделу, который хотите проверить, и выберите «Свойства».
В новом окошке выберите вкладку «Сервис».
Наверху вкладки нажмите на кнопку «Выполнить проверку».
Откроется новое окошко «Проверить диск «Название диска»». Пользователь может выбрать 1 из 4 вариантов проверки диска, в зависимости от того, напротив каких пунктов он поставит галочки. Если вы хотите просто знать, есть ли на вашем диске ошибки, снимите галочку с верхнего пункта. В этом случае Windows не будет исправлять системные ошибки. Вы также можете провести комплексное исследование и восстановления повреждённых секторов HDD, выбрав оба пункта. Внимание! Windows не сможет автоматически исправлять системные ошибки и восстанавливать повреждённые сектора, пока выбранный раздел является активным, т. е. используется. Поэтому для выполнения проверки может потребоваться перезагрузка системы. В этом случае в появившемся окошке предупреждения кликните по кнопке «Расписание проверки диска». После перезагрузки ПК будут выполнены проверка диска и выбранные пользователем действия. Для получения более подробной информации по работе утилиты CHKDSK, ознакомьтесь с этой страницей корпорации Microsoft.
Нажмите кнопку «Запуск» и дождитесь результатов проверки.
После проверки в новом окне будет представлена как краткая, так и развёрнутая информация о состоянии протестированного раздела.
Рис. 4. Проверка жёсткого диска
Если утилита CHKDSK сделала свою работу, а ошибки в работе диска возникают снова, можно провести более глубокое тестирование. Для этого вам потребуется прибегнуть к помощи утилит, разработанных вендорами жёстких дисков.
Помимо возможности извне продиагностировать состояние дискового накопителя, все современные HDD и SSD (solid-state drive) производятся с заложенной производителем возможностью самоконтроля и самотестирования своего состояния, а также оценкой времени предположительного выхода устройства из строя. Это технология S.M.A.R.T. Чтобы получить доступ к данным диагностики этой технологии нужно воспользоваться одной из программ, имеющих возможность считывать данные, передаваемые программой контроллера диска. Есть платные и бесплатные программы с поддержкой такой возможности. Одной из современных свободных программ является CrystalDiskInfo
Рис. 5. S.M.A.R.T. с помощью CrystalDiskInfo
Как видно на скриншоте, программа предоставляет все данные по диску, включая его текущую температуру, число включений, общее число часов работы. Ниже в списке представлены технические данные, по которым можно судить о физическом износе диска. Текущее и наихудшее значения — реальные показатели данного диска в данный момент и когда-либо соответственно. Порог представляет собой значение, ниже которого производитель данного жёсткого диска не может гарантировать стабильную и бесперебойную работу устройства.
Несмотря на кажущуюся безупречность технологии, на практике многие компании и физические лица жалуются на то, что отказ жёсткого диска часто происходит при нормальных показателях S.M.A.R.T. Поэтому доверять данной технологии можно только с оглядкой на возможную ошибочность данных, что тем не менее не умоляет всех достоинств данной технологии.
Дамп памяти
Для качественного восприятия приведённой ниже информации, дадим определение понятию дамп памяти. Дамп памяти (memory dump) — содержимое рабочей памяти одного процесса, ядра или всей ОС. Дамп памяти содержит техническую информацию о состоянии системы или отдельной программы.
Следует также отметить, что дампы памяти бывают разные.
По умолчанию в современных ОС, таких как Windows XP/Vista/7 (далее мы будем рассматривать только эти ОС Windows, как наиболее распространённые), когда появляется синий экран смерти и вы перезагружаете компьютер, создаётся запись отладочной информации в файл дампа памяти ядра MEMORY.DMP. В нём будет содержаться вся необходимая информация, достаточная для диагностики причины сбоя и предотвращения его в будущем.
Полный дамп памяти содержит исчерпывающую информацию о состоянии системы и неполадках. ОС по умолчанию также сохраняет эту информацию в файл MEMORY.DMP.
Для создания файла дампа может быть использован малый дамп памяти. В нём содержится только общая системная информация, которой часто бывает недостаточно для корректного диагностирования причины появления ошибки синего экрана смерти. Файл малого дампа памяти уместно создавать только в тех случаях, когда дисковое пространство крайне ограничено. Если вы не испытываете трудностей с дисковым пространством, то лучше не использовать малый дамп памяти для создания файла дампа.
Настройка параметров восстановления ОС
Итак, по умолчанию при сбое ОС Windows XP/Vista/7 создаёт файл дампа памяти MEMORY.DMP и записывает в него отладочную информацию, параметры произошедшего сбоя. После этого файл дампа MEMORY.DMP сохраняется в папку %SystemRoot%. Впоследствии файл дампа может быть отправлен разработчикам для выяснения причины возникновения BSoD.
Также пользователь может осуществить самостоятельную настройку сохранения технической информации при отказе системы. Давайте настроим параметры восстановления ОС. Для этого последовательно выполним следующие действия:
Если вы используете Windows 7 или Windows Vista:
Заходим в «Пуск», «Панель управления» и выбираем «Система» или кликаем правой кнопкой мыши по значку «Компьютер» и выбираем «Свойства».
Внизу левой колонки нажимаем «Дополнительные параметры системы».
Переходим на вкладку «Дополнительно».
В псевдоокошке «Загрузка и восстановление» выбираем «Параметры».
Если у вас Windows XP, то проделайте всё то же, за исключением 2-го шага.
Рис. 6. Настройка параметров восстановления ОС
В новом окошке «Загрузка и восстановление» представлены параметры загрузки ОС и действия при её отказе. Здесь можно выбрать наиболее подходящие параметры восстановления после BSoD. В частности, пользователь может выбрать, из какого дампа памяти будет сделана запись файла дампа. А также изменить имя этого файла и директорию, куда он будет сохранён. Отмечу, что не следует изменять имя файла дампа, если вы собираетесь впоследствии отправлять его для анализа в корпорацию Microsoft или другим разработчикам.
Проблемы на программном уровне
- Восстановление системы. Если имеются подозрения, что неполадки появились из-за недавно установленного программного обеспечения, нужно вернуть Windows в состояние, предшествующее установке этого ПО. Нажимайте «Пуск», в поле поиска набирайте «Восстановление системы» без кавычек и запускайте найденную программу. Следуя указаниям компьютера, восстановите раннюю копию системы, если она сохранена. Ничего опасного в этом нет — восстановление не затрагивает файлы, хранящиеся на жестком диске, а только недавно установленные программы.
- Вирусы. Деятельность многих вредоносных программ устраивает сбои в системе. Для сканирования ПК на наличие вирусов, можно воспользоваться встроенным «Защитником Windows» в десятой версии или любым сторонним антивирусом в семерке.
- Антивирусы. Как не парадоксально, но голубой экран могут вызывать и антивирусы. Отключите на время ваш защитник и последите за поведением системы. Если экраны смерти прекратили появляться, придется найти замену антивирусу.
- Обновления Windows. Это случается редко, но иногда экран смерти вылазит из-за кривых нововведений системы. Для удаления последних обновлений перейдите в «Панель управления», затем в «Просмотр обновлений». Удалите последние установленные обновления. Если синий экран больше не появляется, подождите несколько дней, пока разработчики пофиксят обновления и можете заново их устанавливать.
- Игра или другой софт. Если экран смерти выскакивает только во время выполнения определенной программы, то на 99% дело в ней. Можно попробовать переустановить проблемное приложение и проверить целостность данных. Если ПО достаточно старое, то может помочь запуск приложения в режиме совместимости с ранними версиями винды. Нужно покопаться в свойствах exe-файла: перейдите на вкладку «Совместимость» и в пункте «Режим совместимости» выберите нужную версию.
- ОС не запускается. Если Blue screen of death вылезает во время загрузки винды, ее нужно запустить в безопасном режиме. Во время перезапуска системы после аварийного завершения работы, вам будет предложено войти в безопасный режим. Если этого не случилось, сразу после включения компьютера нажмите F8. Находясь в этом режиме проведите диагностику, как было описано выше. Если синий экран всплывает даже сейчас, то наверняка имеются серьезные проблемы с оборудованием. В этом случае перейдите в следующий раздел статьи.
- «Кривая» версия Windows. Используя пиратскую винду, есть высокая вероятность нарваться на блю скрин. Особенно часто этому подвержены различные «сборки», с кучей предустановленных драйверов и приложений. Решение проблемы одно — установить нормальную версию операционной системы.