I hit the Reset button. The system started to reboot. As per usual when I use the Reset button, the RAID array was incensed that I had interrupted its normal operation and took its revenge by taking four hours to validate the mirror. 89% of the way through validating the mirror, I received my first Vista Blue Screen of Death (BSOD). Something about a power driver not handling an event.
No problem. I hit the Reset button again. What's another four hours between friends?
Except this time, the system didn't reboot. It went through the BIOS check, started to boot Vista, and presented me with this error:
File: \Boot\BCD
Status: 0xc0000034
Info: The Windows Boot Configuration Data file is missing required information
The Microsoft Knowledgebase has a helpful article on this subject, which should have worked, but didn't. The error messages during the failed repair didn't clarify the cause of the problem.
I tried booting Vista from DVD and running recovery. Rebuilding the BCD file is a standard operation, except that it didn't work. The Recovery Manager said that it couldn't save the file. Curiouser and curiouser.
I restored the BCD file from backup (Acronis True Image pays for itself... again.)
I rebooted the system and got the exact same error. I went back in with the Recovery Manager and discovered that the file \Boot\BCD was gone, even though I had just restored it.
The final solution was to use Acronis to restore track zero and the Master Boot Record (MBR) from my last image backup. There never was a problem with the BCD file, that was just a red herring. I'm not sure how you'd solve this problem if you didn't have an image backup. It just goes to show the usefulness of image-level backups.
Update (11-15-2007): I discovered that the Vista repair utility created a file named C:\Temp\SrtTrail.txt. This file contained the list of tests that were performed. The last test showed this:
Root cause found:
---------------------------
No OS files found on disk.
Repair action: Partition table repair
Result: Failed. Error code = 0x3bc3
Time taken = 154722 ms
If I'd seen this file earlier, I would have had a clear indicator to repair track zero instead of stumbling on the solution accidentally.