Tuesday, April 7, 2009

Vista-Boot Process

The Windows Vista" boot process differs from Windows® XP in the way
the operating system is located and initialized. Start-up begins with
the BIOS loading the Master Boot Record (MBR) on the bootable disk.
The MBR in turn loads the Partition Boot Record (PBR) on the active
partition. So far, Windows Vista remains relatively unchanged.

Windows Vista is different from XP starting by the fact the PBR code
written by Windows Vista no longer looks for Ntldr. The new boot
loader in Windows Vista is Bootmgr. This component loads the Boot
Configuration Database (BCD), which in turn loads an OS loader boot
application (Winload.exe, in the case of Windows Vista). Finally, the
OS loader application is responsible for initializing the kernel. This
process is illustrated below.

You can think of this change in two elements:

1. The two key actions performed by Ntldr in previous Windows versions
have been divided between two components:

2. Bootmgr reads the boot configuration, including device and path locations.

WindowsSystem32Winload.exe initializes the kernel.

The boot configuration stored by Boot.ini in previous Windows versions
is now stored in an extensible database, BootBCD, the Boot
Configuration Database (BCD).

These changes are significant because of the impact they have:

The boot process can be extended to support other applications, such
as other operating systems or other versions of the OS.

Only nonversion-specific components are stored in the root of the
active partition. This means that theoretically Windows Vista could be
installed on a machine running some future Windows version with the
same boot structure, and it would not break the boot process for that
future version. With legacy Windows, installing an older Windows
version last causes the newer version to fail on start-up. This is due
to version-specific code improvements in Ntldr.

Tool-oriented boot entries can be supported to offer maintenance
options on boot when a previous start-up failed. In the past, Windows
supported an menu provided by a target operating system. This new
structure can make tools available earlier during the boot process,
meaning that they are available even if all OS-specific boot entries
are damaged. The Windows Memory Diagnostic tool is provided in the
boot menu in this way.

BCD Store

The Boot Configuration Data (BCD) store contains boot configuration
parameters and controls how the operating system is started in
Microsoft Windows Vista operating system. These parameters were
previously in the Boot.ini file in BIOS-based operating systems or in
the nonvolatile RAM (NVRAM) entries in Extensible Firmware
Interface-based operating systems. You can use the Bcdedit.exe command
line tool to affect the Windows code which runs in the pre-operating
system environment by adding, deleting, editing, and appending entries
in the BCD store. Bcdedit.exe is located in the WindowsSystem32
directory of the Windows Vista partition.

The BCD is a database used by Bootmgr. It contains the functions of
Boot.ini and is located in the {ActivePartition}boot folder

Bcdedit.exe

You can use Bcdedit.exe to modify the Windows code which runs in the
pre-operating system environment by adding, deleting, editing, and
appending entries in the BCD store. Bcdedit.exe is located in the
WindowsSystem32 directory of the Windows Vista partition.

Boot.ini Compared to BCD

BCD eliminates the need for Boot.ini in Windows Vista, although
Boot.ini is still present on dual-boot systems for backwards
compatibility. Because the BCD boots to the boot environment first
instead of Ntldr, the location of Ntldr is not verified unless a
legacy operating system is chosen.

Configuration Tools

The BCD store can be modified or repaired using several tools:

System Properties in Control Panel

SystemPropertiesAdvanced.exe

Msconfig

Windows Recovery Environment (WinRE) Startup Repair

Bcdedit.exe

Bootrec.exe

Most of these tools enable you to perform simple tasks, such as
setting a boot menu timeout, setting a default operating system, or
configuring boot options such as /SOS and /SAFEBOOT. Others are
repair-oriented tools; Startup Repair and Bootrec.exe, in particular,
provide automated mechanisms for fixing problems in the BCD.

Bcdedit.exe is the main tool for detailed BCD store modifications. You
can use Bcdedit to change Bootmgr options; add boot, delete, and edit
boot entries; import and export the BCD store; and create a new store
if it becomes significantly damaged. Bcdedit.exe is located in the
WindowsSystem32 directory of the Windows Vista partition and is also
available in WinRE.

BCD Store Location

The BCD store is a registry hive, stored as BootBCD on the active
partition. This hive is loaded but hidden from view in Regedit.exe
within Windows Vista. The store is loaded to the following registry
location: HKLMBCD00000000.

You can also view the store manually in WinRE by loading the hive from
the Boot folder. To obtain a copy of the hive on a running system, use
the Bcdedit /export filename command to export a hive file for offline
examination. This command exports the BCD store to a file called
filename in the current directory.

Related Components

Msconfig

Msconfig is the preferred PSS UI tool for managing boot settings. The
tool supports BCD and allows the user to enumerate all BCD objects in
the system store. It allows certain elements to be altered for each OS
object, including debug settings, safe mode settings, and other
popular PSS options. It cannot be used with the WinRE console; Bcdedit
needs to be used in these cases.

Bcdedit.exe

Bcdedit.exe is a command line tool that can be used to manage BCD
settings. In summary, Bcdedit.exe is a replacement for Bootcfg.exe.
However, it is enhanced for better scripting and to expose some of the
more powerful features of BCD that bootcfg.exe did not expose for
manipulating Boot.ini. Bcdedit.exe is designed to work on previous
operating systems and in recovery environments.

No comments:

Post a Comment

Featured Post

Domain and blog for Sale