Several aspects of the Windows Vista startup
process have changed when compared to Windows XP. Most significantly,
NTLDR (the Windows XP component that displayed the boot menu and loaded
the Windows XP kernel) has been replaced by the Windows Boot Manager and
the Windows Boot Loader. The Boot.ini file (a file that contained
entries describing the available boot options) has been replaced by the
Boot Configuration Data (BCD) registry file. Ntdetect.com functionality
has been merged into the kernel, and Windows Vista no longer supports
hardware profiles. In fact, hardware profiles are no longer required:
Windows Vista will automatically detect different hardware
configurations without requiring administrators to explicitly configure
profiles. Finally, the command-line recovery console has been replaced
by the graphical Windows Recovery Environment, which simplify
troubleshooting.
Boot Configuration Data
The BCD registry file
replaces the Boot.ini files used in previous versions of Windows to
track operating system locations, and allows for a variety of new
Windows Vista features, including the Startup Repair tool and the
Multi-User Install shortcuts. The BCD is stored in a data file that uses
the same format as the registry, and is located on either the
Extensible Firmware Interface (EFI) system partition (for computers that
support EFI) or on the system volume. On BIOS-based operating systems,
the BCD registry file is located at \Boot\Bcd on the active partition.
On EFI-based operating systems, the BCD registry file is located in the
\EFI\Microsoft\Boot\ folder on the EFI system partition.
The BCD registry file can contain the following types of information:
Entries that describe Windows Boot Manager (\Bootmgr) settings
Entries to start the Windows Boot Loader (\Windows\System32\WinLoad.exe), which can then load Windows Vista
Entries
to start Windows Resume Application (\Windwos\System32\WinResume.exe),
which can then restore Windows Vista from hibernation
Entries to start Windows Memory Diagnostic (\Boot\MemTest.exe)
Entries to start NTLDR to load previous versions of Windows
Entries to load and execute a Volume Boot Record, which typically starts a non-Microsoft boot loader
Additionally, you can add more entries to load custom applications, such as recovery tools.
You can modify the BCD registry file in several different ways:
Startup And Recovery
With the Startup And Recovery dialog box (available on the Advanced tab
of the System Properties dialog box), you can select the default
operating system to start if you have multiple operating systems
installed on your computer. You can also change the time-out value. This
dialog box has changed very little when compared to Windows XP;
however, it now changes the BCD registry file instead of the Boot.ini
file.
System Configuration utility (Msconfig.exe)
Msconfig.exe is a troubleshooting tool that you can use to configure
startup options. The Boot tab in Windows Vista provides similar
functionality to the Boot.ini tab in Windows XP, such as starting in
safe mode, enabling a boot log, or disabling the graphical user
interface.
BCD Windows Management Instrumentation (WMI) provider
The BCD WMI provider is a management interface that you can use to
script utilities that modify BCD. This is the only programmatic
interface available for BCD; you should always use this interface rather
than attempting to directly access the BCD registry file. For more
information, see BCD Classes at http://msdn.microsoft.com/library/en-us/BCD/bcd/bcd_classes.asp.
BCDEdit.exe
BCDEdit.exe is a command-line utility that replaces Bootcfg.exe in
Windows XP. BCDEdit can be run from within Windows Vista, from within
System Recovery Tools, or even from within earlier versions of Windows
(if the BCDEdit.exe file is available). BCDEdit provides more
configuration options than the Startup And Recovery dialog box.
Non-Microsoft tools
Third-party software vendors have released tools to simplify editing
the BCD registry file. One such example is EasyBCD, available at http://neosmart.net/dl.php?id=1.
You cannot use Bootcfg.exe to modify BCD.
However, Bootcfg.exe will remain in the operating system to support
configuring older operating systems that might be installed on the same
computer.
For EFI computers, BCDEdit also replaces
NvrBoot. In previous versions of Windows, you could use NvrBoot to edit
the EFI boot manager menu items.
Physically, a BCD store is a binary file in the
registry hive format. A computer has a system BCD store that describes
all installed Windows Vista operating systems and installed Windows boot
applications. A computer can optionally have many non-system BCD
stores. Figure 1 shows an example of how the BCD hierarchy is implemented in a typical BCD store.
A BCD store normally has at least two (and optionally, many) BCD objects:
A Windows Boot Manager object
This object contains BCD elements that pertain to the Windows boot
manager, such as the entries to display in an operating system selection
menu, boot tool selection menu, and time-out for the selection menus.
The Windows boot manager object and its associated elements serve
essentially the same purpose as the [boot loader] section of a boot.ini
file. A store can optionally have multiple instances of the Windows boot
manager. However, only one of them can be represented by the Windows
boot manager’s well-known globally unique identifier (GUID). You can use
the GUID’s alias, {bootmgr}, to manipulate a store with BCDEdit. At least one and optionally several Windows Boot Loader objects
Stores contain one instance of this object for each version or
configuration of Windows Vista or Windows Server Code Name “Longhorn”
that is installed on the system. These objects contain BCD elements that
are used when loading Windows or during Windows initialization such as
no-execute (NX) page protection policy, physical-address extensions
(PAEs) policy, and kernel debugger settings. Each object and its
associated elements serve essentially the same purpose as one of the
lines in the [operating systems] section of boot.ini. When a computer is
booted into Windows Vista, the alias {current}represents the associated
boot loader object. When manipulating a store with BCDEdit, the default
boot loader object has the alias {default}. An optional Windows {ntldr} object
The {ntldr}object describes the location of Ntldr, which you can
execute to boot earlier versions of Windows. This object is required
only if the system includes versions of Windows that are earlier than
Windows Vista. It is possible to have multiple instances of objects that
describe Ntldr. However, as with the Windows boot manager, only one
instance can be represented by the {ntldr} well-known GUID alias. You
can use the GUID’s alias, {ntldr}, to manipulate a store with BCDEdit. Optional boot applications
Stores can optionally have BCD objects that perform other boot-related
operations. One example is the Windows Memory Tester, which runs memory
diagnostics.
|
System Recovery
Windows Vista replaces
the Recovery Console troubleshooting tool with the new System Recovery
tool (part of the Windows Recovery Environment). Typically, you will not
launch the tool directly, but will instead launch the tool by starting
from the Windows Vista DVD and then clicking Repair Your Computer (after
configuring the language options). This loads a specialized version of
Windows Pre-installation Environment (Windows PE), and then displays the
System Recovery tool. For step-by-step instructions on how to load the
System Recovery Tools.
The System Recovery Tools provide access to the following tools:
Startup Repair
The Startup Repair tool can solve many common startup problems
automatically. Startup Repair performs an exhaustive amount of analysis
to diagnose your startup problems, including analyzing boot sectors, the
boot manager, disk configuration, disk integrity, BCD registry file
integrity, system file integrity, registry integrity, boot logs, and
event logs. It will then attempt to solve the problem, which may involve
repairing configuration files, solving simple disk problems, replacing
missing system files, or running System Restore to return the computer
to an earlier state. Because Startup Repair performs these tasks
automatically, you can solve startup problems much faster than if you
had to manually perform the analysis and repair.
System Restore
Windows Vista automatically captures system state before installing new
applications or drivers. You can later use the System Restore tool to
return to this system if you experience problems. By making System
Restore available from the System Recovery Tools, you can use System
Restore to repair problems that prevent Windows Vista from booting.
Startup Repair can prompt you to initiate a System Restore, so you might
never need to directly access this tool.
Complete PC Restore
You use this tool to initiate a complete restore of the system hard
disk. However, because any files saved since the last backup will be
lost, you should use this only as a last resort.
Windows Memory Diagnostics Tool
The Windows Memory Diagnostics Tool performs an automated test of the
reliability of your computer’s memory.
Command Prompt
From the Command Prompt tool, you have access to many standard Windows
Vista command-line tools. Some tools will not work properly, however,
because Windows Vista is not currently running. For example, because the
Windows Recovery Environment does not include networking capabilities,
network tools will not function correctly. However, several tools in the
Windows Recovery environment are useful:
BCDEdit.exe for making changes to the BCD registry file.
Diskpart.exe for viewing and changing disk partitioning.
Format.exe for formatting partitions.
Chkdsk.exe
for finding and resolving some disk problems. Note that Chkdsk cannot
add events to the Event Log when started from System Recovery Tools.
Notepad.exe for viewing log files or editing configuration files.
Bootsect.exe
(available on the Windows Vista DVD in the \Boot\ folder) for updating
the master boot code for hard disk partitions to switch between the
Windows Vista boot manager and Ntldr, used by earlier versions of
Windows.
Bootrec.exe for manually repairing disk problems if Startup Repair cannot fix them.
Windows Boot Performance Diagnostics
Sometimes, Windows might start correctly, but
takes an unusually long time. These problems can be difficult to
troubleshoot, because there’s no straightforward way to monitor
processes while Windows is starting. To help administrators identify the
source of startup performance problems, and to automatically fix some
problems, Windows Vista includes Windows Boot Performance Diagnostics.
You can use the Group Policy settings to manage
Windows Boot Performance Diagnostics in an Active Directory environment.
In the Computer Configuration\Administrative
Templates\System\Troubleshooting and Diagnostics\Windows Boot
Performance Diagnostics node, edit the Configure Scenario Execution
Level policy. When this policy is enabled, you can choose from the
following two settings:
Detection And Troubleshooting Only
Windows Boot Performance Diagnostics will identify startup performance
problems and will add an event to the Event Log, allowing administrators
to detect the problem and manually troubleshoot it. Windows Boot
Performance Diagnostics will not attempt to fix the problem, however.
Detection, Troubleshooting, And Resolution
Windows Boot Performance Diagnostics will identify startup performance
problems and automatically take steps to attempt to alleviate the
problems.
If you disable the setting, Windows Boot
Performance Diagnostics will neither identify nor attempt to resolve
startup performance problems. For Windows Boot Performance Diagnostics
to function, the Diagnostic Policy Service must be running.
Settings for Windows Shutdown
Performance Diagnostics, which function very similarly to the Windows
Boot Performance Diagnostics, are located in the Computer
Configuration\Administrative Templates\System\Troubleshooting and
Diagnostics\Windows Shutdown Performance Diagnostics node.