После аварийного отключения физического сервера с ролью контроллера домена Active Directory при загрузке сервера столкнулись с BSOD ошибкой stop code 0x00002e2. Данная ошибка указывает на то, что база Active Directory (файл NTDS.DIT) повреждена. В этой статье мы разберемся, как исправить файл ntds.dit и запустить контроллер домена (в нашем примере это сервер с Windows Server 2016).
В предыдущих версиях Windows Server эта же ошибка выглядит так:
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.
Итак, Windows Server на контроллере домена не загружается с ошибкой 0xc00002e2. После трех перезагрузок сервера он автоматически перейдет в режим восстановления WinRE (или нажмите F8 при загрузке). Вам нужно запустить Windows в режиме восстановления службы каталогов (DSRM).
Выберите Startup Settings -> Restart.
Затем после загрузки выберите Directory Services Restore Mode в меню расширенных опций загрузки.
При загрузке сервера в режиме DSRM вы сможете войти на него под локальным администратором. На контроллере домена единственная локальная учетная запись — администратор DSRM. Вы задаете его пароль при установке роли контроллера домена ADDS на сервере (SafeModeAdministratorPassword).
Если вы не знаете пароль администратора DSRM, можно сбросить его с помощью любой утилиты с загрузочного диска или загрузочного диска MsDART.
После входа на рабочий стол DC запустите командную строку. На этом этапе нужно убедиться, на месте ли все каталоги и файлы службы каталога.
Выполните команды:
NTDSUTIL
activate instance ntds
Files
Info
Убедитесь, что каталог с файлом NTDS (по умолчанию C:WindowsNTDS) и сам файл ntds.dit находятся по указанным путям и не удалены.
Попробуем проверить целостность базы данных AD:
integrity
В моем случае команда вернула, что база повреждена:
Could not initialize the Jet engine: database is inconsistent. Failed to open DIT for AD DS/LDS instance NTDS. Error -2147418113
Нам придется исправить файл с базой AD с помощью утилиты esentutl. Утилита должна быть хорошо знакома администраторам Exchange. Также мы показывали, как использовать esentutl, чтобы уменьшить размер индексного файла службы поиска Windows.edb. Но сначала сделайте резервную копию содержимого каталога NTDS:
mkdir c:ntds_bak
xcopy c:WindowsNTDS*.* c:ntds_bak
Проверим целостность файла ntds.dit:
esentutl /g c:windowsntdsntds.dit
Утилита определила, что база AD повреждена:
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.
Попробуйте исправить ошибки в базе данных с помощью команды:
esentutl /p c:windowsntdsntds.dit
Если ошибки исправлены, должно появится сообщение:
Operation completed successfully in xx seconds.
Еще раз проверьте целостность с помощью
esentutl /g
.
Integrity test successful. It is recommended you to run semantic database analysis to ensure semantic database consistence as well.
Выполните анализ семантики базы с помощью ntdsutil:
ntdsutil
activate instance ntds
semantic database analysis
go
Если семантические ошибки найдены, чтобы исправить их выполните:
go fixup
Теперь можно сжать файл ntds.dit:
activate instance ntds
files
compact to C:WindowsNTDSTEMP
Замените оригинальный файл ntds.dit:
copy C:WindowsNTDSTEMPntds.dit C:WindowsNTDSntds.dit
Удалите все лог файлы из каталога NTDS:
Del C:WindowsNTDS*.log
Перезагрузите сервер в обычном режиме. Убедитесь, что службы ADDS стартовали и контроллер домена доступен по сети. Проверьте здоровье контроллера домена и состояние репликации Active Directory.
Обновлено 06.05.2022
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов Pyatilistnik.org. В прошлый раз мы с вами рассматривали менеджер пакетов Winget, который позволяет с помощью PowerShell много чего устанавливать. В сегодняшней статье я буду бороться с пресловутым синим экраном 0xc00002e2, который я поймал на одном из контроллеров домена. Что ж не приятно, но не смертельно, давайте выходить из этой ситуации.
❌Описание ситуации с BSOD 0xc00002e2 на контроллере домена
И так есть Active Directory состоящий из леса и трех доменов, в одном из доменов есть четыре контроллера домена. Один из них в какой-то момент перестал отвечать в системе мониторинга. Это была виртуальная машина на базе Vmware ESXI. Подключившись к консольному подключению я увидел вот такую картину:
После перезагрузки сервер опять выпадал в 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
Надеюсь, что у вас это не последний контроллер домена в сети, поэтому самый простой способ это:
- Восстановить из резервной копии данный контроллер, при условии, что его копия не старше дня, чтобы не было проблем с репликацией
- Полностью удалить недоступный контроллер домена и заменить его на новый. Если на сервере были роли FSMO, то их сначала нужно захватить и перенести.
- Но если решились восстанавливать то давайте приступать, может, что и получиться.
Когда вы раза три увидите синий экран с кодом 0xc00002e2, то сервер загрузиться в режиме восстановления WinPE, его при желании можно вызвать клавишей F8 при загрузке. У любого контроллера домена есть специальный режим восстановления службы каталогов (Directory Services Repair Mode — DSRM).
На экране «Choose an option» выберите пункт «Troubleshoot«.
Далее выбираем пункт «Startup Settings«.
Перезагружаем сервер.
Далее при загрузке найдите пункт «Directory Services Repair Mode»
Начнется загрузка DSRM, по сути вы увидите привычную загрузку Windows, в которую вы сможете войти под локальным администратором DSRM, он задается при настройке.
Если вы не помните пароль от Администратора DSRM, то придется его сбрасывать, например через MsDART или любой другой загрузочный диск
Попав в систему вы первым делом должны запустить командную строку от имени администратора, и далее нам понадобиться одна из самых важных утилит в Active Directory ntdsutil. Вводим команды:
- Ntdsutil (Запускаем саму утилиту)
- activate instance ntds (Подключаемся к активной БД Active Directory)
- Files (Делаем запрос к файлам. где лежит БД)
- Info (Смотрим все файлы и их расположение)
(по умолчанию это будет директория C:WindowsNTDS)
В моем случае это нестандартный каталог, у меня все лежит в папке C:ADDSNTDS. Тут же вы можете посмотреть размер файла БД NTDS.dit.
Теперь попробуйте проверить целостность базы данных, для этого вводим:
У меня выскочила ошибка:
Error: Access to source database ‘C:ADDSNTDSntds.dit’ failed with Jet error — 1206. Operation terminated with error — 1206 (Jet_errDatabaseCorrupted, Non database file or corrupted db) after 0.0 seconds
Или еще распространенная ошибка:
Could not initialize the Jet engine: database is inconsistent.
Failed to open DIT for AD DS/LDS instance NTDS. Error -2147418113
Попробуем восстановить целостность Базы данных Active Directory, для этого есть всем известная утилита esentutl, она очень часто используется при работе с почтовым сервером Exchange. Перед любыми работами всегда нужно сделать резервную копию данных, для этого:
mkdir c:ntds_backup — Создаем папку для резервных копий
xcopy c:ADDSNTDS*.* c:ntds_backup — Копируем содержимое c:ADDSNTDS в c:ntds_backup
Проверим целостность файла ntds.dit:
esentutl /g c:ADDSNTDSntds.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.
Первый процесс закончен, попробуем исправить найденные ошибки, для этого выполните команду:
esentutl /p c:ADDSNTDS\ntds.dit
Если все хорошо, то вы должны получить сообщение «Operation completed successfully in xx seconds«.
Обязательно еще раз проверьте в целостности базы данных, выполните:
должно появиться сообщение:
Integrity test successful. It is recommended you to run semantic database analysis to ensure semantic database consistence as well.
теперь выполним семантический анализ, для этого:
ntdsutil
activate instance ntds
semantic database analysis
go
При обнаружении семантических ошибок примените ключ fixup:
Произведем сжатие БД ntds.dit:
activate instance ntds
files
compact to c:ADDSNTDSTemp
Перезапишем оригинальный файл ntds.dit:
copy c:ADDSNTDSTempntds.dit c:ADDSNTDSntds.dit
Удалите все лог файлы из каталога NTDS:
Перезагрузка
Проверка прав на файлы NTDS
Еще очень важно проверить не сброшены ли были чем-то права на файлы из папки NTDS. Для этого в командной строке введите предварительно попав нужный каталог:
Должны быть права NT AUTHORITYSYSTEM: (ID) F и BUILTINAdministrators: (id) f
Должны быть D:AI(A;ID;FA;;;SY)(A;ID;FA;;;BA)
Должно быть NT AUTHORITYSYSTEM: (ID) F и BUILTINAdministrators: (id) f
Должно быть D:AI (A; ID; FA;;; SY) (A; ID; FA;;; BA)
Надеюсь, что было полезно. С вам был Иван Сёмин, автор и создатель IT проекта Pyatilistnik.org.
How to fix Error 0xc00002e2 after rebooting Windows Domain Controller
This error is an indication that the Active Directory database (NTDS.DIT) is corrupt.
Error code 0xc00002e2 is only seen on a system with Active Directory.
Remediation:
Reboot the server into Directory Services Restore Mode by pressing F8 before the OS begins loading. You will be required to use the local Administrator account password.
In Directory Services Restore Mode, you can check if there is a problem with the database by running the following commands:
ntdsutil.exe
activate instance ntds
files
If there is a problem with the Active Directory database NTDS.DIT, you will see an error like the following:
Could not initialize the Jet engine: Jet Error -501. Failed to open DIT for AD DS/LDS instance NTDS. Error -2147418113
To resolve this issue, rename all of the .log files located in C:WindowsNTDS to .log.old, so the logs can be recreated after reboot.
This should fixed the database after the server is rebooted once more. If you continue to get the error, you can access again Directory Services Restore Mode and run the following command:
esentutl /p «c:windowsntdsntds.dit»
Reboot the server and the issue should be solved.
Created: October 02, 2018 22:30
Last Updated: October 08, 2020 05:41
Related articles
Have More Questions?
Contact our support instantly via Live Chat
Источник
Server 2012 CRASH – ERROR 0XC00002E2
нормально грузится в режиме восстановления . файл базы сначало вообще не давал ничего с собой делать через ntdsutil. ругался что не может запустить JET .
журналы переименовывал (как одно из средств восстановления, создаются по новой.)
после Esentutl с разными ключами , база начала хоть как то дефрагментироваться и проверяться. но есть ошибка:
ntdsutil: Activate Instance NTDS
Активный экземпляр — «NTDS».
ntdsutil: files
file maintenance: Compact to c:temptempNTDS
Запуск режима ДЕФРАГМЕНТАЦИИ.
Исходная база данных: C:WindowsNTDSntds.dit
Конечная база данных: c:temptempNTDSntds.dit
Defragmentation Status (% complete)
0 10 20 30 40 50 60 70 80 90 100
|—-|—-|—-|—-|—-|—-|—-|—-|—-|—-|
. Операция прекращена с
ошибкой -1605( JET_errKeyDuplicate, Illegal duplicate key ).
______________________________
проверял все доступы к папкам журнала и базы . все нормально.
recover проходит без ошибок. а вот
file maintenance: integrity
Выполнение проверки целостности для базы данных: C:WindowsNTDSntds.dit.
Checking database integrity.
Scanning Status (% complete)
Integrity check completed. Database is CORRUPTED!
Операция прекращена с ошибкой -1206( JET_errDatabaseCorrupted, Non database file
or corrupted db ).
— в домене трудится второй контроллер — с него как то можно взять файл базы или синхронизировать ?
— можно сломанный сервер освободить от роли AD загрузиться в нормальном режиме и опять развернуть службу AD — домен его как » страый «второй КД подхватит?
Ответы
ВОПРОС — МОЖНО ЕГО СЕЙЧАС В СЕТЬ ВОЗВРАЩАТЬ чтоб он реплицировался и встал в строй полноценно??
проверки есть какие нибудь ??
Лучше не возвращать, а принудительно понизить (Uninstall-ADDSDomainController -ForceRemoval в Powershell), вычистить на другом КД информацию о нём из Active Directory (к примеру — удалить подобъект NTDS Settings объекта этого сервера в AD Sites and services) и, если он ещё нужен как КД — повысить заново.
Дело в том, что после выполнения esentutl /p потеря данных при таком исправлении может привести к рассогласованию БД Active Directory с копией на другом КД, которое практически невозможно выявить. А также — к другим трудновыявляемым ошибкам.
Поэтому Microsoft советует (есть статья 258062 в MS KB) прибегать к esentutl /p только как крайней мере — для восстановления единственного КД в домене при отсутствии резервной копии — и даже рекомендует после этого по возможности быстрее произвести миграцию учётных записей пользователей и компьютеров в неповреждённый домен.
Источник
Memorise
How to Fix C00002E2 Directory Services Could Not Start – Blue Screen
There are several reasons you may get get this error. The most common being a corrupt Active Directory database (NTDS.DIT). I know this sounds detrimental, but it’s actually easy to fix this blue screen.
*** This is the Active Directory Database we’re talking about here, so make sure you have a good backup of the server, in case this doesn’t work***
This Stop code is only seen on a system with Active Directory on it. You notice it when the server is booting. You’ll get a blue screen and an error code, like the following:
STOP: c00002e2 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.
To begin, do as the message says, and boot into Directory Services Restore Mode. When the server powers on, press F8 before the OS begins to load. You should see a selection screen like this. Choose Directory Services Restore Mode:
Once in Directory Services Restore Mode, you can check if there is a problem with the database by running the following commands:
ntdsutil.exe
activate instance ntds
files
If there is a problem with it, you’ll see something like this returned:
To fix, just rename all of the .log files located in C:windowsntds to .log.old, or anything else, so they can be recreated.
Now reboot the server. For most people, this fixed the database, and the server booted up. For others, it still blue screened after this. If you continue to get a blue screen, run the following command in Directory Services Restore Mode, and then reboot:
esentutl /p “c:windowsntdsntds.dit”
—– Same instruction above in details —
STOP: c00002e2 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.
- Restart the server and press F8 key, select Directory Services restore mode.
- Log in with the local administrator username and password
- Type: cd windowssystem32
- Type: NTDSUTIL
- Type: activate instance NTDS
- Type: files
- If you encounter an error stating that the Jet engine could not be initialized exit out of ntdsutil.
- Type: cd
- Type: md backupad
- Type: cd windowsntds
- Type: copy ntds.dit c:backupad
- Type: cd windowssystem32
- Type: esentutl /g c:windowsntdsntds.dit
- This will perform an integrity check, (the results indicate that the jet database is corrupt)
- Type: esentutl /p c:windowsntdsntds.dit
- Agree with the prompt
- Type: cd windowsntds
- Type: move *.log c:backupad (or just delete the log files)
This should complete the repair. To verify that the repair has worked successfully:
- Type: cd windowssystem32
- Type: ntdsutil
- Type: activate instance ntds
- Type: files (you should no longer get an error when you do this)
- Type: info (file info should now appear correctly)
I then rebooted and windows started normally.
Источник
День добрый.
подскажите пожалуйста по такой проблеме .
есть домен на 2х контроллерах Win srv 2012 r2 .
один не смог загрузиться из-за переполнения диска где лежит журнал AD. вываливается теперь с
Server 2012 CRASH – ERROR 0XC00002E2
нормально грузится в режиме восстановления . файл базы сначало вообще не давал ничего с собой делать через ntdsutil. ругался что не может запустить JET .
журналы переименовывал (как одно из средств восстановления, создаются по новой.)
после Esentutl с разными ключами , база начала хоть как то дефрагментироваться
и проверяться. но есть ошибка:
_____________________________
ntdsutil: Activate Instance NTDS
Активный экземпляр — «NTDS».
ntdsutil: files
file maintenance: Compact to c:temptempNTDS
Запуск режима ДЕФРАГМЕНТАЦИИ…
Исходная база данных: C:WindowsNTDSntds.dit
Конечная база данных: c:temptempNTDSntds.dit
Defragmentation Status (% complete)
0 10 20 30 40 50 60 70 80 90 100
|—-|—-|—-|—-|—-|—-|—-|—-|—-|—-|
………………………………………….Операция прекращена с
ошибкой -1605( JET_errKeyDuplicate, Illegal duplicate key ).
______________________________
проверял все доступы к папкам журнала и базы . все нормально.
recover проходит без ошибок. а вот
—————————————
file maintenance: integrity
Выполнение проверки целостности для базы данных: C:WindowsNTDSntds.dit.
Checking database integrity.
Scanning Status (% complete)
0 10 20 30 40 50 60 70 80 90 100
|—-|—-|—-|—-|—-|—-|—-|—-|—-|—-|
……………………………………………
Integrity check completed. Database is CORRUPTED!
Операция прекращена с ошибкой -1206( JET_errDatabaseCorrupted, Non database file
or corrupted db ).
———————————————————
вопроса 2 :
— в домене трудится второй контроллер — с него как то можно взять файл базы или синхронизировать ?
— можно сломанный сервер освободить от роли AD загрузиться в нормальном режиме и опять развернуть службу AD — домен его как » страый «второй КД подхватит?
-
Изменено
20 июля 2016 г. 6:53
- Remove From My Forums
-
Question
-
Hey all,
This is my situation. I building a Failover Cluster for Hyper-V. No problems with that. I installed several new virtual server.
Most are Windows Server 2008R2 but the domain controllers are Windows Server 2012. After I add a new node and test the live migration I noticed that my two domain controllers were offline.
So I check the console of both domain controllers, they hanging with a blue screen on error 0xc00002e2. I restart them, but no luck. The only way to start them is in «Active Directory Recovery Mode».
Error 0xc00002e2 means: Directory Services could not start because of the following error: A device attached to the system is not functioning. Of course I check the virtual machine hardware. Nothing was changed.
Both domain controllers were clean installations, nothing else than the domain controller was installed. The cluster is a migration from physical hardware, we are in a test stage. So I’m lucky there are to other domain controllers.
I can reinstall the virtual machines.
But I’m concern about the future. What if this happens about 3 weeks when all the data is moved to the new servers and this are the only 2 domain controllers…
-
Edited by
Thursday, May 30, 2013 7:17 AM
-
Edited by
Answers
-
Correct, that is a new feature in Windows Server 2012. But is still a best practice for production environments to keep the DCs as non-HA VMs.
I, too, have had issues with trying to live migrate DCs, and I haven’t gotten to the bottom of it yet. I was trying it just to see if it could be done. For now, I will continue installing DC VMs as non-HA VMs — I haven’t run into any situation
yet where it is an absolute requirement for a DC to be configured as HA.
.:|:.:|:. tim
-
Marked as answer by
Koosvd
Friday, May 31, 2013 9:58 PM
-
Marked as answer by