Проблема
После внезапного выключения электричества, контроллер домена на базе Windows Server 2012R2 (виртуальная машина на standalone VMWareESXi 6.5 - без vcenter) ушел в несознанку и при каждой загрузке вываливается в синий экран с ошибкой:
PAGE_FAULT_IN_NONPAGED_AREA
Все предварительные реанимационные мероприятия проведены. Создан снепшот, выполнен chkdsk (ошибок не обнаружено).
Судя по всему проблема в реестре.
Решение
После очередной перезагрузки стартует Repair Mode.
Там жмем Troubleshoot и запускаем Command Prompt.
Проверяем, что на диске С у нас есть наш Windows:
c: dir
Смело (ведь у нас есть снепшот) восстанавливаем реестр из бекапа:
copy /y c:\windows\system32\config\regback\* c:\windows\system32\config\ exit
И перезагружаемся.
В результате у меня система начала грузиться иначе - теперь ошибка была уже 0xc00002e2 - Directory Services Could Not Start. А это гораздо лучше!!!
Теперь нам надо загрузиться в режим восстановления служб Active Directory - Directory Services Repair Mode (DSRM).
Для этого, когда комп опять перезагрузится в Repair Mode жмем Troubleshoot и затем Startup Settings и Restart. В результате мы попадем в меню, которое раньше (в виндах до 8/2012) было доступно по F8.
Там выбираем Directory Services Repair Mode. В моем случае винда загрузилась в GUI.
Теперь логинимся локальным админом и начинаем чинить.
1. Делаем бекап папки c:\Windows\NTDS
2. Запускаем cmd и выполняем:
cd c:\Windows\NTDS del /q /f *.log ntdsutil
3. В консоли NTDSUTIL выполняем:
activate instance ntds files info
Смотрим и видим, что у нас действительно используются файлы из папки c:\Windows\NTDS.
4. Выходим из NTDSUTIL с помощью команды q.
5. Собственно сама починка. В командной строчке выполняем:
esentutl /p "c:\windows\ntds\ntds.dit"
На вопрос отвечаем утвердительно.
6. Теперь выполняем дефрагментацию базы данных AD.
Для этого создаем временную папку:
cd C:\Windows\NTDS md Temp
7. Запускаем NTDSUTIL
NTDSUTIL
8. В консоли NTDSUTIL выполняем:
activate instance ntds files info compact to "C:\Windows\NTDS\Temp"
Выходим из ntdsutil с помощью q
9. Копируем дефрагментированную базу изз временной папки:
copy /y C:\Windows\NTDS\Temp\ntds.dit C:\Windows\NTDS\ntds.dit del /q /f C:\Windows\NTDS\*.log
10. Перезагружаемся!!! Все должно работать!
https://community.spiceworks.com/topic/1345241-2012-r2-dc-crash-and-won-t-boot-with-error-0xc00002e2
https://ithinkvirtual.com/2017/11/12/fixing-a-corrupt-domain-controller-stop-code-0x00002e2/
http://windowssystemsadmin.blogspot.com/2017/05/how-to-fix-c00002e2-directory-services.html
Discussion