STATUS_DS_SAM_INIT_FAILURE (0XC00002CB) – Domain Controller Boot Fix
Your domain controller won't boot and throws 0XC00002CB. It means the SAM database is corrupted or has a schema version mismatch. Here's the real fix.
You reboot your domain controller after a power outage or a failed update, and instead of the login screen you get a black screen with STATUS_DS_SAM_INIT_FAILURE (0XC00002CB). The server sits there, unresponsive, until you force a restart. This typically happens on Windows Server 2012 R2 through 2022, and the trigger is almost always a corrupt Active Directory database (NTDS.DIT) or a schema version mismatch after a partial upgrade.
What's Actually Happening Here
The SAM (Security Account Manager) initialization failure means the local Security Accounts Manager database — or more often, the Active Directory database it depends on — failed to load during boot. The error code 0XC00002CB maps to STATUS_DS_SAM_INIT_FAILURE in the Windows bugcheck database. What's happening at the kernel level is that the Directory Service module (lsass.exe) tries to mount NTDS.DIT, verifies its schema version against the registry, and if those don't match — or the database is corrupt — it bails out with this error.
The reason this appears during boot and not at runtime is that the SAM subsystem initializes before the network stack is fully up. So no remote recovery, no safe mode with networking — you're stuck at a console.
The Fix – Step by Step
I'm going to assume you have physical or out-of-band console access. The fix uses Directory Services Restore Mode (DSRM), which is the only way to get a degraded DC to boot and let you touch the database.
- Boot into Directory Services Restore Mode. Reboot the server and press F8 during POST (or hold Shift while clicking Restart from the recovery menu, if you can get there). Select Directory Services Restore Mode. You'll boot to a minimal command-line environment where Active Directory is not started.
- Log in with the DSRM administrator account. This is the password you set when you promoted the DC. Not your domain admin — it's a local account specific to DSRM. If you don't have this password, you're hosed. Microsoft doesn't provide a backdoor. You'll need to reinstall or restore from backup.
- Open an elevated command prompt. Run
cmd.exeas Administrator. - Check the database integrity. Run:
This runs a database integrity check onntdsutil activate instance ntds files integrityNTDS.DIT. It's read-only — won't corrupt anything further. If it reports errors, proceed to step 5. If it says clean, your issue is schema version mismatch — jump to step 7. - Repair the database. Still inside ntdsutil, run:
This can take 10–30 minutes depending on database size. Important: This is a semantic repair, not a full defrag. It marks corrupt objects as unreachable but doesn't delete them. After repair, runrepairintegrityagain to confirm it passes. - Compact the database to reclaim space. Run:
(Create thecompact to C:\temp\ntdsC:\temp\ntdsfolder first.) This writes a clean, defragmented copy of the database. Copy it back:
Remove the temp files afterward.copy C:\temp\ntds\ntds.dit C:\Windows\NTDS\ntds.dit - Check schema version match. The registry key
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parametershas a valueSchema Version. For Windows Server 2019, that should be88. Open regedit (you're in DSRM, so registry is mounted), compare this to what the database expects. If they mismatch, you need to update the schema usingadprep /forestprepfrom a working DC — but since this DC is down, you're likely looking at a restore scenario. - Exit DSRM and reboot normally. Run
shutdown /r /t 0.
If It Still Fails After the Repair
Two scenarios. First, the database is beyond repair — physically corrupt sectors on the disk. Check the system event log (you can view it from DSRM using eventvwr.msc) for disk errors like Event ID 55 or 153. If the disk is failing, restore from a verified system state backup. Second, the schema version in the registry doesn't match the database. This usually happens when you applied an update on a replica DC and the schema didn't replicate fully. In that case, your only clean options are:
- Seize FSMO roles from another DC and demote this one via
ntdsutilmetadata cleanup. - Force a non-authoritative restore from a system state backup taken before the schema change.
I've seen people try to hack the registry key to match the database version. Don't. That's how you get replication conflicts that bring down the whole forest. Let this DC go and rebuild it — it's faster and safer.
One last thing: If you have multiple domain controllers, the real fix is to never let this DC become a single point of failure. Run two+ DCs per site. Then a boot failure like this means you just seize roles and rebuild at your leisure.
Was this solution helpful?