0xc00000e9 (“An unexpected I/O error has occurred”) means Windows Boot Manager asked the disk for a file — usually \Boot\BCD or winload.efi — and the read failed. That is a hardware-level read failure far more often than a software fault. First unplug every USB drive, external disk, and SD card and reboot. If it persists, power off, reseat the drive's SATA cable (or the NVMe drive), and confirm the drive shows up in BIOS. Only then run repairs from Windows Recovery (WinRE), starting with a disk check:
chkdsk C: /f /r
If chkdsk reports bad sectors or can't finish, the drive is failing. Stop, image it, and replace it — no command fixes a dying disk.
winload.efi, or winload.exe was damaged by an unclean shutdown, a failed update, or the bad sectors above.Power off. Disconnect every USB flash drive, external hard drive, SD card, phone, and printer. Leave only keyboard, mouse, and display. Power on. If Windows boots, plug devices back in one at a time to find the one that caused it; a USB drive that repeatedly trips the error is failing and should be backed up and retired.
On a desktop, power off, unplug from the wall, and reseat both ends of the SATA data cable and the power connector. Try a different SATA port and a different cable if you have one. On laptops and M.2 systems, reseat the drive if you can reach it. Then enter BIOS/UEFI setup (usually Del, F2, or F10 at power-on) and confirm three things: the drive is listed, it is first in the boot order, and the boot mode (UEFI vs Legacy/CSM) matches how Windows was installed. If the drive is not detected at all, the drive or cable is the fault and the software steps below cannot help.
Force three failed boots (power on, then hold the power button as the Windows logo appears, three times) to open Automatic Repair, or boot from a Windows 10/11 install USB and choose Repair your computer. Because this error hits before Windows loads, the on-disk recovery environment often can't start either — the install USB is the reliable route. Then go to Troubleshoot → Advanced options.
Choose Startup Repair and let it finish. It rebuilds many damaged boot stores automatically and touches nothing else. Reboot and test before running any commands.
In Advanced options → Command Prompt, find the Windows volume first — drive letters inside WinRE often differ from normal Windows. Run dir C:\Windows, then dir D:\Windows, until you find it. Then check that volume:
chkdsk C: /f /r
/f fixes file-system errors and /r locates bad sectors and recovers readable data. It can take hours on a large hard drive. If it finds bad sectors, freezes, or reports that it cannot continue, treat the drive as failing: it may boot after this once, but it will not stay fixed. Image the drive and plan a replacement.
If the disk checks clean, rebuild the boot data. On a legacy BIOS/MBR system, run:
bootrec /scanos
bootrec /rebuildbcd
bootrec /fixmbr
bootrec /fixboot
When /rebuildbcd lists a Windows installation, type Y to add it. Reboot and test.
UEFI/GPT note: on modern UEFI systems bootrec /fixboot commonly returns “Access is denied”. That is expected there, not a permissions problem to defeat. Instead, give the EFI System Partition a letter and rewrite the boot files with bcdboot:
diskpart
list disk
sel disk 0
list vol
sel vol <EFI-FAT32-vol#>
assign letter=S:
exit
bcdboot C:\Windows /s S: /f UEFI
The EFI partition is the small (about 100–500 MB) FAT32 volume. Replace C:\Windows with the letter you found in Step 5. You should see “Boot files successfully created.” The full partition-identification walkthrough is on the 0xc000000e page.
When the error names \Windows\system32\winload.efi (or winload.exe) rather than \Boot\BCD, the boot store may be fine and the loader file itself is damaged. Run the offline System File Checker against the Windows volume, using the WinRE drive letter:
sfc /scannow /offbootdir=C:\ /offwindir=C:\Windows
Reboot and test. Running bcdboot in Step 6 also writes fresh copies of the boot files on a UEFI system, so do both if one alone doesn't clear it.
Then the problem is the media or the machine, not the Windows install on the disk. Recreate the USB with Microsoft's Media Creation Tool on a different stick, plug it into a rear USB 2.0 or 3.0 port directly on the motherboard, and pick the entry labeled UEFI: USB (not the plain BIOS entry) in the one-time boot menu. Reset BIOS to defaults. If several known-good sticks all fail the same way, test the RAM with a bootable memory tester and suspect the motherboard or its USB controller.
chkdsk /r reads every sector and can push a weak drive from “intermittent” to “dead” — on a drive that clicks, grinds, or drops out of BIOS, do not run it at all; pull the drive, image it from a working PC with an enclosure, and recover from the image. diskpart can destroy a partition with one wrong volume number, so never run clean or format for this error. Never run repairs on the only copy of irreplaceable data.
Usually, yes. WinRE lives on the broken PC itself — three failed boots trigger Automatic Repair, where Startup Repair and Command Prompt are available. If the boot files are too damaged for WinRE to load, boot a Windows install USB (made on any PC, even a borrowed one) and choose Repair your computer. The one case that truly needs a second machine is a drive that is physically failing: then you want to pull it and image it from a healthy PC before it gets worse. (GRAM runs inside Windows rather than from boot media — use it once the machine boots to verify disk health and confirm the root cause.)
More often hardware. The code is a boot-time read failure, and the two things that make reads fail are a bad connection and a bad drive. Software corruption of the BCD or winload does happen, but it is usually a symptom of the same unclean shutdown or bad sectors. That's why this page puts cable checks, BIOS detection, and chkdsk ahead of bootrec. If the error keeps returning after a rebuild, stop repairing and replace the drive or cable.
No. bootrec and bcdboot rewrite only boot configuration, not documents. chkdsk /f /r repairs the file system and can move damaged fragments into FOUND.000 folders, but it does not wipe the drive. The real risk is running /r on a drive that is already dying — the sector-by-sector read can finish it off. If the data is irreplaceable, image the drive first.
Same status code, different missing piece. When the screen names \Windows\system32\winload.efi, Boot Manager read the BCD but couldn't read the loader it points to. Run Startup Repair, then the offline sfc command in Step 7, and on a UEFI machine run bcdboot from Step 6 to refresh the EFI boot files. If it names winload.efi while booting an install USB, see Step 8 — the media or the boot mode is wrong.
Related: A disk read error occurred · 0xc000000f boot error · All Windows boot error codes