Make Windows boot lightning-fast

If you only have Vista installed, or have chosen Vista from the menu, then Boot Manager will transfer control to either Windows Resume when you're resuming from hibernation, or the Windows Loader if you're starting from scratch.

The most common problem here is a missing or corrupted BCD, resulting in error messages like 'Windows Boot Configuration Data file is missing'. These errors can usually be fixed by the Startup Repair tool that we discussed earlier, but you can also restore the BCD manually.

Boot from your Windows Vista DVD and work your way to the System Recovery Options dialog as previously. This time, select 'Command Prompt' rather than 'System Repair', then type 'Bootrec / RebuildBcd' and press [Enter]. Type 'Yes' to confirm your Windows installation path and look for a confirmation message telling you that all is well.

Occasionally this will fail if bootrec.exe can't find a Windows installation. You could try removing and recreating the BCD by entering the commands 'Bcdedit /export C:\BCD_Backup', 'ren c:\boot\bcd bcd.old' or 'Bootrec /rebuildbcd'.

If that doesn't work, then rebuild the file manually, see www.support.microsoft.com/kb/927391.

Boot drivers

When you're not restoring a hibernating PC, Windows uses the BIOS to collect very basic information on your PC buses, hard drives, video adaptors and so on. This is extremely limited, but there's really no alternative because Windows' own, more sophisticated tools can't be run yet. If the BIOS returns incorrect information then this can cause odd problems, but you can check its report for yourself by browsing the Registry at HKLM\Hardware\Description.

NTLDR (or 'winload.exe') then loads core files like the Windows kernel ('Windows\system32\ntoskrnl.exe') and Hardware Abstraction Layer ('Windows\system32\hal.dll').

Next to be loaded is the System section of the Registry (Windows\system32\confi g\system). Windows then reads all the drivers listed under HKLM\System\CurrentControl Set\Services, loading anything with a Start value of 0. This marks them as boot drivers that deliver such a core service that they must be loaded before anything else.

In fact, they're loaded even in Safe Mode, so buggy third-party boot drivers can stop your PC starting altogether. To view the boot drivers on your system, run 'msinfo32.exe', click 'Software Environment | System Drivers' and the 'Start Mode' column header, then scroll down, looking for everything with a Start Mode of 'boot'.

Everything loaded is checked against a security catalogue that holds the digital signatures for the original files ('Windows\System32\catroot\{F750E6C3-38EE- 11D1-85E5-00C04FC295EE}\nt5.cat'). That's good for security, but a problem if the catalogue becomes corrupted, as the boot stops if the signatures don't match. NTLDR/winload.exe's final task is to launch the Windows kernel. This really gets things moving by initialising your processors, then its memory manager, Plug and Play manager, process manager and just about every other core service it provides.

There should also be a visual indicator of progress about now, as the kernel loads the boot video driver. This isn't your actual video driver: it's just a generic Windows file that knows just enough to display simple images and progress information.

The kernel carries on initialising various low-level structures until it reaches one of the most important stages so far: the I/O Manager starts up Plug and Play (PnP) and begins the process of loading your remaining device drivers.

Boot problems here are often caused by corrupt or missing Registry files, resulting in a message complaining that the '\windows\system32\confi g\system' file is 'Missing or corrupt'. If you're using Vista, you should be able to fix this by using System Restore or booting from the Last Known Good Configuration (press [F8] when you boot, select 'Advanced Boot Options'), but XP users may find they're stuck with just the Recovery Console. Fortunately, Microsoft detail a procedure that lets you recover a Registry backup copy from the command line (see www.support.microsoft.com/kb/307545).