Understanding the boot process in Windows can help a technician troubleshoot boot problems. Figure 1 displays the boot sequence for Windows 7.
Windows Boot Process
To begin the boot process, turn on the computer. This is called a cold boot. When the computer is powered on, it performs a Power On Self Test (POST). Because the video adapter has not yet been initialized, errors that occur at this point in the boot process are reported by a series of audible tones, called beep codes.
After POST, the BIOS locates and reads the configuration settings that are stored in the CMOS memory. The boot device priority, as shown in Figure 2, is the order in which devices are checked to locate the operating system. The boot device priority is set in the BIOS and can be arranged in any order. The BIOS boots the computer using the first drive that contains an operating system.
Hard drives, network drives, USB drives, and even removable magnetic media, such as CompactFlash or Secure Digital (SD) cards can be used in the boot order, depending on the capabilities of the motherboard. Some BIOS also have a boot device priority menu that is accessed with a special key combination while the computer is starting but before the boot sequence begins. You can use this menu to select the device to boot, which is useful if multiple drives can boot the computer.
Windows Boot Loader and Windows Boot Manager in Windows 7 and Windows Vista
When the drive storing the OS is located, the BIOS finds the Master Boot Record (MBR). At this point, Windows Boot Manager (BOOTMGR) controls several installation steps. For instance, if more than one OS is present on the disk, BOOTMGR gives the user a chance to select which one to use. If there are no other operating systems, or if the user does not make a selection before the timer expires, the following process occurs:
1. WinLoad uses the path specified in BOOTMGR to find the boot partition.
2. WinLoad loads two files that make up the core of Windows 7: NTOSKRNL.EXE and HAL.DLL.
3. WinLoad reads the Registry files, chooses a hardware profile, and loads the device drivers.
NOTE: If another OS version is on the disk that is Windows Vista or later, BOOTMGR repeats the process. If another OS version is on the disk that is Windows XP or earlier, BOOTMGR invokes the Windows XP boot loader (NTLDR).
NTLDR and the Windows Boot Menu in Windows XP
When the drive with the OS is located on a computer running Windows XP, the BIOS locates the MBR. The MBR locates the OS boot loader NTLDR. At this point, NTLDR controls several installation steps. For instance, if more than one OS is present on the disk, BOOT.INI gives the user a chance to select which one to use. If there are no other operating systems, or if the user does not make a selection before the timer expires, the following process occurs:
1. NTLDR runs NTDETECT.COM to get information about the installed hardware.
2. NTLDR uses the path specified in the BOOT.INI to find the boot partition.
3. NTLDR loads two files that make up the core of XP: NTOSKRNL.EXE and HAL.DLL.
4. NTLDR reads the Registry files, chooses a hardware profile, and loads the device drivers.
NT Kernel
At this point, the NT kernel takes over. The NT kernel is the heart of all Windows operating systems. The name of this file is NTOSKRNL.EXE. It starts the login file called WINLOGON.EXE and displays the Windows Welcome screen.