The Startup Repair tool was designed to fix boot-related errors automatically. But in practice, it’s mostly useless and makes your system stuck in a “Startup Repair Couldn’t Repair Your PC” or similar error loop instead of booting.
A corrupt boot sector is the usually underlying reason for this error loop. So, most people will be able to repair the boot sector using tools like bootrec or bcdboot and get their system working again. If such methods don’t help, reinstalling Windows is always a guaranteed fix.
You may be worried that being locked out, or resetting the system (and losing your data) are your only options, but that’s not the case. I’ll cover multiple fixes for this issue, as well as how you can reset your system without losing any data.
Recover Files & Reinstall Windows
By far, the most effective solution to this problem is to recover your files from the disk, wipe it, and reinstall Windows.
- To start, you can move your boot drive to another PC and access the files there. Afterward, you can reinstall the drive on your system.
- When you’re done with the recovery, you can use a bootable USB to access the Windows install wizard.
- At the partition selection screen, you’ll have two options:
- If you’ve recovered your files, you can wipe the entire drive to perform a clean install.
- Alternatively, you can install Windows on top of the current system partition. This will let you recover your user files from the
Windows.old
folder later.
- After completing the installation, your system should boot without any problems.
Repair Your Boot Sector
As boot sector repair can be pretty hit-or-miss, I prefer reinstalling the OS to fix this error. But faulty bootloaders are the most common cause of this problem, so attempting a repair is worth it nonetheless.
- Connect a Windows installation media like a bootable USB to your system and boot from it.
- Click on Repair your computer from the install wizard.
- Select Troubleshoot > Advanced Options > Command Prompt.
MBR Repair
At this point, if you’re using an old MBR-partitioned boot drive, repairing the boot sector is fairly easy. Just enter the following commands into the command prompt, then restart your PC:
bootrec /FixMBR
bootrec /FixBoot
bootrec /ScanOs
bootrec /RebuildBcd
EFI Partition Repair
But most modern systems use GPT-partitioned drives. These are designed for a different boot process, so you’ll need to repair the EFI System Partition (ESP) instead. Here’s how you can do that:
- Run the diskpart utility and list the disks:
diskpart
list disk - If multiple disks are listed, check the disk sizes or look for an asterisk to identify your boot drive with Windows installed. Select it using the disk #.
sel disk 0
- List the volumes on this disk.
list vol
- Identify the ESP. It’ll be a FAT32 volume, usually 100MB in size. It may also be tagged Boot (Label) or System (Info).
- Select this volume using the volume #.
sel vol 2
- Assign it a drive letter to mount it. I’ll use R as it’s usually an unused letter. Then, exit the volume selection.
assign letter=R:
exit - Now, go to the ESP’s Boot directory.
cd /d R:\EFI\Microsoft\Boot\
Try the commands below only if the first one gave you a “The system cannot find the path specified” error message.
cd /d R:\Boot\
cd /d R:\ESD\Windows\EFI\Microsoft\Boot\ - Backup your Boot Configuration Data (BCD) by renaming it.
ren BCD BCD.bak
- Now, recreate the BCD store by copying the BCD files from
C:\Windows
to the ESP (R:
).bcdboot C:\Windows /s R: /f ALL
- Finally, run bootrec and restart your PC.
bootrec /rebuildbcd
exit
Try WinRE’s Advanced Options
If you click on Advanced Options on the error screen, this will take you to the standard recovery environment landing page. Select Troubleshoot > Advanced Options here. There are a couple of options here that could potentially fix your problem.
Restore Registry from Backup
If you’ve got registry backups via system restore, task scheduler, or any other means, you can use the backup to revert your registry configuration. This can help in cases where the problem is due to a corrupt registry.
- Select Command Prompt.
- The WinRE command prompt will run from the recovery OS partition (
X:
) by default. Usediskpart
to identify your actual OS partition. In my case, it’s theC:
drive. Exit diskpart afterward.diskpart
list disk
sel disk 0
list volexit
- Go to the System32 folder on this partition.
cd /d C:\windows\system32\
- Create a folder named rbackup or whatever other name you prefer.
mkdir rbackup
- Copy the config folder from the current directory to the rbackup folder we just created.
copy config rbackup
- Go to the RegBack folder that’s inside config.
cd config\regback
- List the contents of RegBack with
dir
.- If the files have a 0 value, there’s no registry backup. This means this fix won’t work for you and you should skip ahead to the next one.
- If the values are non-zero, then you can copy the registry backup from RegBack to config using
copy * ..\*
. Then, you can enter y to overwrite the contents.
- If the files have a 0 value, there’s no registry backup. This means this fix won’t work for you and you should skip ahead to the next one.
Uninstall Faulty Updates
If the problem started right after installing a Windows update, uninstalling it will likely fix the issue. To do this, select Uninstall Updates. Then, uninstall the latest quality or feature update.
Use System Restore
If you’ve set up your system to create restore points, you may be able to revert the system to an older good configuration where this issue didn’t exist. To try this out,
- First, click on System Restore.
- Select the restore point to revert your system to and click on Next > Finish.
Disable Automatic Repair
You could also prevent startup repair from automatically running at boot. This can lead to a more direct error being shown (e.g., Bootmgr is missing), which may help you fix the problem. To do this,
- Click on Command Prompt.
- Enter
bcdedit
to check your current boot entries. Check the identifier for Windows Boot Loader. It’ll be something likedefault
orcurrent
. - Use this identifier to disable automatic repair.
bcdedit /set {default} recoveryenabled no
- Restart your PC and check if anything has changed.