Windows Server 2012 Overview : Boot Configuration (part 4) – Managing the Boot Configuration Data store and its entries – Setting BCD entry values

4.5 Setting BCD entry values

After you create an entry, you then need to set additional entry option values as necessary. Here is the basic syntax for setting values:

bcdedit /set Identifier Option Value

Here Identifier is the identifier of the entry to be modified, Option is the option you want to set, and Value is the option value, such as:

bcdedit /set {current} device partition=d:

To delete options and their values, use the /deletevalue command with the following syntax:

bcdedit /deletevalue Identifier Option

Here Identifier is the identifier of the entry to be modified and Option is the option you want to delete, such as:

bcdedit /deletevalue {current} badmemorylist

Note

When you are working with options, Boolean values can be entered in several different ways. For true, you can use 1, ON, YES, or TRUE. For false, you can use 0, OFF, NO, or FALSE.

To view the BCD entries for all boot utilities and values for settings, type bcdedit /enum all /v at an elevated command prompt. This command enumerates all BCD entries regardless of their current state and lists them in Verbose Mode. The additional entries will look similar to those in Example 3 . Each additional entry has a specific purpose and lists values that you can set, including the following:

  • Resume From Hibernate The Resume From Hibernate entry shows the current configuration for the resume feature. The pre-operating system boot utility that controls resume is Winresume.exe, which in this example is stored in the C:\Windows\system32 folder. The hibernation data, as specified in the filepath parameter, is stored in the Hiberfil.sys file in the root folder on the osdevice (c: in this example). Because the resume feature works differently if the computer has Physical Address Extension (PAE) and debugging enabled, these options are tracked by the PAE and Debugoptionenabled parameters.
  • Windows Memory Test The Windows Memory Test entry shows the current configuration for the Windows Memory Diagnostics utility. The pre-operating system boot utility that controls memory diagnostics is Memtest.exe, which in this example is stored in the C:\Boot folder. Because the Memory Diagnostics utility is designed to detect bad memory by default, the badmemoryaccess parameter is set to yes by default. You can turn this feature off by entering bcdedit /set {memdiag} badmemoryaccess NO. With memory diagnostics, you can configure the number of passes using Passcount and configure the test mix as BASIC or EXTENDED using Testmix. Here is an example: bcdedit /set {memdiag} passcount 2.
  • Windows Legacy OS Loader The Windows Legacy OS Loader entry shows the current configuration for the loading of earlier versions of Windows. The Device parameter sets the default partition to use, such as C:, and the Path parameter sets the default path to the loader utility, such as Ntldr.
  • EMS Settings The EMS Settings entry shows the configuration used when booting with Emergency Management Services. Individual Windows Boot Loader entries control whether EMS is enabled. If EMS is provided by BIOS and you want to use the BIOS settings, you can enter bcdedit /emssettings bios. With EMS, you can set an EMS port and an EMS baud rate as well. Here is an example: bcdedit /emssettings EMSPORT:2 EMSBAUDRATE:115200. You can enable or disable EMS for a boot application by typing /bootems followed by the identity of the boot application with the desired state, such as ON or OFF.
  • Debugger Settings The Debugger Settings entry shows the configuration used when booting with the debugger turned on. Individual Windows Boot Loader entries control whether the debugger is enabled. You can view the hypervisor debug settings by entering bcdedit /dbgsettings. When debug booting is turned on, DebugType sets the type of debugger as SERIAL, 1394, or USB. With SERIAL debugging, DebugPort specifies the serial port being used as the debugger port and BaudRate specifies the baud rate to be used for debugging. With 1394 debugging, you can use Channel to set the debugging channel. With Universal Serial Bus (USB) debugging, you can use TargetName to set the USB target name to be used for debugging. With any debug type, you can use the /Noumex flag to specify that user-mode exceptions should be ignored. Here are examples of setting the debugging mode: bcdedit /dbgsettings SERIAL DEBUGPORT:1 BAUDRATE:115200, bcdedit /dbgsettings 1394 CHANNEL:23, and bcdedit /dbgsettings USB TARGETNAME:DEBUGGING.
  • Hypervisor Settings The Hypervisor Settings entry shows the configuration used when working with the Hypervisor with the debugger turned on. Individual Windows Boot Loader entries control whether the debugger is enabled. You can view the hypervisor debug settings by entering bcdedit /hypervisorsettings. When hypervisor debug booting is turned on, HypervisorDebugType sets the type of debugger, HypervisorDebugPort specifies the serial port being used as the debugger port, and HypervisorBaudRate specifies the baud rate to be used for debugging. These parameters work the same as with Debugger Settings. Here is an example: bcdedit /hypervisorsettings SERIAL DEBUGPORT:1 BAUDRATE:115200. You can also use FireWire for hypervisor debugging. When you do, you must set the debug channel, such as shown in this example: bcdedit /hypervisorsettings 1394 CHANNEL:23.
Example 3. Additional entries in the BCD data store on a single boot computer
Resume from Hibernate
---------------------
identifier              {5824ba7d-acee-11e1-ba52-cfa3fef36259}
device                  partition=C:
path                    \Windows\system32\winresume.exe
description             Windows Resume Application
locale                  en-US
inherit                 {1afa9c49-16ab-4a5c-901b-212802da9460}
recoverysequence        {5824ba7f-acee-11e1-ba52-cfa3fef36259}
recoveryenabled         Yes
allowedinmemorysettings 0x15000075
filedevice              partition=C:
filepath                \hiberfil.sys
debugoptionenabled      No

Windows Memory Tester
---------------------
identifier              {b2721d73-1db4-4c62-bf78-c548a880142d}
device                  partition=F:
path                    \boot\memtest.exe
description             Windows Memory Diagnostic
locale                  en-US
inherit                 {7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}
badmemoryaccess         Yes

EMS Settings
------------
identifier              {0ce4991b-e6b3-4b16-b23c-5e0d9250e5d9}
bootems                 Yes

Debugger Settings
-----------------
identifier              {4636856e-540f-4170-a130-a84776f4c654}
debugtype               Serial
debugport               1
baudrate                115200

RAM Defects
-----------
identifier              {5189b25c-5558-4bf2-bca4-289b11bd29e2}

Global Settings
---------------
identifier              {7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}
inherit                 {4636856e-540f-4170-a130-a84776f4c654}
                        {0ce4991b-e6b3-4b16-b23c-5e0d9250e5d9}
                        {5189b25c-5558-4bf2-bca4-289b11bd29e2}

Boot Loader Settings
--------------------
identifier              {6efb52bf-1766-41db-a6b3-0ee5eff72bd7}
inherit                 {7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}
                        {7ff607e0-4395-11db-b0de-0800200c9a66}

Hypervisor Settings
-------------------
identifier              {7ff607e0-4395-11db-b0de-0800200c9a66}
hypervisordebugtype     Serial
hypervisordebugport     1
hypervisorbaudrate      115200

Resume Loader Settings
----------------------
identifier              {1afa9c49-16ab-4a5c-901b-212802da9460}
inherit                 {7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}

Device options
--------------
identifier              {5824ba7c-acee-11e1-ba52-cfa3fef36259}
description             Windows Recovery
ramdisksdidevice        partition=C:
ramdisksdipath          \Recovery\5824ba7b-acee-11e1-ba52-cfa3fef36259\boot.sdi

Table 5 summarizes key options that apply to entries for boot applications (BOOTAPP). Because Windows Boot Manager, Windows Memory Diagnostics, Windows OS Loader, and Windows Resume Loader are boot applications, these options apply to them as well.

Table 5. Key options for boot application entries
OptionValue Description
BadMemoryAccessWhen true, allows an application to use the memory on the bad memory list. When false, applications are prevented from using memory on the bad memory list.
BadMemoryListAn integer list that defines the list of Page Frame Numbers of faulty memory in the system.
BaudRateSets an integer value that defines the baud rate for the serial debugger.
BootDebugSets a Boolean value that enables or disables the boot debugger.
BootEMSSets a Boolean value that enables or disables Emergency Management Services.
ChannelSets an integer value that defines the channel for the 1394 debugger.
DebugAddressSets an integer value that defines the address of a serial port for the debugger.
DebugPortSets an integer value that defines the serial port number for the serial debugger.
DebugStartCan be set to ACTIVE, AUTOENABLE, or DISABLE.
DebugTypeCan be set to SERIAL, 1394, or USB.
EMSBaudRateDefines the baud rate for Emergency Management Services.
EMSPortDefines the serial port number for Emergency Management Services.
GraphicsModeDisabledSets a Boolean value that enables or disables graphics mode.
GraphicsResolutionDefines the graphics resolution, such as 1024 by 768 or 800 by 600.
LocaleSets the locale of the boot application.
NoumexWhen set to TRUE, user-mode exceptions are ignored. When set to FALSE, user-mode exceptions are not ignored.
NoVESASets a Boolean value that enables or disables the use of Video Electronics Standards Association (VESA) display modes.
RelocatePhysicalSets the physical address to which an automatically selected Non-Uniform Memory Access (NUMA) node’s physical memory should be relocated.
TargetNameDefines the target name for the USB debugger as a string.
TruncateMemorySets a physical memory address at or above which all memory is disregarded.

Table 6 summarizes key options that apply to entries for Windows OS Loader (OSLOADER) applications.

Table 6. Key options for Windows OS Loader applications
OptionValue Description
AdvancedOptionsSets a Boolean value that enables or disables advanced options.
BootLogSets a Boolean value that enables or disables the boot initialization log.
BootStatusPolicySets the boot status policy. It can be DisplayAllFailures, IgnoreAllFailures, IgnoreShutdownFailures, or IgnoreBootFailures.
ClusterModeAddressingSets the maximum number of processors to include in a single Advanced Programmable Interrupt Controller (APIC) cluster.
ConfigFlagsSets processor-specific configuration flags.
DbgTransportSets the file name for a private debugger transport.
DebugSets a Boolean value that enables or disables kernel debugging.
DetectHalSets a Boolean value that enables or disables hardware abstraction layer (HAL) and kernel detection.
DriverLoadFailurePolicySets the driver load failure policy. It can be Fatal or UseErrorControl.
EmsSets a Boolean value that enables or disables kernel Emergency Management Services.
HalSets the file name for a private HAL.
HalBreakPointSets a Boolean value that enables or disables the special HAL breakpoint.
HypervisorLaunchTypeConfigures the hypervisor launch type. It can be Off or Auto.
IncreaseUserVASets an integer value that increases the amount of virtual address space that the user-mode processes can use.
KernelSets the file name for a private kernel.
LastKnownGoodSets a Boolean value that enables or disables boot to last known good configuration.
MaxProcSets a Boolean value that enables or disables the display of the maximum number of processors in the system.
MsiSets the MSI to use. It can be Default or ForceDisable.
NoCrashAutoRebootSets a Boolean value that enables or disables automatic restart on crash.
NoLowMemSets a Boolean value that enables or disables the use of low memory.
NumProcSets the number of processors to use on startup.
NxControls No Execute protection. It can be OptIn, OptOut, AlwaysOn, or AlwaysOff.
OneCPUSets a Boolean value that forces only the boot CPU to be used.
OptionsEditSets a Boolean value that enables or disables the options editor.
OSDdeviceDefines the device that contains the system root.
PaeControls PAE. It can be Default, ForceEnable, or ForceDisable.
PerfMemSets the size (in megabytes) of the buffer to allocate for performance data logging.
RemoveMemorySets an integer value that removes memory from the total available memory that the operating system can use.
RestrictAPICClusterSets the largest APIC cluster number to be used by the system.
SafeBootSets the computer to use a Safe boot mode. It can be Minimal, Network, or DsRepair.
SafeBootAlternateShellSets a Boolean value that enables or disables the use of the alternate shell when booted into Safe mode.
SosSets a Boolean value that enables or disables the display of additional boot information.
SystemRootDefines the path to the system root.
UseFirmwarePCISettingsSets a Boolean value that enables or disables the use of BIOS-configured Peripheral Component Interconnect (PCI) resources.
UsePhysicalDestinationSets a Boolean value that forces the use of the physical APIC.
VgaSets a Boolean value that forces the use of the VGA display driver.
WinPESets a Boolean value that enables or disables boot to Windows Preinstallation Environment (Windows PE).

Windows Server 2012 Overview : Boot Configuration (part 1) – Boot from hardware and firmware

Windows Server 2012 Overview : Boot Configuration (part 2) – Boot environment essentials, Managing startup and boot configuration

Windows Server 2012 Overview : Boot Configuration (part 3) – Managing the Boot Configuration Data store and its entries – Viewing BCD entries

Windows Server 2012 Overview : Boot Configuration (part 5) – Managing the Boot Configuration Data store and its entries – Changing the operating system display order