Разбираемся с ошибкой загрузки из-за отсутствующей цифровой подписи драйвера в x64 системе
В этой статье постараюсь описать методику диагностики проблем с неподписанными файлами драйверов в x64 битной версии Windows систем, из-за которых компьютер перестает загружаться и при загрузке падает в BSOD. Но систему все-таки можно загрузить, отключив проверку цифровой подписи при загрузке (F8 -> Disable Driver Signature Enforcement). В качестве примера в этой статье я буду работать с Windows Server 2008 R2 (которая, напомню, бывает только в 64-разрядной редакции), но данная методика подойдет так и для Windows 7 x64 и Vista x64.
Если вернуться к предыстории вопроса, то вспомним, что Microsoft приняла решение о том, что в 64-битных системах, начиная с Windows Vista, Windows загружает драйвера в режим ядра только в том случае, если драйвер имеет цифровую подпись. Если же цифровая подпись драйвера отсутствует, то при загрузке системы случается критическая ошибка (зависит от типа драйвера, загрузка которого заблокирована) и появляется экран BSOD. Конкретная ошибка и ее код зависят от конкретного драйвера, который заблокирован в процессе загрузки. Некоторые ошибок прямо на экране BSOD могут указывать на файл неподписанного драйвера.
В моем случае после обновления драйверов на сервере Windows 2008 r2 при обычной загрузки машины появился синий экран смерти с текстом:
STOP: c000021a (fatal System Error)
The initial session process or system process terminated unexpectedly with a status of 0x00000000 (0xc000428 0x00100448). The system has been shut down
Попробуем выяснить что это за ошибка, какой драйвер ее вызывает т определим по драйверу конкретное устройство.
Для декодирования ошибки нам нужен второй параметр (он выделен жирным) — 0xc000428.
Преобразуем hex код ошибки в более удобочитаемую форму. Для этого можно воспользоваться встроенной в Windows утилитой SLUI.EXE или же сопоставить код этой ошибки в файле ntstatus.h, найти который можно в Windows SDK. Воспользуемся первым способом, для чего в командной строке выполним:
Как вы видите на скриншоте, мы убедились в том, что BSOD вызвана невозможностью проверить цифровую подпись драйвера (“Windows cannot verify digital signature for this file”)
Перезагружаем наш компьютер и при загрузке жмем клавишу F8. В расширенном загрузочном меню (Advanced Boot Options) отключаем проверку цифровой подписи, выбрав Disable Driver Signature Enforcement .
В том случае, если в таком режиме сервер загрузиться, мы точно уверены в том, что некий неподписанный модуль или драйвер не позволяет системе нормально загрузиться.
Следующий шаг – определение файла проблемного модуля или драйвера. Откроем консоль журнал событий (Event Viewer) и перейдем в раздел Applications and Services Logs -> Microsoft -> Windows -> CodeIntegrity -> Operational.
Примечание: если при доступе к логам в этой ветке появляется ошибка “access denied”, создайте на диске c: каталог, предоставив группе Everyone полный доступ. Затем измените путь к файлу ETL на новый каталог, и отключите и заново включите логирование.
В моем случае, в журнале есть событие EventID 3001 с текстом «Code Integrity determined an unsigned kernel module \Device\HarddiskVolume1\Windows\System32\win32k.sys is loaded into the system. Check with the publisher to see if a signed version of the kernel module is available». Вот мы и нашли проблемный драйвер!
Данный драйвер может быть как родным драйвером Microsoft, так и драйвером стороннего разработчика. Удостоверимся, что данный драйвер действительно не имеет цифровой подписи. Для этого нам понадобится утилита от Sysinternals под названием SIGCHECK.EXE (взять ее можно тут http://technet.microsoft.com/en-us/sysinternals/bb897441).
Проверку наличия цифровой подписи выполним командой:
Если подпись отсутствует, то в поле Verified будет указано Unsigned (в противном случае, соответственно Signed).
Перед нами есть два варианта решения проблемы невозможности нормальной загруки системы с неподписанным драйвером:
- Найти подписанную версию драйвера
- Отказаться от использования данного драйвера (и устройства)
- отключить проверку цифровой подписи драйвера в Windows
Третий вариант может не подойти по тем или иным причинам. В первых двух случаях нам нужно определить к какому конкретному устройству относится данный файл драйвера .sys.
Как же определить устройство, зная лишь имя sys-файла? Я использую следующую методику (пусть нам нужно определить устройство, драйвер которого имеет имя HpCISSs2.sys):
1) Открываем редактор реестра и поиском по ветке HKEY_LOAL_MACHINE\SYSTEM\ControlSet001 ищем ключ со значением HpCISSs2.sys
2) В моем случае он нашелся в ветке HKEY_LOAL_MACHINE\SYSTEM\ControlSet001\services\HpCISSs2
3) Разворачиваем вложенную ветку с названием ENUM, нас интересует значение ключа 0, в моем случае это PCI\VEN_103C&DEV_3230&SUBSYS_3235103C&REV_01\4&3b416f2c&0&0018
4) Определяем, что производитель устройства имеет ID 103C, а код устройства 3230
5) Далее на сайте указываем в полях Vendor Search и Device Search найденные нами коды.
6) Получаем что искомое нами устройство контроллер жестких дисков HP Smart Array P400 Controller.
Нам осталось лишь найти новую версию драйвера на сайте производителя оборудования (внимательно смотрите для каких версий ОС подходит нужный вам драйвер) и обновить драйвер на компьютере.
A problem has been detected and Windows has been shut down что делать?
Во время загрузки операционной системы (или её установки и обновления) пользователь может столкнуться с так называемым «синим экраном смерти» и надписью «A problem has been detected and Windows has been shut down». Обычно перезагрузка компьютера ничего не даёт, и при следующем запуске компьютера данная надпись возникает снова. В этом материале я расскажу об наиболее распространённых причинах появления данной проблемы, поясню их особенности, а также расскажу, как избавиться от синего экрана смерти на вашем ПК.
Причины возникновения ошибки
В переводе текст сообщения об ошибке выглядит как «Была обнаружена проблема, и для предотвращения повреждения компьютера работа Windows была прекращена». Далее размещены технические данные конкретной ошибки, а затем и указание перезагрузить компьютер (если синий экран возник впервые). В тексте написано, что если экран с рассматриваемой надписью возникает регулярно, тогда рекомендуется проверить работоспособность всех драйверов, а также установить свежие обновления ОС Windows. Также рекомендуется отключить, деинсталлировать или удалить все недавно подключённые аппаратные и программные модули, отключить опции памяти Биоса, а также попробовать загрузить компьютер в безопасном режиме.
Возникновение «синего экрана» связано с так называемыми STOP-ошибками системы, когда внезапно возникшая проблема вызывает выключение или перезапуск компьютера. Причин для возникновения такой дисфункции может быть множество, начиная от засорения компьютера пылью и сбоями в работе программного обеспечения, и заканчивая аппаратными поломками материнской платы компьютера и других ключевых элементов ПК.
Как исправить ошибку “A problem has been detected and Windows has been shut down”
Ниже я опишу специфику устранения данной проблемы в контексте причин, вызвавших её. Но для начала попробуйте просто перезагрузить ваш компьютер, а также проведите очистку системного блока компьютера (или внутренности ноутбука) от пыли, ведь бывает, что именно пыль виновата в возникновении подобной проблемы. Если вы не знаете, как чистить ваш стационарный компьютер (или лэптоп) от пыли, тогда обратитесь к специалисту.
Кроме того, эффективным средством решения проблемы является поиск лекарства по конкретике данной проблемы через поисковики. Для этого необходимо записать кодифицированные технические данные проблемы (например, 0X0000007E, ниже указание на конкретный проблемный драйвер, напр. dxgmms1.sys и др.), а затем и поискать нужный вам антидот через поисковые ресурсы. Такой поиск часто позволяет найти конкретное и подходящее именно вам решение вашей проблемы.
Аппаратные причины
Проблемы с материнской платой, видеокартой, памятью, блоком питания и прочими модулями системы могут вызывать STOP-ошибку и соответствующий синий экран. В случае стационарного компьютера стоит попробовать поочерёдно удалять из компьютера модули системы для идентификации виновника. К примеру, можно вынуть одну планку памяти, затем вторую и т.д., и тем самым определить модуль, ответственный за возникновение проблемы (также может помочь тест «железа» с помощью специальных программ, например Everest, Memtest, HDDScan и др.). После определения модуля-виновника ошибки его стоит заменить или отнести на ремонт в сервисный центр.
Также, если вы приобрели какую-либо плату «железа» совсем недавно, то может наблюдаться конфликт нового устройств с каким-либо элементом системы (использование одинаковых запросов на прерывание, каналов доступа к памяти, адресов портов и др.). В данном случае поможет просмотр установленных устройств в диспетчере задач, и если будет найден конфликт – изменить автоматическую настройку параметров ресурса модуля на ручную, и самому указать требуемый параметр.
В самых крайних случаях вам может понадобиться полная замена отдельных узлов системы вашего ПК.
Программные причины
Среди программных причин, вызывающих проблему “A problem has been detected”, стоит отметить следующие:
- Отсутствие или нестабильная работа драйверов, обслуживающих различные элементы системы. Если отдельные драйвера не подходят к конкретным устройствам, или они повреждены, или вызывают конфликт устройств – тогда стоит сменить драйвера, обновить их на более свежие версии, или наоборот, откатить свежий драйвер на предыдущую, более стабильную, версию;
- Сбои в работе различных системных служб и программ. В таком случае может быть эффективным откат на предыдущую точку восстановления системы, а также загрузка в безопасном режиме и дальнейшая отладка нестабильных элементов системы (если загрузка в safe mode прошло нормально, то виновник, скорее всего, находится на уровне программных компонентов ОС Windows). Также стоит установить все необходимые обновления операционной системы.
- Действие вирусных программ, способных вызвать серьёзной сбой в работе операционной системы. В борьбе со зловредами используйте проверенные антивирусные программа с регулярно обновляемыми базами (AVG, Avast, Total Security, Kaspersky и др.).
- Также, в борьбе со СТОП-ошибками можно также попробовать различные восстановительные флешки и диски (Live CD), позволяющие исправлять проблемы с отдельными программными модулями ОС Виндовс;
- Если же ничего не помогает, и проблема продолжает появляться, тогда, возможно, стоит подумать над тотальной переустановкой операционной системы.
Причин возникновения описанной дисфункции “A problem has been detected and Windows has been shut down” может быть множество, потому для точной идентификации проблемы стоит обратить внимание на техническое описание ошибки на синем экране. После определения виновника проблемы стоит использовать соответствующий совет из предложенных мной, а если вы чувствуете себя не достаточно подкованным(ой) в таких вопросах, тогда стоит доверить решение вашей проблемы компетентному специалисту.
Проблемы с ноутбуком
На ноутбуке появилось сообщение об ошибке
Windows Boot Manager
Windows failed to start. A recent hardware or software change might be the cause. To fix the problem:
1. Insert your windows installation disc and restart your computer.
2. Choose your language settings, and then click »Next.»
3. Click »Repair your computer.»
If you do not have this disc, contact your system administrator or computer manufacturer for assistance.
File: \Boot\BCD
Status: 0xc000000f
Info: An error occurred while attempting to read the boot configuration data.
Или в переводе на русский
Диспетчер загрузки Windows
ОС Windows не удалось запустить. Последние аппаратные или программные изменения могут быть причиной. Для решения этой проблемы:
1. Вставьте установочный диск Windows, и перезагрузите компьютер.
2. Выберите параметры языка, а затем нажмите кнопку» Далее. »
3. Нажмите» ремонтом вашего компьютера. »
Если у вас нет этого диска, обратитесь к системному администратору или изготовителю компьютера для получения помощи.
Файл: \ Boot \ BCD
Статус: 0xc000000f
Информация: Произошла ошибка при попытке чтения данных конфигурации загрузки.
Нашла установочный диск Windows 7. Безрезультатно.
А вот установочный диск Windows 8 помог. Хотя и установлен на ноутбуке был Windows 7.
- Перезагрузила компьютер.
- Зашла в BIOS при помощи специальной клавиши, которая для каждой материнской платы своя, у меня F2.
- Открыла раздел биоса Main. Установила F12 Boot Menu Enabled. Далее нажала F10 для сохранения изменений меню и выхода из него.
- Установила установочный диск в CD ROM, который сделала первым в загрузочной иерархии. По умолчанию загрузка производится из жесткого диска.
- Перезагрузила компьютер и нажала F12 для входа в Boot Menu.
- При появлении на экране строки «Press any kay from CD or DVD» нажала любую из клавиш, чтобы запустилась загрузка с CD ROM и началась установка Windows.
- После того, как появится меню установки нажимаем «Далее».
- Теперь необходимо в левом нижнем углу найти «Восстановление».
После нажатия на поле » Восстановить» у меня появилась строка Диск заблокирован. По этой причине пришлось все предыдущие операции проделать повторно и отправится в меню «Диагностика» и «Дополнительные параметры» там «Командная строка».
Теперь займемся открытием доступа к диску, на котором находится Windows.
Необходимо прописать простую команду «Bootrec /fixmbr». Нажимаем «Enter».
- Ключ меняем на «/rebuildbcd». Опять же подтверждаем «Enter».
- Перезагружаем компьютер.
- Теперь появляется доступ к диску.
Главное, что для процедуры необходимо использовать дистрибутив Windows. И даже может понадобиться ключ активации, с помощью которого ранее и была установлена текущая система. В противном случае команда может не сработать, а значит все останется, как есть.
У меня на удивление сработало при запуске диска с Windows 8, и система с Windows 7 восстановилась.
В моем случае думаю что все проблемы связаны с тем, что первоначально на ноут буке была установлена Windows Vista. Возможно аппаратно мой ACER не тянет Windows 7 и поэтому у меня частенько происходит перезагрузка или загорается синий экран.