Hey Greg, thanks for the kind words.
Yeah, looking back I'm not even sure how it happened, but I went from being a regular on so many different forums (I think I had another account here once) to barely having time to post on our own. SIW2's awesome - in fact, all of you you guys are awesome, especially with some of the guides posted here that I've pointed people to over the years (hey, someone point me to the page where I can make a donation and become a sevenforums supporter?)
Anyway, to answer your question: I never actually knew about the "run startup repair 3 times for it to work" thing until either Terry60 or SIW2 pointed it out to me. I had previously always thought startup repair kept going until it went through its entire list. That's actually the inspiration behind EasyRE
not trying to determine whether or not your system currently boots and, if not, what part of it is broken; instead it simply configures everything correctly from scratch. (Making the desired partition active then using EasyRE has been verified to correctly set up the system with the new boot device in a single pass).
In my experience, Startup Repair has severe deficiencies when it comes to incorrectly set (or not set) active partition indicators. I've never been able to figure out exactly when SR is willing to change the active partition vs returning a cryptic message. (For example, when bcdedit/bootrec/bootsect cryptically complain about "invalid device" or "requested system device not found" or "device not accessible" it's usually because there is no active partition on the device Windows has identified as being the physical boot drive, or that partition is either corrupted or non-NTFS/FAT32).
Can you point me to a thread where EasyBCD's "Change Boot Device" didn't do the whole job? The error messages when attempting to load Windows from the "new" boot partition should be useful indicators as to what went wrong.
I just reviewed the source code, and EasyBCD should first update the partition's bootsector, mark that partition as active in the MBR of the physical disk it's on, deploy the boot files to the selected partition, and then copy over the current BCD configuration.
The two things that jump out at me: EasyBCD used to use diskpart to make the partition active, but a while back we stopped and now use our own bootgrabber.exe (ships with EasyBCD) to do so instead - perhaps that is malfunctioning (which would result in the active flag not being set on the selected partition). The other thing is that if your current BCD configuration uses non-absolute qualifiers for partitions (i.e. instead of saying "Windows Vista" is on the disk with a) UUID, or b) file it says something like "the partition you booted from" or "the partition marked as active") these could actually end up being invalid (now that a) the partition you booted from has changed, and b) there is possibly a new active partition on this disk).
EasyBCD always adds entries using partition UUIDs, EasyRE recreates entries using a binary-patched extension to the BCD file to search for a partition identifier. However, I've seen PCs ship from OEMs with relative partition identifiers used (normally, "boot") - that could explain if after using the "Change Boot Drive" feature BOOTMGR is correctly loaded from the newly-selected partition but fails to load the OS. I also suspect there is one version of Windows or one method of installing Windows that results in the use of a relative partition identifier in the BCD.
The error/boot sequence after a failed EasyBCD "change boot drive" would clarify which of these situations you've been seeing (or tell us if it's something else).
(If it's not inappropriate for me to offer: any sevenforums old-timers wanting to take EasyRE for a free spin, just send an email to easyre at neosmart dot net)
Quick Update:
It just occurred to me that an easy way to work around the latter issue would be to use
the BCD Deployment EasyBCD feature instead of "Change Boot Drive," then go to the "Add New Entries" page and
manually re-add the Windows entries you need. That way, you'll have a properly deployed BCD + hopefully correctly-configured entries to get you into Windows.