Overcoming the dreaded 0xc000014c message on start

I had a recent incident with my SCCM server (running Windows Server 2012 R2) in my lab that had an issue - it just shut down on me and came up with this infamous screen (truncated for all of our sake's).

Windows Failed to start. A recent hardware or software change might be the cause.

File: \windows\system32\config\system
Status: 0xc000014c
Info: The operating system couldn't be loaded because the system registry file is missing or contains errors.

Well, before doing any work on it, I noted my last VM export was a bit on the old side. Well, better safe than sorry, I'll back it up. When attempting to back it up, the disk controller driver failed. I then went to copy files manually, and rebuild the server manually, the disk failed to copy with I/O errors.

No worries, likely this is caused by bad sectors on the HDD. Since this is a SSD, and "somewhat" bullet proof, I figure, I'll just scan the disk with the trusty "chkdsk d: /f /r /x".

For those wondering, we all know the /f fixes what it can and /r does the full surface scan. The /x parameter forces the dismount instead of asking.

My results:
C:\WINDOWS\system32>chkdsk d: /f /r /x
The type of the file system is NTFS.

Stage 1: Examining basic file system structure ...
512 file records processed.
File verification completed.
4 large file records processed.
0 bad file records processed.

Stage 2: Examining file name linkage ...
640 index entries processed.
Index verification completed.
0 unindexed files scanned.
0 unindexed files recovered to lost and found.

Stage 3: Examining security descriptors ...
Security descriptor verification completed.
64 data files processed.

Stage 4: Looking for bad clusters in user file data ...
Windows replaced bad clusters in file 100
of name \VM\SCCM Server\SCCM Server.vhdx.
496 files processed.
File data verification completed.

Stage 5: Looking for bad, free clusters ...
100380553 free clusters processed.
Free space verification is complete.
Adding 2 bad clusters to the Bad Clusters File.

Windows has made corrections to the file system.
No further action is required.

937690111 KB total disk space.
536072560 KB in 55 files.
120 KB in 66 indexes.
84 KB in bad sectors.
95135 KB in use by the system.
65536 KB occupied by the log file.
401522212 KB available on disk.

4096 bytes in each allocation unit.
234422527 total allocation units on disk.
100380553 allocation units available on disk.

Let's look at Stage 4 again: Windows replaced bad clusters in file 100
of name \VM\SCCM Server\SCCM Server.vhdx.

Looks like rebuild time. Well, I was able to copy the file once the bad clusters were recorded on the disk from stage 5: Adding 2 bad clusters to the Bad Clusters File.

Once I booted back up, I am back to the original ugly message, Windows Failed to start. A recent hardware or software change might be the cause.

Well, since it's a registry issue, some may not be aware that Windows keeps a backup in the \windows\system32\config\regback folder. Here's a look at this folder, which generally is a week old or less. In my case, 5 days:

Directory of C:\Windows\System32\config\RegBack

05/08/2017 02:26 AM 2,609,152 DEFAULT
05/08/2017 02:26 AM 49,152 SAM
05/08/2017 02:26 AM 57,344 SECURITY
05/08/2017 02:26 AM 129,196,032 SOFTWARE
05/08/2017 02:26 AM 12,267,520 SYSTEM

Since no real system changes happened in those 5 days, I simply booted into Windows PE, copied the registry backup over the top of the files in \windows\system32\config, and rebooted. Everything was back up and running. Of course, a good export of the VM was next.

I hope this is helpful for someone else who may be fighting this issue - seemed to work like a charm for me. Of course, your results may vary, but I was also was working from a snapshot of the VM, so the worst thing that would happen is it still wouldn't boot and I can roll back.

-- If you like my blogs, please share it on social media, rate it, and/or leave a comment. --