Fixing "Bootmgr is missing" On Windows Vista+

xcrossroadsx

Distinguished
Dec 13, 2011
247
1
18,860
Ahh, the ever common "bootmgr is missing" error. Everyone knows it, and most people have seen it, but few know how to fix it correctly. In this tutorial, I will go through the steps needed to resolve this issue as well as resolutions to possible problems that could arise.

Note that this tutorial assumes that your PC has been working correctly and just started giving this error. It is not meant to solve install issues, nor is it able to fix the issue of the issue is caused by a hard drive failing.

First of all, what causes the issue? For starters, bootmgr is a file located on the root of the drive of which you are attempting to launch your OS off of. This file basically tells windows how to boot, and without it the computer can't boot correctly. To fix this, we need to replace the missing file. Doing so is actually quite simple once you know how, and all it requires is a Windows RE (repair environment). This is accessible on any retail Windows installation media. You must have the OS disk for the type of install that you have (meaning if you have Windows 7 x64 Home Premium, you would need a disk for Windows 7 x64 Home Premium). If you don't you will receive this error:
Z9lvgSc.jpg



Here are the steps we must take to replace bootmgr:

On Windows Vista/7 x86/x64:

  • ■ Boot to your Windows installation disk
    ■ Select your language
    ■ In the bottom left corner, you should see a link to "repair your computer." Select this.
    N0Okir0.jpg



    ■ The system will then search for Windows installs. It should automatically detect your installation, and select it by default.
    cySaWGk.jpg



    ■ Startup manager may automatically run. If it does, let it finish.
    ■ Once it is finished, select "command prompt"
    ikeY09V.jpg



    ■ Once we are in command prompt, we need to figure out which drive our Windows installation that needs repairing is installed on. To do this:
    ■ Enter "c:" without quotes. Then enter "dir" This will show you the folder structure of the root of the c drive. Look for a folder called Windows. If it is there, we know we have the correct drive. If not, continue to go through each letter, repeating the process until we have the drive that has our Windows install on it.
    SQHQgLf.jpg



    ■ Once we have the drive found, all we have to do is enter the command "bcdboot #:\windows" where # is our previously found drive letter. You should receive a confirmation: "boot files successfully created". After this, you are done!
    gMJBDOb.jpg

On Windows 8 x86/x64:

  • ■Boot to your Windows installation disk
    ■Select your language
    03muj8S.jpg



    ■In the bottom right corner, you should see a link to "repair your computer." Select this.
    RDrRZD4.jpg



    ■In the following screen, select Troubleshoot.
    BpLMWQZ.jpg



    ■Select Advanced options
    PT5S0z7.jpg



    ■Select command prompt

    ■Once command prompt is open, enter "diskpart" without quotes.

    ■Once diskpart is finished launching, enter "lis vol"
    You are looking for the vol which is normally labeled "System Reserved" or just "System." It is usally formatted in fat32 (NTFS is possible as well), and in info you may see a label of "System"
    Once you find that volume number, enter "sel vol #" where # is the number of the volume we found.

    ■After that, enter "assign letter s"

    ■Again, enter "lis vol" This time we are looking for the volume that has our Windows installation on it. Sometimes, this will be labeled "boot." Enter "sel vol#" where # is the number of the volume we just found.

    ■After that, enter "assign letter w" then "exit"

    ■We will be back in command prompt. At this point, we just enter "bcdboot w:\windows /s s: /f UEFI" assuming you have the system booting in UEFI mode (this is the default). if you know you have the system booting in BIOS mode, just enter "bcdboot w:\windows /s s: /f BIOS." If you are not sure, enter "bcdboot w:\windows /s s: /f all"
    qsK4l0C.jpg



    After this, you are done!

Here are common issues you may have when performing these steps:

  • ■ My windows installation or drive is not recognized:
    Assuming your hardware is fine, this is because the Windows RE you are using does not have the drivers for your storage controller. You can download these from your motherboard's manufacturer's website or your computer manufacturer's website. You will need to download what are called "f6" drivers, put them onto a flash drive, and insert it into your computer. If you are using Windows Vista/7, at the OS selection screen you will see a option to load a driver. Select this, then in the window that comes up just select the unzipped folder on your flash drive that you downloaded. On Windows 8, you will need to use the drvload command in command prompt. This is a simple command that looks like "drvload e:\f6driver\driver.sys" where e: is the drive letter of your flash drive, f6driver is the directory to the downloaded driver, and driver.sys is the driver inside of the folder. If there are multiple, you will want to run the drvload command multiple times, once for each .sys file.


    ■ bcdboot says the files weren't created successfully:
    This can be because your bcd is not setup correctly. To fix this, the easiest solution is to delete all non-essential entries in the bcd. This is done using the bcdedit command. First, enter "bcdedit /enum" to get a picture of how the bcd is setup.
    ZHzkrCc.jpg

    After this, we just need to enter "bcdedit /delete identifier /f" where identifier is the provided identifier. For example, in the above example, I'd enter "bcdedit /delete {bootmgr} /f" if I wanted to delete the first entry. Be warned, the /f stands for force, meaning that you can delete essential bcd entries. Fortunately, the process we use above restores the default bcd entries so that you can boot into the OS. However, it will not restore others, like the first entry which is used for Windows memory diagnostics.