Синий экран 0xc00002e2, решаем за минуту
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов Pyatilistnik.org. В прошлый раз мы с вами рассматривали менеджер пакетов Winget, который позволяет с помощью PowerShell много чего устанавливать. В сегодняшней статье я буду бороться с пресловутым синим экраном 0xc00002e2, который я поймал на одном из контроллеров домена. Что ж не приятно, но не смертельно, давайте выходить из этой ситуации.
❌Описание ситуации с BSOD 0xc00002e2 на контроллере домена
И так есть Active Directory состоящий из леса и трех доменов, в одном из доменов есть четыре контроллера домена. Один из них в какой-то момент перестал отвечать в системе мониторинга. Это была виртуальная машина на базе Vmware ESXI. Подключившись к консольному подключению я увидел вот такую картину:
После перезагрузки сервер опять выпадал в BSOD, и далее по циклу. В логах вы можете потом обнаружить, если доберетесь:
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
Надеюсь, что у вас это не последний контроллер домена в сети, поэтому самый простой способ это:
- Восстановить из резервной копии данный контроллер, при условии, что его копия не старше дня, чтобы не было проблем с репликацией
- Полностью удалить недоступный контроллер домена и заменить его на новый. Если на сервере были роли FSMO, то их сначала нужно захватить и перенести.
- Но если решились восстанавливать то давайте приступать, может, что и получиться.
Когда вы раза три увидите синий экран с кодом 0xc00002e2, то сервер загрузиться в режиме восстановления WinPE, его при желании можно вызвать клавишей F8 при загрузке. У любого контроллера домена есть специальный режим восстановления службы каталогов (Directory Services Repair Mode - DSRM).
На экране "Choose an option" выберите пункт "Troubleshoot".
Далее выбираем пункт "Startup Settings".
Перезагружаем сервер.
Далее при загрузке найдите пункт "Directory Services Repair Mode"
Начнется загрузка DSRM, по сути вы увидите привычную загрузку Windows, в которую вы сможете войти под локальным администратором DSRM, он задается при настройке.
Попав в систему вы первым делом должны запустить командную строку от имени администратора, и далее нам понадобиться одна из самых важных утилит в Active Directory ntdsutil. Вводим команды:
- Ntdsutil (Запускаем саму утилиту)
- activate instance ntds (Подключаемся к активной БД Active Directory)
- Files (Делаем запрос к файлам. где лежит БД)
- Info (Смотрим все файлы и их расположение)
В моем случае это нестандартный каталог, у меня все лежит в папке C:\ADDS\NTDS\. Тут же вы можете посмотреть размер файла БД NTDS.dit.
Теперь попробуйте проверить целостность базы данных, для этого вводим:
У меня выскочила ошибка:
Или еще распространенная ошибка:
Failed to open DIT for AD DS/LDS instance NTDS. 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
Утилита вам сообщит. что с базой не все хорошо и она повреждена:
После чего начнется процесс восстановления, а может и не начаться и вы легко можете опять получить ошибку Jet error - 1206.
Первый процесс закончен, попробуем исправить найденные ошибки, для этого выполните команду:
Если все хорошо, то вы должны получить сообщение "Operation completed successfully in xx seconds".
Обязательно еще раз проверьте в целостности базы данных, выполните:
должно появиться сообщение:
теперь выполним семантический анализ, для этого:
activate instance ntds
semantic database analysis
go
При обнаружении семантических ошибок примените ключ fixup:
Произведем сжатие БД ntds.dit:
files
compact to c:\ADDS\NTDS\Temp
Перезапишем оригинальный файл ntds.dit:
Удалите все лог файлы из каталога NTDS:
Перезагрузка
Проверка прав на файлы NTDS
Еще очень важно проверить не сброшены ли были чем-то права на файлы из папки NTDS. Для этого в командной строке введите предварительно попав нужный каталог:
Должны быть права NT AUTHORITY\SYSTEM: (ID) F и BUILTIN\Administrators: (id) f
Должны быть D:AI(A;ID;FA;;;SY)(A;ID;FA;;;BA)
Должно быть NT AUTHORITY\SYSTEM: (ID) F и BUILTIN\Administrators: (id) f
Должно быть D:AI (A; ID; FA;;; SY) (A; ID; FA;;; BA)
Надеюсь, что было полезно. С вам был Иван Сёмин, автор и создатель IT проекта Pyatilistnik.org.