So you've got a shiny new Vista install on your desktop, and you're happily installing all of your favorite programs. One of them requires a reboot, and begrudgingly you comply. On startup you get an error message reading "BOOTMGR is missing. Press Ctrl+Alt+Del to restart." That could be a problem.
As near as I've been able to figure out, Vista gets confused when installed while you have a SATA drive and an IDE drive plugged in and powered on. In my case, I had one of each, and was installing to the SATA drive. The IDE drive was already formatted as NTFS (not sure whether that matters, but it might). So when I installed Vista, it put the Windows files on the SATA drive, but somehow decided to put the boot files on the IDE drive. It worked like this for a couple of reboots, but then stopped working, giving me the mentioned error.
Vista repair to the rescue, right? Reportedly it works quite well for some things, but not this case I guess. I tried the auto repair function that specifically looks for startup problems, but it couldn't find any. There is a command line option though, so in I dove...
The idea is that some files are placed on the wrong hard drive and they need to be on the other one. It just so happened that the command line I got though the repair interface gave me C:\ as the drive that had the boot files (incorrectly), and the D:\ as the main (SATA) drive that I wanted the files on. To find out which is which in your case, just use the following commands (all quotes in this post are NOT part of the command, and the commands are NOT case sensitive):
- "c:" to switch to the C drive.
- "dir /a" to view all the files. The "/a" switch is to show the hidden ones (the files you are looking for, listed below, are hidden).
- "d:" to switch to the D drive.
- "dir /a" to view all the files there.
Basically what you are looking for is the drive that has a BOOT folder with files in it, and also a file named BOOTMGR (not in the BOOT folder). And you want to identify the drive that has the "WINDOWS" folder in it, as that is where you are going to copy those files.
As far as copying the files, just use the following commands:
- "c:" to switch to the C drive, or wherever you determined the boot files to be.
- "xcopy /h bootmgr d:" to copy the BOOTMGR file to the D drive, or whichever drive you need to copy them too. The "/h" switch makes sure that it sees hidden files.
- "robocopy c:\boot d:\boot /mir" to copy the entire BOOT folder from the C drive to the D drive, again switching the drive letters as you deem necessary. The "/mir" switch mirrors the entire directory structure, and is necessary because the BOOT folder contains some other folders with files.
That should do it, provided you just saw a bunch of files and copy commands scrolling by. Just to be sure though, you should test to make sure this problem isn't going to rear its ugly head in the future. What I'm thinking of is that maybe the files didn't get copied right and it is finding some weird way to use the files that are still on the wrong drive. So I would recommend unplugging all the cables for the non-OS drive and making sure that you are able to boot Vista completely and that everything is in order. Then you can plug that drive back in safe in the knowledge that it is not using the files on that drive and you can remove it in the future without repurcussions.
(Note: Lots of information was derived from this Lifehacker post's comments, although my circumstances were a bit different and so my instructions are modified (mainly because those instructions copy the entire drive contents over, and I had data on the second drive that wouldn't fit on the OS drive). Also, some thanks goes out to this post over at Scott Hanselman's blog.)