Windows Recovery Environment

Anyone who has called a customer support number recently has most likely heard the recorded message "To help us improve our quality of service this call may be recorded or monitored."  When you call Microsoft Customer Support, one of the reasons that you hear such a message is that we have this really cool system […]

Anyone who has called a customer support number recently has most likely heard the recorded message "To help us improve our quality of service this call may be recorded or monitored."  When you call Microsoft Customer Support, one of the reasons that you hear such a message is that we have this really cool system that lets folks in the product group listen to support calls.  This lets us hear first-hand the issues that users are having with our products.  While I love this system, I am often humbled by what I hear.  Of all of the calls that I monitor, the one that I find most frustrating (remember, I am in listen-only mode) is the call where the customer's PC just won’t boot.  While I know I might be able to fix the PC if I had direct access to it, I know how hard it is for the user to follow a complex set of directions from even the most talented support engineer as they try to diagnose and correct the problem together.  I also know that it's even more frustrating for the customer.

I knew we had to tackle this for Windows Vista and I am very proud of the progress we made with a new feature called Windows Recovery Environment or Windows RE.  Windows RE is a combination runtime environment, diagnostic tool and repair system that basically tries to do about 80% of what one of the engineers in the Windows support team could do if they came to your home or office and hooked up a debugger up to your PC -- all without you having to do anything.

In looking at the support data, we know that the top 5 issues that cause Windows XP PCs not to boot are:  1) registry corruptions, 2) corrupt file systems (also known as NTFS metadata corruptions), 3) missing OS loader, 4) inaccessible boot devices (often caused by installing a bad storage driver) and 5) system file corruptions (some part of the OS getting deleted).  These problems could happen because of hardware memory corruptions, disk corruptions, other hardware issues, buggy device drivers, or a kernel software issue.  Regardless of how the system got into that state, the idea was to create an environment that would use heuristics to essentially implement a differential diagnosis to identify the issue and then use the resources in the other parts of the system configuration, combined with back-up data (such as system restore points) and a copy of key system image information to put the system back into an operating state -- without user intervention.

The recovery environment can be loaded in one of two ways:  either automatically, if the computer manufacturer or IT administrator created a separate partition with Windows Recovery Environment installed on it, or manually using either the Windows Vista DVD or the on-disk recovery environment.  When Windows RE is installed on the hard disk, it can be accessed by pressing the F8 key when the system is booting.

Here is how it works in the automatic scenario (with the Windows RE partition).  At startup, the Windows loader sets a flag to show that the boot process has started.  If the boot is successful, we clear the flag right before the Windows logon screen is displayed.  However, if the boot fails, the flag is never cleared so that the next time the computer tries to boot, the Windows loader see that the flag was not cleared and assumes that the boot failed, so the loader launches the Windows Recovery Environment instead of Windows Vista.  If you don't have the automatic mode, you can use the Windows Vista DVD to load the Startup Repair tool.

Once loaded, the Startup Repair starts checking for potential problems to see why the system failed to boot by grinding through the following questions:  Is the problem a missing or damaged boot configuration file?  Is the problem due to missing or damaged system files?  Is it due to a missing or damaged driver?  An incompatible driver?  An incompatible OS update?  In all of these cases, if a problem is found, the system will attempt to correct the problem either by restoring a file using a cache of files (for example, a corrupted driver file), using a system restore point, or recreating a database using other data (such as rebuilding a registry hive or the file system).  The system will also detect and report a bad hard disk or bad memory, but given that these are hardware issues, we can’t do much to fix them.

One very cool thing about the Windows Recovery Environment is that the computer manufacturer or IT administrator will be able to store a "base" configuration on the recovery partition.  That way the user will have the ability to restore their Windows Vista PC to the "factory new" state without having to reinstall the operating system.  Also, if you enable Windows Backup, you can restore the backed-up system state using Windows RE.

More detailed information on the Windows Recovery Environment and how to use it is available on the Windows RE team blog.  The important thing for most users though is to just let the recovery system do its repair job automatically.  In addition to reducing both the support costs for IT managers and the frustration that users face when their Windows PC just won't boot, one of the most important scenarios that the Windows Recovery Environment will reduce is the wipe-and-reload approach that, in my mind, is resorted to far too frequently.  Certainly without the benefit of the Windows Recovery Environment, wipe-and-reload may have been the most pragmatic solution in the past, but not with Windows Vista.  You should push back hard whenever someone tells you to wipe and reload a Windows Vista machine because it won't boot.

So next time you hear one of those recordings on the phone (and I hope you never need to), remember that we monitored the call not just for the quality of the support, but also for the quality of the product.
Continue for more info....

Vista Blog

Windows Recovery Environment