Before you resort to doing a fresh installation over the top of a dead system, or wiping out the disk and starting over, you might want to try one other approach. This trick can sometimes get you up and running again, assuming you have enough disk spaceand some patience. The following procedure creates a back door into a broken installation so that you can remove or change offending drivers, disable some offending services, tweak the Registry, and so on in hopes of getting it back up again. If nothing else, you can do a clean installation and pull in your settings from the old installation.
The basic idea is that you do a clean installation of Windows XP into a fresh directory. Then you can use Regedt32 either to alter the Registry of the dead system or pull what you can out of it (such as user settings) into the new one so that you can trash the old installation.
Here are the basic steps:
Install Windows XP into a fresh directory (a clean installation). For example, if your Windows directory is C:\Windows, you might use C:\Windows2 for this new installation.
Boot up Windows using the newly installed system. This should occur by default.
Try to repair the old copy by deleting or replacing defective driver files in the original Windows installation directory structure.
If you suspect that a system service is crashing on bootup and that's what's crashing your computer, you can try editing the old system's Registry to disable the service. Here's how:
Run Regedt32.exe from the newly installed version of Windows XP and select the following key:
If you need help running Regedt32, see Chapter 32, "The Registry." Don't tinker with the Registry unless you know what you're doing. Improper editing of the Registry can result in a dead computer.
Click Load Hive on the File menu, and open the following Registry file on the original Windows XP installation folder
where oldwindowsfolder is the name of the folder of your original Windows installation.
Assign this hive a name such as OldSystem. This key contains the old HKEY_LOCAL_MACHINE\System data from your old setup.
Browse into the subkey CurrentControlSet if it's displayed. If it's not, look in key Select at Value Current. It will be a number such as 1, 2, or 3. Back in OldSystem, open key ControlSet00x, where x is the number you found under Current.
Browse into the Services key, and look for the likely offending service. Under each service's key is a value named Start, with one of the following values:
Services with a Start value of 1 are used to boot Windows, and you shouldn't touch them. Services with a Start value of 2 are started just about the same time as the Login dialog appears in Windows. If your Windows system boots and then promptly crashes without your help, try setting the Start value of any suspected service(s) to 3 or 4. Be sure to write down the names of the services and their original Start values before you change anything!
Starts in the first phase of bootup (these services are usually used to access file systems)
Starts automatically, just after booting
Select the OldSystem key, and select the File menu, Unload Hive.
Use Notepad to view file the C:\BOOT.INI. You should see two entries for Windows XP, one using the original directory and one using the new directory. Note the order in which they're listed.
Shut down Windows and reboot. You have to select a Windows installation from the two Windows XP entries listed. Refer to your notes made in step 7 to determine which entry is which. Select the old (original) installation to boot.
You might need to repeat this process a few times, disabling a different service or two each time. If you can manage to reboot the old system with some system services disabled, uninstall and reinstall those services to recover your installation.
This procedure is a little bit like performing brain surgery with a shovel, but it has resurrected systems for me before.