BSOD – не повод для паники. Выясняем природу «экрана смерти»

    До недавних пор я думал, что единственный способ узнать о причине BSOD'а – это белые буковки на синем «экране смерти». Недавние события немного расширили мои познания в области диагностирования неполадок, и этими знаниями я хочу поделиться с вами, хабражители.
    Случилась очередная поломка системы у очередного клиента. «Синий экран, и нечего не шевелится» — так описала проблему девушка, которая за компьютером работала. Дело было около 18 вечера, и ехать на выезд совсем не хотелось. Перезвонив клиенту, я сказал, что компьютер посмотрю удаленно, хотя сам понимал, что заниматься ним придется завтра. Тем не менее совесть не дала просто забыть о компе до завтра.

    Единственная разумная мысль, которая у меня тогда возникла, почитать Event Viewer, что и сделал.
    image
    Вот приблизительно такая запись привлекла мое внимание. Ну, раз система сгенерила багчек, почему бы его не почитать.
    Я немного погуглил на предмет открыть файл «.dmp», и наткнулся на Debugging Tools for Windows. Это часть большого продукта Microsoft Windows SDK for Windows 7. Зачем искать решения на стороне, когда их предоставляет сам разработчик. На установку Debugging Tools (как и на установку .NET Framework 4, который необходим для работы) ушло совсем немного времени. Естественно, что при установке я не выбирал дополнительных компонентов, а то мое удалённое диагностирование затянулось бы надолго (см. скрин)
    image
    Понимаю, что использовать инструмент с таким огромным функционалом только для того, чтобы посмотреть на .dmp файл не совсем правильно, но, кроме этого, мне он и не нужен.
    Итак – программа установлена, осталось только посмотреть на сам минидамп. Для этого запускаем WinDbg из пакета Debugging Tools for Windows, и в меню «File» выбираем «Open crash dump».
    image
    После недолгого анализа программа выдает предположительную причину вызова BSOD.
    image
    В моем случае, причиной был неверный драйвер Storage Controller’а. Скачав с оф.сайта свежий драйвер, причину неработоспособности удалось побороть.
    К сожалению, причины неполадок зачастую не лежат на поверхности, и вот такой вот анализ может не принести желаемого результата.
    Поделиться публикацией
    Комментарии 71
      +1
      А разве вот этот текст —
      Probably caused by: %DRIVERNAME% не выводится непосредственно на БСОД-е?
      • НЛО прилетело и опубликовало эту надпись здесь
          +4
          нет, только код ошибки.

          Кстати, чтобы не качать весь SDK, можно скачать скромный архив вот из этой темы forum.sysadmins.ru/viewtopic.php?p=7180059#7180059
            +1
            Качать весь SDK вовсе не обязательно, досточно в его веб-установщике выбрать только необходимое, и тогда всё остальное загружаться не будет.
            А качать архивы старых версий я не рекомендую — Debugging Tools постоянно обновляется (паралельно с ОС), и лучше всегда использовать актуальную версию.
              0
              Да, качать не нужно, и я на это обратил внимание в статье. По крайней мере постарался обратить внимание =)
                0
                Да, я видел. Но видимо некоторые заметили только подчеркнутое на картинке, а 1KB пропустили :)
            +1
            появление bsod'а может быть отключено в системе (просто мелькнет синий экран и компьютер уйдет в перезагрузку). Не забывайте об этом…
              0
              Угу, но запись в эвент логе при этом там и останется
            +3
            Вероятно что выводится, но как мне его посмотреть, если я удаленно управляю компьютером?
              +2
              через удаленную вевушку
                +1
                *девушку
                  +5
                  простите, но я не представляю себе, как я девушка-бухгалтер или юрист будет мне читать эти строки. Намного проще все сделать самому. Да и вероятность того, что комп перезагрузили, не записав сообщения БСОДа очень велика
                    0
                    я в таком случае прошу «вевушку» сфотографировать экран на телефон и прислать мне фото. Не сложнее чем вконтактик залить, практически любая справится.
                0
                Вообще задумка такая — в boot.ini прописывается com порт по которому будем отлаживать систему, упавшая система подключается к здоровому хосту и с него происходит уже работа. При этом WinDbg даже умеет работать как сервер и принимать удаленные подключения.

                p.s.
                Возможно когда-нибудь MS сделает как Apple — выпал KP, нажал на кнопку питания разок и отлаживай спокойно систему удаленно по сети без каких-либо проблем.
                +45
                Гораздо удобнее получить аналогичную информацию из программы BlueScreenView.
                  +1
                  Теперь буду знать о существовании таковой. Спасибо
                    0
                    и весит ~ 50 кб
                      0
                      отличная прога, уже добавил в свою сис.админскую подборку прог
                      0
                      Спасибо, добавил в свой набор.
                        0
                        Спасибо. Глдишь, такими комментами и из минусов вылезешь)
                        +3
                        да, древние знания.
                        Лично меня всегда забавляла формулировка «Probably...»
                          +1
                          Точно определить причину ошибки очень сложно, и явно не по силам программе. Например часто встречается ситуация когда ошибки в модуле нет, а виновником является сбойная оперативная память, или другой модуль пишуший в чужое адресное пространство.
                          • НЛО прилетело и опубликовало эту надпись здесь
                            0
                            Все модули ядра исполняются в едином адресном пространстве. Точно определить, кто конкретно перешел на неверный адрес или прочел память не в том месте нельзя.
                              0
                              LOL, первая ассоциация — все толкутся в одном автобусе и выяснить, кто конкретно «испортил воздух» не представляется возможным, а сам никто не признается ))
                                0
                                Как это нельзя. Реально из всех багов которые не диагностируются по крашдампу — это проезд по памяти, т.е. если один модуль у другого модуля испортил память в результате чего у второго съехал IP и мы получаем AV в чистом виде, который тяжело диагностируется. Но если присутствует именно ошибка в модуле, т.е. модуль сам полез туда куда не надо или вызвал функции API так, что систему стошнило, то всё легко определяется через разбор стека вызовов, который в крашдампе есть и достать его можно через команду "!analyze -v" в WinDbg.
                            • НЛО прилетело и опубликовало эту надпись здесь
                                0
                                Спасибо, я уже полазил по блогам, почитал про БСОД, нашел немало интересного. Даже вот в комментариях полезную программу посоветовали
                                +5
                                Следующая статья будет «Kernel panic – не повод для паники»? Ну просто очень хотелось бы)
                                  0
                                  Вряд ли станут писать статью лишь только из-за созвучного названия =). А если серьезно, то я мало «общаюсь» с *никсовыми системами, так что опять-таки вряд ли стану писать.
                                  • НЛО прилетело и опубликовало эту надпись здесь
                                    • НЛО прилетело и опубликовало эту надпись здесь
                                        0
                                        Логи, это знаешь ли забота софтописцев :]

                                        Ядро вендовое дебажится на равне с линуксовым. Загрузочные лайвы вендовые есть. Было бы желание это всё использовать. Плюс переустановка с образа — это же нормально, не?
                                        • НЛО прилетело и опубликовало эту надпись здесь
                                            –2
                                            > Будучи апологетом никсов, я стараюсь оживлять пациента, а не убивать и рожать нового. Даже в таких условиях, когда это затруднено по описанным выше причинам.

                                            Иррационально. А вендоюзеров вы ругаете за свои привычки :]

                                            > в винде, насколько мне известно, почитать про происходящее негде — eventvwr.msc показывает два вида сообщений: ненужные (о запуске-остановке службы, о начале логирования, об успешной загрузке системы) и бесполезные

                                            Когда что-то разваливается, этого достаточно. Про культуру логов в никсах… Ну вот не надо. :] Достаточно много дерьма, которое валит в логи всякий шлак, с которым потом непойми что делать. Не все используют syslog (по крайней мере по-умолчанию). Вобщем это все — предмет отдельных дисскусий.

                                            > Загрузочные диски имеют сомнительную лицензию, да и официально не предлагаются.

                                            Ты же не будешь утверждать, что systemresquecd предлагается официально? (= А так даже на инсталляционном диске есть консоль восстановления (по функционалу примерно такая же как на инсталл цд популярных дистрибутивов). На 2008 вообще целый лайв. Вобщем было бы желание.
                                            • НЛО прилетело и опубликовало эту надпись здесь
                                                –1
                                                > всё до основания

                                                Не до основания, а до точки восстановления

                                                > Зато эти логи есть

                                                Попробуй поотлаживать libvirtd по логам :] Или slapd. Или nss.…
                                                Да даже банальный mpdscribble (%

                                                > А в ней можно подключиться к вайфаю, запутить браузер и запустить плеер с музыкой?

                                                А что, в стандартных дистрибутивах — можно? Что то ни в рхеле, ни в сузе как то плееров с музыкой не наблюдалось
                                                • НЛО прилетело и опубликовало эту надпись здесь
                                              • НЛО прилетело и опубликовало эту надпись здесь
                                                +1
                                                >Загрузочные диски имеют сомнительную лицензию, да и официально не предлагаются.
                                                Предлагаются. Windows PE на базе NT5.1 доступна подписчикам Software Assurance. Начиная с Windows Vista установочные диски сами по себе являются урезанными версиями десктопных ОС, то есть содержат командную строку, набор основных утилит для работы и поддерживают запуск внешних программ.

                                                >Установить винду с флешки (для нетбуков актуально) тоже нормальным путём нельзя.
                                                Можно: store.microsoft.com/Help/ISO-Tool
                                            +3
                                            Помню минимум два случая кернелпаника на рабочей системе, а пока учился выжимать из этого информацию убедился, что не так уж и редко это бывает.
                                            Другое дело, что если никсы сбросили дамп при панике, то можно что угодно узнать и написано про это так много, что вряд ли нужна еще одна статья.
                                              0
                                              Кстати, при Кернел Панике система не обязательно валится — она ПРОДОЛЖАЕТ РАБОТАТЬ! )))
                                          0
                                          Сорри за оффтоп

                                          Кстати, Debugging tools for Windows и WinDBG — это не только .NET Framework 4 и windows 7.

                                          Интересно почитать о нем здесь и здесь

                                            +2
                                            Сорри за оффтоп

                                            Кстати, Debugging tools for Windows и WinDBG — это не только .NET Framework 4 и windows 7.

                                            Интересно почитать о нем здесь: habrahabr.ru/blogs/net/52441/
                                            и тут:http://www.rsdn.ru/res/book/win32/debugnet.xml

                                            (p.s.) не смог добиться от хабра отображения ссылок :(
                                          • НЛО прилетело и опубликовало эту надпись здесь
                                              +1
                                              foserg познаёт основы работы windows [x]

                                              это новость такая новость, новее некуда и без тебя мы этого не знали, попробуй в следующей статье изобрести, например, двухколёсное средство передвижения, и назови это, скажем, велосипедом.
                                                –12
                                                Девушка, купите себе Мак
                                                  +1
                                                  Это вы про девушку, которая фигурирует в статье? =) Сам пользуюсь маком, и ничего плохого сказать про него точно не могу, но для работы с «Желтой программой для бухгалтерии» или целой горсти клиент-банков мак вряд ли оптимальное решение.
                                                    –2
                                                    Про нее, виртуальные машины решают вопросы и с желтой и с любой другой виндовой
                                                      0
                                                      Все же покупать каждому сотруднику по маку, немного накладно. Особенно если в компании много сотрудников. Тем более, если речь идет об украинских компаниях, где на первом месте стоит не удобство работы, а малые затраты на технику.
                                                        –2
                                                        Это тема для отдельного разговора
                                                        0
                                                        Если внутри виртуалки упадет — это особенно ничего не изменит, зато добавится еще одно звено где можно поймать глюк :)

                                                        Про подключить «чистую» виртуалку взамен упавшей не рассматриваем :)
                                                          +4
                                                          Знаете, мы офисные компы (монитор+системник+мышка+клава) покупаем за 13~ тыс. рублей. Это core2Duo, 2 гига памяти, пишущий дивидюк, 500 гигов хард и моник 19 дюймов (1440х900). А во сколько нам обойдётся мак?
                                                            –8
                                                            Смотря какой — iMac примерно от 54 тысяч
                                                            • НЛО прилетело и опубликовало эту надпись здесь
                                                        0
                                                        Когда в Маке появится Kernel Panic, девушка вас лесно вспомнит :)
                                                        0
                                                        Недавно была ситуация. Комп иногда сам по себе перезагружался.
                                                        Думали что температура в биосе выставлена маленькая и повысили ее (стояла 35 градусов), не помогло, потом включили BSOD и пусто, дампов нет как будто все в порядке. Оказалось переноска через которую был включен компьютер был неплотно включен в розетку и легким касанием ноги к проводу вырубал комп.
                                                          0
                                                          Ну да, "… уборщица «положила» сервер крупной компании, случайно выдернув шнур питания, во время вечерней уборки.."

                                                          А касательно способа борьбы с BSOD, описанного в топике, и BlueScreenView, можно потренироваться на стареньком компе. Тем более, о том как вызывать BSOD своими руками, я уже почитал.
                                                          0
                                                          > на установку .NET Framework 4, который необходим для работы

                                                          Меня всегда удивляла эта любовь MS к громоздкости.
                                                          Почему-то вместо небольших и лёгких диагностических утилит требуют установить целый пакет всего, да ещё с зависимостями от нескольких других пакетов.
                                                          Для примера тот же MPSReports из последних — ему и .NET Framework подавай, и PowerShell. В том чисое и поэтому предпочитаю старые версии MPSReports, где таких зависимостей нет.
                                                            +2
                                                            Просто последние версии утилит пишутся используя возможности последних версий апи и библиотек, ничего странного. Если бы существовал репозиторий для Windows безусловно обновляемых при выходе новой версии библиотек туда будет включено не так много позиций — .net framework, visualc++ redistribution ну и directx для геймеров. А PowerShell вообще шел полгода назад с системными обновлениями, кто не обновляется — MS не виноваты. Powershell кстати очень мощный инструмент, советую ознакомиться если не видели, просто несравнимо количество возможностей по сравнению с cmd, это больше похоже на линуксовую консоль из которой можно сделать в системе почти всё.
                                                          • НЛО прилетело и опубликовало эту надпись здесь
                                                              +2
                                                              Ничего что он а) платный б) устарел и не поддерживается?
                                                              Его функционал много лет назад был перенесен в DART (Disaster And Recovery Toolkit) из пакета MDOP (Microsoft Desktop Optimization Pack) который доступен владельцам Software Assurance.
                                                              • НЛО прилетело и опубликовало эту надпись здесь
                                                              0
                                                              От только что подлюга на симерке был… о_О

                                                              А на Win XP я его уже месяцев 10 не видел
                                                                +2
                                                                BlueScreenView
                                                                www.nirsoft.net/utils/blue_screen_view.html
                                                                посимпатичнее и информативнее будет
                                                                а с этим iastror.sys не мало людей намучалось, убивать за такие драйвера надо.
                                                                  0
                                                                  иногда очень даже повод=) нов природе разбираться надо. меня разок просили разобраться с «лагающей виндой» при загрузке — стабильно БСОД. проблема банальна — 2 антивируса=)
                                                                    0
                                                                    Спасибо, однозначно в favorites.

                                                                      +1
                                                                      Debugging Tools For Windows — можно скачать отдельно от SDK, это примерно 6Мб (может чуть больше, уже не помню). При этом есть версия x64, x86 и вроде Itanium.
                                                                      По сути, чтобы годно разобрать крашдамп больше ничего не нужно. Вы просто увидите в каком модуле произошло падение и по какой причине (поймете что за драйвер всё ломает, чтобы его заменить), но можно также скачать файлы символов для своей операционной системы и тогда если падение было в виндовом модуле — вы узнаете в какой функции.
                                                                      Кстати, не забываем про такие команды windbg как "!analyze -v" и ".ecxr", да и вообще хелп почитать стоит.
                                                                        0
                                                                        Есть плагин для Total Commander — DmpView. Удобно.
                                                                          0
                                                                          Увы, но он выдает только инфу по самой исключительной ситуации без отображения стека приведшего к ней (а это часто очень нужно), да и у меня на Win7 x64 не открыл дампы (пользовательские минидампы)
                                                                          0
                                                                          Обычно я переписываю коды ошибок на бумажку и гуглю. Был тока один случай из цати, когда гугль молчал как партизан, да и ошибка была не совсем тривиальная. Покопав глубже обнаружил, что антивирь убил вирусягу похерившую кучу сис файлов, восстановив около пяти я на это дело забил и тупо, загрузившись с убунтячего диски и слив все нужные данные, реинсталлил систему.

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

                                                                          Самое читаемое