Windows 10 Not Booting (BCD edition)

Boot Phases of a Windows 10 computer

When the power button is depressed the boot process begins. Troubleshooting stages are better understood after learning what happens during the system boot.

Phase Boot Process BIOS UEFI 
1 PreBoot MBR/PBR (Bootstrap Code) UEFI Firmware
2 Windows Boot Manager %SystemDrive%\bootmgr \EFI\Microsoft\Boot\bootmgfw.efi
3 Windows OS Loader %SystemRoot%\system32\winload.exe %SystemRoot%\system32\winload.efi
4 Windows NT OS Kernel %SystemRoot%\system32\ntoskrnl.exe

 

Further explanation

1]  PreBoot

Clicking the power button, system firmware begins POST or Power-On Self Test and loads firmware settings. Next the system looks for a valid OS (Operating System) install / disk system then begins the next phase. The presense of an MBR will indicate to the PreBoot that the Windows Boot Manager can start.

2] Windows Boot Manager

The purpose of the Windows Boot Manager is to load the Windows Loader (Winload.exe). It is housed in the Windows Boot partition. This process exists to make sure the system boots into the right OS. If numerous OS are installed to the same drive, this process verifies you boot to the correct one.

3] Windows OS Loader

This will now initiate the core drivers then start the Windows kernal. The Kernal then completes the process of loading a working OS.

4] Windows NT OS Kernel

Finally, the Kernal loads the system registry hive along with drivers listed in the BOOT_START config file. Processes are then passed to the session manager process (Smss.exe). System manager initializes the system session and loads drivers for all hardware and software needed.

System only boots to the recovery mode

When you turn on the PC, and it boots to recovery console, we should utilize the Bcdedit program to break the cycle.

  • Select "Troubleshooting > Command Prompt"
  • Type Bcdedit /set {default} recoveryenabled no then hit Enter.

In the event that the F8 toggle (Windows Safe Mode) doesn't work, use Safe Mode in legacy. Type Bcdedit /set {default} bootmenupolicy legacy

No display on monitor

During the BIOS phase, the system starts in PreBoot and moves to Loading Windows OS. If there is no hardware issue then the PreBoot phase is marked as complete. A few things to check if it's a hardware issue:

  • Detach external devices and attempt to boot again.
  • Verify your hardware is operational and recognized in BIOS, also look for blinking LEDs on front of system (HDD activity LED).
  • If still not sure, try toggling Num Lock or Caps lock on keyboard and watch if the indicator light goes on/off.

Blinking cursor and blank screen or error message

If you only see a short error message or only get a glimps there is an issue with the Boot loader phase. Error messages often indicate a corruption of MBR/BCD or the OS is missing. Could also indicate an inability to access the system registry hive or are sometimes caused by external USB devices so disconnecting everything except keyboard, video, power is a good way to test that.

Startup Repair tool

Startup Repair is located under Advanced Options in the Recovery console. It's capable of diagnosing logs as well as automatically fixing startup issues preventing system from booting.

 

  1. Create bootable media using THIS guide.
  2. Boot from the USB and at the Install screen select "Repair".
  3. Shutdown after the repair is complete.
  4. Next, turn on your PC to see if Windows can boot properly.

Boot codes to use

Repair Boot Codes

If you are stuck with an MBR boot sector error message, run the following in the Command Prompt. Open it from the Advanced Options of Recovery.

  • To fix boot codes, run this – BOOTREC /FIXMBR
  • To fix the boot sector, run this – BOOTREC /FIXBOOT

BOOTREC fixes the Master Boot Record. If there is a problem in the partition table, it will not help.

Fix BCD errors

If you are getting a BCD related error, Bootrec can usually solve the problem.

  1. Run Bootrec /ScanOS to scan for existing OS installed on the computer.
  2. Restart to see if error persists. If yes then perform a rebuild, i.e.  Bootrec /rebuildbcd

If the output returns:Total identified Windows installations: 0, run the following commands:

bcdedit /export c:\bcdbackup

attrib c:\\boot\\bcd -h -r –s

ren c:\\boot\\bcd bcd.old

bootrec /rebuildbcd

You should see a success message:Total identified Windows installations: 1{D}:\Windows. Then you are asked “Add installation to boot list? Yes/No/All”,  Enter Y. Reboot and see if this Windows boot problems are resolved.

Bootmgr fix

If the system is still presenting boot errors and this did not solve the problem we need to replace the Bootmgr file using the System Reserved partition. Follow these steps:

  1. Launch the command prompt again – Advanced options.
  2. Switch directories to System Reserved partition, run attrib-s -h -r.
  3. Run the same command in the system drive where Windows is installed.
  4. To rename the Bootmgr file as Bootmgr.old, run ren c:\\bootmgr bootmgr.old
  5. Now copy the Bootmgr.Old file to the System Reserved partition.
  6. Rename it back to bootmgr.
  7. Restart the computer.

Restore System Registry Hive

If you are getting an error stating Windows cannot load the System Registry hive to memory, we need to restore from an alternate location.

You can either use the advanced startup or Emergency Repair Disk (ERD) to copy the files from the C:\Windows\System32\config\RegBack to C:\Windows\System32\config. This will reset the registry to a time when everything was working.

Need help with your Puget Systems PC?

If something is wrong with your Puget Systems PC, we are readily accessible, and our support team comes from a wide range of technological backgrounds to better assist you!

Contact Puget Systems Support

Looking for more support guides?

If you are looking for a solution to a problem you are having with your PC, we also have a number of other support guides that may be able to assist you with other issues.

Puget Systems Online Help Guides