Windows

Troubleshooting a Boot Manager error when installing Windows 7 RTM in multi-boot mode with Windows Server 2008

Brad Bird runs into a problem with his clean install of the Windows 7 RTM. Find out how he solved an issue with the boot manager installing in multi-boot mode with Windows Server 2008.

Last weekend I took the plunge and wiped my laptop to install Windows 7 RTM. For those readers who follow my posts, you know I've been using Windows 7 since the beta release in late 2008. When the Windows 7 Release Candidate came along, I went the unconventional route and upgraded directly from beta to RC (a move not supported by Microsoft). However, this time, I decided to play it safe with a clean install of the Windows 7 RTM, and I recommended the same to you in last week's post.

Even with my better-safe-than-sorry approach, I ran into a little problem with the Windows 7 Boot Manager. Here's what happened and how I resolved the issue.

Installing in multi-boot mode

Currently, I use my laptop both to perform day-to-day tasks as well as to showcase demos to customers and run the occasional course that I am contracted to teach. I have Windows Server 2008 installed on an external eSATA drive running in multi-boot mode.

I made sure that the external drive was connected during the installation of Windows 7 RTM so that the setup wizard would detect the need to configure multi-boot mode, hoping it would configure automatically, and I would not have to intervene much in the process.

The result of this was quite interesting. The setup ran fine enough; I was off to the races with only a few programs left to install and some devices to configure after reinstalling Office 2007 and Live Services and starting to import my old data.

I did not realize a problem immediately because I first started reloading backed-up data. When I ejected the install DVD, I received the error that no boot device could be found!

Worse, even if I left the boot media in and unplugged the external drive, the system would not boot at all.

First, I tried to use the F8 key after waiting for the Boot from CD prompt to disappear. Then I selected Repair My System and Startup Repair. Windows could not find an issue. I tried the same sequence but from the install DVD this time with the same result. It is only upon dropping to a command prompt and launching BCDEDIT that I noticed what partition was being used for the boot.

To view these details, Command Prompt must be launched with Run as Administrator, as shown in Figure A. Figure A

BCEDIT reveals the problem. (Click to enlarge.)

The device that the BootMgr was calling the options from was D: which is my external eSATA drive!

To edit this value, I typed: bcdedit /set {bootmgr} device "partition=C:"

I also made sure that the C: drive contained the bootmgr file that D: was using before. This did nothing to fix the issue, which I found most interesting.

What I did next was to take a backup of the bootmgr hive by typing : bcdedit /export c:\filename

Next, I restarted the computer from the installation DVD and selected Repair System. Then I chose the option to go to Command Prompt and deleted bootmgr.efi from the internal laptop drive as well as the external eSATA drive.

Finally, I shut down the system and disconnected the external eSATA drive. I then powered on and started from the installation DVD. I selected Repair System, and when the automated process was scanning for a Windows Installation, it immediately found a startup issue and offered to repair it. I allowed it to do so and restarted the computer with no external eSATA drive connected AND no install DVD.

Success!

Now, in the boot menu, I had the choice for Windows 7 (recovered) and Windows Server 2008 (recovered).

The Windows 7 option worked OK, so I shut down and connected the external eSATA drive. When I restarted, I selected the Windows Server 2008 install and this worked fine.

The current output of BCDEDIT is shown in Figure B. Figure B

BCEDIT after troubleshooting.

To change the entries so that they no longer display as recovered, type:

Bcdedit /set {current} description "Windows 7 Ultimate"

Bcdedit /set {001ab8a8-8ac2-11de-9b93-be53b579b53c} description "Windows Server ® 2008 Enterprise"

Note: Replace {001ab8a8-8ac2-11de-9b93-be53b579b53c} with whatever id is listed for you.

Root cause?

I believe that the root cause for the issue is that when I was installing Windows 7 RTM from new, the install routine detected Server 2008 and figured that as primary, which was not the desired outcome and consequently copied the bootmgr files there and configured the computer as such.

I would be very interested in hearing any other strange problems you've encountered with installing the Windows 7 RTM.

About

Brad Bird is a lead technical consultant and MCT certified trainer based in Ottawa, ON. He works with large organizations, helping them architect, implement, configure, and customize System Center technologies, integrating them into their business pr...

14 comments
abacrotto
abacrotto

I have a question. What do I do for booting Windows and a Linux distribution, like Fedora Core with only one boot manager ? Can the new boot loader in Windows 7 support booting Linux ? Thanks a lot. Ariel.

s31064
s31064

The problem doesn't appear to me to be caused so much by dual-booting, but by how the dual-boot was accomplished. As much as I dislike dual-boot situations, I'm going to have to try it now to test my theory. Personally I don't expect a problem, because when I do have to dual-boot, I do it on a single drive. The problem was caused (best guess at this point) by the fact that Server 2008 was on an external drive, and an eSATA to boot (no pun intended).

reisen55
reisen55

Dual boot with Windows Server? Even 2003 is a dumb idea for a dual boot. Who in the hell would risk a server platform with a dual boot? Only idiots from Bangalore I guess, but not even a solid operating system such as Windows 7? This is the worst idea EVER on this board and any technician who would do this should be sent packing asap.

brad
brad

We used to run into this alot back in teh days where win95 was new and OS/2 and Linux were roughly equally popular. The short answer is I am not certain. I think that Linux does support dual boot with Windows hands down. What I might be more likely to try is installing Linux first and using (was it LiLo?, or the Linux Boot Manager) support for the boot devices is key here. I'll see if I can find something about this on the Windows 7 forums run by the Springboard Technical Expert Panel and include my findings.

BGunnells
BGunnells

I don't think the Windows 7 Boot Manager will do it, but you can configure GRUB as your bootloader for both OS'es. Quoting from john's blog (http://www.youwillgetavirus.com/archives/53): Typically, when you install a dual boot system you want to install Windows first, THEN install Linux. That's not always feasible though . . . Once you install Windows, GRUB no longer shows up and you can't boot into Linux. All is not lost! The reason this happens is because Windows inserts it's bootloader into the Master Boot Record (MBR), and set's it as the priority after POST, so instead of GRUB (or LILO, etc) loading first, the Windows bootloader does ?- and it doesn't know about (or care about) Linux. Luckily, this is ridiculously easy to fix. The first thing you need to do is find a Linux Live CD, in my case since I'm running Ubuntu 9.04 x64, I downloaded an ISO of the Install CD from Ubuntu. Burn the ISO to CD, and boot to it. Once you're booted into the Live CD, open a terminal and type the following: sudo grub This launches the GRUB prompt, and you should see "grub>" on your screen. Once you see "grub>", enter the following commands, pressing [Enter] after each command. find /boot/grub/stage1 root (hd#,#) setup (hd0) quit In the above commands, the first one will tell you the location of the stage1 file that GRUB needs to determine where all of its files are. It will return a location in the format of something like (hd0,1). Use the value that it returns in the second command. Continuing my example, that would be root (hd0,1). The second command tells GRUB that its files are on a particular partition of a particular drive (in the example it's partition 1 of drive 0). The third command tells GRUB to set itself up on hd0, and when given without a value for partition, GRUB then installs itself on the MBR. hd0 is the label grub uses for the first drive's MBR. Quit is self explanatory. :-) After you've finished that you can reboot the computer, remove the Live CD and enjoy a working GRUB bootloader. Hope that helps... -=B

brad
brad

Hey s31064, pls post confirmation of your results. I am curious what the outcome will be.

brad
brad

Hi reisen55, although this is my production machine, this is a laptop (Dell Latitude E6500) that I use daily in my consulting practice and for teaching. I also use it to showcase demos.

Beoweolf
Beoweolf

I have installed Server 2008 with Vista or XP, Server 2008R2 with Windows 7 ... in dual boot situations, mainly out of curiosity. Virtual server is a better idea, but that brings its on set of problems and issues. I would not install a dual boot configuration on a production server, but as a test or in my case, to determine what could or would happen. As a consultant, I find it better to make the same mistakes as a "potential" customer before being confronted with the problems, in a "For Pay" situation. This way, with practical expereince behind me... I am much better prepared when either offering advice or repairing the mischeivous aftermath of an overambitious DT tech playing with things above his pay grade. There were/are legitimate reasons to have these dual boot. It wasn't until lately that Microsoft provided loading Administrative tools on Vista. Being able to connect your "Clean" laptop w/ all your favorite tools and utilites to diagnose a network can save a lot of time, not to mention keep the inhouse tech staff happy (OK, not so much happy as slightly less overtly hostile).

mdelato
mdelato

Brad is braver than most. I'm glad he has the guts to try the dual boots (even with beta server software), then have it FAIL and then post all his steps. I had to chime in because the steps provided were very helpful. Anyone that rags on Brad is probably jealous they might not have the know-how to troubleshoot on their own when things didn't boot as planned. Good job Brad!

BGunnells
BGunnells

I was considering doing something similar with my presentation laptop, but now that you have put the smack down, I'll definitely be reconsidering. I used to have a presentation laptop a loooong time ago that I dual booted between NT4 Server and Win98. I never had any problems with that, but as you say, dual booting with any Windows server OS after 2000 is foolhardy. Thanks for the authoritative nilch on the idea, and especially for backing it up with sound reasoning. As I'm not from Bangalore, I suppose I'll try something else. I hear there's some OS called lunix or something that's supposed to be pretty good for this sort of thing. Oh, and when I get my next project in NY rolling, I'll be sure to call you for a bid. You seem really smart... Thanks, -=B

rob
rob

This is on his LAPTOP. The Server 2008 install isn't a production server or anything.

brad
brad

I suppose I should read ALL comments before posting a reply. bgunnells reply seems on track. :)

abacrotto
abacrotto

bgunnells: I did what you have written about. My problem is I have three OSs instead of two. Two are Windows OSs and one Linux. Then, after reinstalling GRUB with a CD I downloaded from InterNet, I have two choices in GRUB (Linux and Windows). When I select Windows I go to a second screen asking me to select Windows XP or Windows 7 RC. My question was wheather or not I can make GRUB have the three options and avoid the second screen. I hope I can make myself more clear now. I am sorry for my bad english. I live in Argentina and all I know is from reading and listening, not too much school. Thanks for taking the time to answer. Regards. Ariel.

brad
brad

In my post, I detail how to use BCDEDIT to edit what is read within BootMgr as installed by Windows 7. Could you not do the same operations with GRUB or LiLo or the Linux boot manager to load a list and select where to load from?

Editor's Picks