How to Fix Windows Boot Failure 0xc000000e

If your system was like mine, pressing enter, F1, or F8 didn’t do anything helpful. At least pressing Esc actually worked.

How to Fix This

You’ll need another computer, a USB stick, and patience. I find cursing Microsoft aloud helps.

  1. Create a Windows 10 bootable USB. Follow the instructions here.
  2. If you’re using UEFI (almost certainly), follow the steps below.
  3. If you’re using MBR (unlikely), follow this answer on Microsoft Community. Any computer before roughly 2009 might fall into this category.

Boot into Command Prompt

  1. Boot from the USB.
  2. Select a language, region, and keyboard layout. Click next.
  3. In the lower left select Repair your computer.
  4. Under Advanced options select Command Prompt

Assign Drive Letters

  1. Run diskpartlist volumes
  2. Assign drive letters to Boot and Windows partitions using the command assign LETTER=<letter>. Any letter is fine.
  3. Boot uses FAT32 and is usually 100MB. I’ve assigned it D:
  4. The Windows partition uses NTFS and is usually a few hundred gigabytes. I’ve assigned it C:
  5. Ignore all others.
  6. Close diskpart by typing exit

Rebuild the BCD

  1. Substitute your drive letters as shown to run this command:
    bcdboot <windows_volume>:\windows /s <boot_volume>: /f UEFI

Wait until it completes — it should take less than a minute.

If you see an error or the help output, check your drive letters are correct, check you haven’t mixed up/ with\, and ensure your didn’t spell it EUFI like I often do by mistake.

Type exit, remove the USB stick, and reboot. Windows will now boot normally 🎉

Why did this happen?

You cloned your partitions, and Windows’ BCD (boot configuration data) is very picky about which partition it boots from. Your new partition has a different UUID than your old one. Simple as that.

Windows is needlessly picky, but there’s no way to change that.

The instructions above rebuilt the BCD to point to the UUID of the new partition.

What Interesting Things Can We Do?

Using bcdboot you can install the BCD anywhere you like. You could, for example, install it on a USB stick. Now your computer will only boot when the USB stick is connected *and selected* during boot.

I know this is possible because I did it by mistake lol.

References

Leave a Reply