Восстановление Windows 11 DRIVER_VERIFIER_DMA_VIOLATION

2023.11.14
Разберем случай восстановления Windows 11 когда при загрузке ОС получается BSOD с кодом DRIVER_VERIFIER_DMA_VIOLATION.

Windows я пользуюсь крайне редко, например когда надо распечатать что-то на принтере или для игр. Основная деятельность происходит в Ubuntu 22.04.

Однажды захотел я на своем игровом ноутбуке Machenike S15C поиграть в старые игры. Нашел, установил, поиграл, забыл на месяц. Через месяц включил и ...

По первой ссылке в Google попадаю на сайт Microsoft, где рекомендуют отключить DMA в BIOS. Поискал в BIOS, не нашел. Значит придется засучить рукава.

Восстановление средствами ОС

Под рукой была флешка, можно скачать ISO образ Windows 11 с сайта microsoft и попробовать средства восстановления. Однако, компания Microsoft закрыла доступ для скачивания из России, можно скачать по приведенной ссылке либо торренты.

Загружаемся в флешки, выбираем "Восстановление", и пробуем различные варианты - ни один не работает. Однако, есть доступ к консоли. Есть руковосдвто по cmd командам. А здесь есть инструкции по восстановлению DISM и SFC.

Но мне нужно было идти дальше.

Включение опций загрузки Windows с grub

Когда средства восстановления из образа и знания администрирования закончились, было решено пойти в безопасный режим или около того. Однако, выбор ОС у меня осуществляется через grub, а значит никакие F8 не работают.

Недолгоие поиски привели к этому вопросу на сайте Microsost, для включения окна выбора опций загрузки в консоли (из предыдущей главы) нужно:

> bcdedit /set {globalsettings} advancedoptions true

Теперь каждый раз после выбора Windows в качестве загружаемой ОС будет выбор опции загрузки:

Однако, безопасный режим не помог, а при отключении обязательной проверки подписи драйверов Windows 11 все-таки загрузилась. Можно отключить проверку цифровой подписи не только единожды при загрузке, а вообще в системе, но мне стало интерено: в чем проблема?

Поиск проблемных драйверов

Я не любитель алкоголя и прочих прожигов, там своя магия. Однако, в некоторых случаях без этого никак ¯\_(ツ)_/¯

Простое удаление нежелательного ПО не помогло, драйвера не удаляются так просто. Значит нужно их удалять как-то по особенному, но для начала нужно найти эти драйвера.

Список драйверов можно просмотреть через консоль:

> pnputil /enum-drivers

Или так:

> dism /online /get-drivers /format:table

Удалить драйвер через консоль:

> dism /image:c:\ /remove-driver /driver:oem###.inf

Где

Однако, драйвер, который создал проблему таким образом не был выявлен.

Недолгие поиски привели меня на эту статью, воспользовавшись советом по поиску неподписанных драйверов я наткнулся на них:

А поиск по файлам показал источнки проблем:

Пустив слезу от увиденной надписи StarForce, вспоминая диски с лицензионными играми из детства, я пошел дальше.

Удаление драйвера

Штатного деинсталятора в системе не нашел, однако на сайте StarForce можно скачать деинсталятор: Versions before 5.5 - SFREMOVE.

Запустил, удалил, перезагрузил Windows - загружается без ошибок.

В телеграм канале DevOps от первого лица можно оставить комментарий или почитать интересные истории из практики DevOps