If there is more than one boot-selection entry in the BCD, Bootmgr presents the user with the boot-selection menu (if there is only one entry, Bootmgr bypasses the menu and proceeds to launch Winload.exe). Selection entries in the BCD direct Bootmgr to the partition on which the Windows system directory (typically \Windows) of the selected installation resides. If Windows was upgraded from an older version, this partition might be the same as the system partition, or, on a clean install, it will always be the 100-MB hidden partition described earlier.
Entries in the BCD can include optional arguments that Bootmgr, Winload, and other components involved in the boot process interpret. Table 13-2 contains a list of these options and their effects for Bootmgr, Table 13-3 shows a list of BCD options for boot applications, and Table 13-4 shows BCD options for the Windows boot loader.
The Bcdedit.exe tool provides a convenient interface for setting a number of the switches. Some options that are included in the BCD are stored as command-line switches (“/DEBUG”, for example) to the registry value HKLM\SYSTEM\CurrentControlSet\Control\SystemStartOptions; otherwise, they are stored only in the BCD binary format in the BCD hive.
BCD Element
Values
Meaning
Path
Points to the Boot Configuration Database (usually \Boot\BCD) file on the disk.
Boolean
Determines whether the Boot Manager shows the boot menu or picks the default entry automatically.
Physical address
Specifies the physical address where the BitLocker key ring is located.
Boolean
Silences the output of errors encountered by the Boot Manager.
Boolean
Specifies whether or not resuming from hibernation should be attempted. This option is automatically set when Windows hibernates.
Seconds
Number of seconds that the Boot Manager should wait before choosing the default entry.
GUID
Identifier for which boot application should be used to resume the system after hibernation.
List
Definition of the Boot Manager’s display order list.
List
Definition of the Boot Manager’s tool display order list.
List
Definition of the one-time boot sequence.
GUID
The default boot entry to launch.
List
Definition of custom actions to take when a specific keyboard sequence has been entered.
GUID
Device ID of where the BCD store is located.
BCD Element
Values
Meaning
Integer
Forces physical addresses below the specified value to be avoided by the boot loader as much as possible. Sometimes required on legacy devices (such as ISA) where only memory below 16 MB is usable or visible.
Boolean
Forces usage of memory pages in the Bad Page List (see Chapter 10, for more information on the page lists).
Array of page frame numbers (PFNs)
Specifies a list of physical pages on the system that are known to be bad because of faulty RAM.
Baud rate in bps
Specifies an override for the default baud rate (19200) at which a remote kernel debugger host will connect through a serial port.
Boolean
Enables remote boot debugging for the boot loader. With this option enabled, you can use Kd.exe or Windbg.exe to connect to the boot loader.
Boolean
Used to cause Windows to enable Emergency Management Services (EMS) for boot applications, which reports boot information and accepts system management commands through a serial port.
String
If a physical PCI debugging device is used to provide FireWire or serial debugging, specifies the PCI bus, function, and device number for the device.
Channel between 0 and 62
Used in conjunction with {debugtype, 1394} to specify the IEEE 1394 channel through which kernel debugging communications will flow.
Default, DisallowMmConfig
Configures whether the system uses memory mapped I/O to access the PCI manufacturer’s configuration space or falls back to using the HAL’s I/O port access routines. Can sometimes be helpful in solving platform device problems.
Hardware address
Specifies the hardware address of the serial (COM) port used for debugging.
COM port number
Specifies an override for the default serial port (usually COM2 on systems with at least two serial ports) to which a remote kernel debugger host is connected.
Active, AutoEnable, Disable