Understanding boot process in Windows Vista


The boot system in Windows Vista Operating System (and later Windows version) is completely different from the boot of traditional Microsoft NT-core based Operating Systems. In this article we are going to explain the principal differences between these two boot systems.

Boot system characteristics of NT-core based Operating Systems (Windows 2000, XP, 2003 Server)

  • The boot sector of the primary partition (established in the formatting process) has hardcoded (data that can't be modified by users) the name of the first file that should be loaded for booting: NTLDR.
  • There are three files in C:\ that are necessary for loading: NTLDR, NTDETECT.COM and BOOT.INI
  • The BOOT.INI is a modifiable text file that contains some parameters which are the locations of the Operating Systems that are installed in our computer and some other parameters.

The boot sequence is the following:

  1. The BIOS loads the Master Boot Record (MBR) of the hard drive. It contains the followings structures: Master Partition Table and the Master Boot Code.
    Master Partition Table: This small bit of code that is referred to as a table that contains a complete description of the partitions that are contained on the hard disk.
    Master Boot Code: Is the small bit of computer code that the BIOS loads and executes to start the boot process.
  2. The Master Boot Record, when fully executed, transfers control to the boot program stored on the first sector of the active partition (Boot Sector).
  3. The boot program loads the file that the Boot Sector has hardcoded inside: in this case it loads the file NTLDR.
  4. NTLDR file is responsible, among other things, for reading the BOOT.INI file and shows us a menu to select the Operating System (in the case that we have two or more system).

If we knew the syntax of BOOT.INI file and we lost it (for example C:\ was formatted) then we could remake this file.

image1.gif

Figure 1: An example of BOOT.INI file content. Note that in this case are installed 2003 Server and XP Operating Systems in the computer.

Changes introduced by Windows Vista

The philosophy of Windows Vista changes drastically. The main changes are the followings:

  • The Boot Sector of the partition is modified. Now it contains (hardcoded) the name of the first file that has to be loaded and executed: in this case BOOTMGR.
  • BOOTMGR is a hidden file in C:\ that is necessary to load the system.
  • There is also a hidden folder in C:\, named BOOT that contain inside the BCD file (see figure 2). BCD is a binary file that can be edited only with BCDEDIT tool. This file has the same function that BOOT.INI has in the system based in NT core.

image2.gif

Figure 2: An example of the Boot folder content. Note that BCD file is located inside this folder.

The boot sequence in Vista is the following:

  1. The BIOS loads the MBR, which indicates the first active partition.
  2. The MBR loads the Boot Sector of the active partition. The Boot Sector may be created or modified by Vista installation.
  3. The Boot Sector of the partition points to BOOTMGR file so it could be loaded.
  4. The execution of BOOTMGR performs the following actions:
     
    1. If there is a hidden folder BOOT (created in the Vista installation) with a valid content, then it locates the BCD file which contains boot options of Vista.
    2. If there is more than one operating system installed on our PC (other Vista version or any other pre-Vista version of Windows). It shows us a menu (similar operation to BOOT.INI in the system based in NT core) in which we can select the desired OS.

      The boot process in this case shows the following 2 lines menu:

      -Legacy (pre-Longhorn) Microsoft Windows Operating System

      -Microsoft Windows

      If we clicked in the first line, the load process of the old Windows operating systems would start. So the classic menu (that is embedded in the BOOT.INI file) is shown.

      The second line (there one line of this style for each Windows Vista installed on our computer) allows us to start Windows Vista.

A full description of BCDEDIT command is available in the following URL: http://technet.microsoft.com/en-us/library/cc721886.aspx

image3.gif

Figure 3: An example of the use of BCDEDIT tool to manage the boot parameters in Windows Vista. Note that in this case Vista and XP are installed in the computer.

image4.gif

Figure 4: An example of the use of BCDEDIT tool to manage the boot parameters in Windows Vista. Note that the parameters inside the red rectangles could be changed.

image5.gif

Figure 5: An example of the use of BCDEDIT tool. Note that the timeout parameter has been changed to value 7.

image6.gif

Figure 6: An example of the use of BCDEDIT tool. Note that the description parameter has been changed to Microsoft Windows Vista 32 bits.

image7.gif

Figure 7: A confirmation that timeout and description parameters have been changed.