Синий экран 0xc00002e2, решаем за минуту

Обновлено 06.05.2022

0xc00002e2

Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов Pyatilistnik.org. В прошлый раз мы с вами рассматривали менеджер пакетов Winget, который позволяет с помощью PowerShell много чего устанавливать. В сегодняшней статье я буду бороться с пресловутым синим экраном 0xc00002e2, который я поймал на одном из контроллеров домена. Что ж не приятно, но не смертельно, давайте выходить из этой ситуации.

❌Описание ситуации с BSOD  0xc00002e2 на контроллере домена

И так есть Active Directory состоящий из леса и трех доменов, в одном из доменов есть четыре контроллера домена. Один из них в какой-то момент перестал отвечать в системе мониторинга. Это была виртуальная машина на базе Vmware ESXI. Подключившись к консольному подключению я увидел вот такую картину:

Stop code: 0xc00002e2

0xc00002e2

После перезагрузки сервер опять выпадал в BSOD, и далее по циклу. В логах вы можете потом обнаружить, если доберетесь:

STOP c000002e2 Directory Services could not start because of the following error:
A device attached to the system is not functioning.
Error Status: 0xc0000001
Please shutdown this system and reboot into Directory Services Restore Mode, check the event log for more detailed information.

Как исправить синий экран 0xc00002e2

Надеюсь, что у вас это не последний контроллер домена в сети, поэтому самый простой способ это:

Когда вы раза три увидите синий экран с кодом 0xc00002e2, то сервер загрузиться в режиме восстановления WinPE, его при желании можно вызвать клавишей F8 при загрузке. У любого контроллера домена есть специальный режим восстановления службы каталогов (Directory Services Repair Mode - DSRM).

На экране "Choose an option"  выберите пункт "Troubleshoot".

Choose an option troubleshoot

Далее выбираем пункт "Startup Settings".

advanced options startup settings

Перезагружаем сервер.

Restart to change Windows options such as

Далее при загрузке найдите пункт "Directory Services Repair Mode"

Выберите пункт Directory Services Restore Mode

Начнется загрузка DSRM, по сути вы увидите привычную загрузку Windows, в которую вы сможете войти под локальным администратором DSRM, он задается при настройке.

Если вы не помните пароль от Администратора DSRM, то придется его сбрасывать, например через MsDART или любой другой загрузочный диск

Попав в систему вы первым делом должны запустить командную строку от имени администратора, и далее нам понадобиться одна из самых важных утилит в Active Directory ntdsutil. Вводим команды:

  • Ntdsutil (Запускаем саму утилиту)
  • activate instance ntds (Подключаемся к активной БД Active Directory)
  • Files (Делаем запрос к файлам. где лежит БД)
  • Info (Смотрим все файлы и их расположение)

(по умолчанию это будет директория C:\Windows\NTDS)

В моем случае это нестандартный каталог, у меня все лежит в папке C:\ADDS\NTDS\. Тут же вы можете посмотреть размер файла БД NTDS.dit.

ntdsutil просмотр файлов БД AD

Теперь попробуйте проверить целостность базы данных, для этого вводим:

integrity

У меня выскочила ошибка:

Error: Access to source database 'C:\ADDS\NTDS\ntds.dit' failed with Jet error - 1206. Operation terminated with error - 1206 (Jet_errDatabaseCorrupted, Non database file or corrupted db) after 0.0 seconds

ntdsutil error 1206

Или еще распространенная ошибка:

Could not initialize the Jet engine: database is inconsistent.
Failed to open DIT for AD DS/LDS instance NTDS. Error -2147418113

Error -2147418113

Попробуем восстановить целостность Базы данных Active Directory, для этого есть всем известная утилита esentutl, она очень часто используется при работе с почтовым сервером Exchange. Перед любыми работами всегда нужно сделать резервную копию данных, для этого:

mkdir c:\ntds_backup  - Создаем папку для резервных копий
xcopy c:\ADDS\NTDS\*.* c:\ntds_backup - Копируем содержимое c:\ADDS\NTDS\ в c:\ntds_backup

Проверим целостность файла ntds.dit:

esentutl /g c:\ADDS\NTDS\ntds.dit

Утилита вам сообщит. что с базой не все хорошо и она повреждена:

The database is not up-to-date. This operation may find that this database is corrupted because data from the log files has not yet to be placed in the database. To ensure the database is up-to-date please use the Recovery operation. Integrity check completed. Database is CORRUPTED.

После чего начнется процесс восстановления,  а может и не начаться и вы легко можете опять получить ошибку Jet error - 1206.

ntdsutil -файл базы Active Directory ntds.dit поврежден

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

esentutl /p c:\ADDS\NTDS\\ntds.dit

Если все хорошо, то вы должны получить сообщение "Operation completed successfully in xx seconds".

исправить ошибки в файле базы AD ntds.dit

Обязательно еще раз проверьте в целостности базы данных, выполните:

esentutl /g

должно появиться сообщение:

Integrity test successful. It is recommended you to run semantic database analysis to ensure semantic database consistence as well.

проверка целостности базы Active Directory

теперь выполним семантический анализ, для этого:

ntdsutil
activate instance ntds
semantic database analysis
go

При обнаружении семантических ошибок примените ключ fixup:

go fixup

active directory ntdsutil проверка семантики semantic database analysis

Произведем сжатие БД ntds.dit:

activate instance ntds
files
compact to c:\ADDS\NTDS\Temp

Перезапишем оригинальный файл ntds.dit:

copy c:\ADDS\NTDS\Temp\ntds.dit c:\ADDS\NTDS\ntds.dit

Удалите все лог файлы из каталога NTDS:

Del c:\ADDS\NTDS\*.log

Перезагрузка

Проверка прав на файлы NTDS

Еще очень важно проверить не сброшены ли были чем-то права на файлы из папки NTDS. Для этого в командной строке введите предварительно попав нужный каталог:

cacls ntds.dit

Должны быть права NT AUTHORITY\SYSTEM: (ID) F и BUILTIN\Administrators: (id) f

NTDS. dit /s

Должны быть D:AI(A;ID;FA;;;SY)(A;ID;FA;;;BA)

cacls edb.chk

Должно быть NT AUTHORITY\SYSTEM: (ID) F и BUILTIN\Administrators: (id) f

Cacls edb. chk/s en

Должно быть D:AI (A; ID; FA;;; SY) (A; ID; FA;;; BA)

Проверка прав на файлы NTDS

Надеюсь, что было полезно. С вам был Иван Сёмин, автор и создатель IT проекта Pyatilistnik.org.

Автор - Сёмин Иван

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *