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
Option Value Description
BadMemoryAccess When 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.
BadMemoryList An integer list that defines the list of Page Frame Numbers of faulty memory in the system.
BaudRate Sets an integer value that defines the baud rate for the serial debugger.
BootDebug Sets a Boolean value that enables or disables the boot debugger.
BootEMS Sets a Boolean value that enables or disables Emergency Management Services.
Channel Sets an integer value that defines the channel for the 1394 debugger.
DebugAddress Sets an integer value that defines the address of a serial port for the debugger.
DebugPort Sets an integer value that defines the serial port number for the serial debugger.
DebugStart Can be set to ACTIVE, AUTOENABLE, or DISABLE.
DebugType Can be set to SERIAL, 1394, or USB.
EMSBaudRate Defines the baud rate for Emergency Management Services.
EMSPort Defines the serial port number for Emergency Management Services.
GraphicsModeDisabled Sets a Boolean value that enables or disables graphics mode.
GraphicsResolution Defines the graphics resolution, such as 1024 by 768 or 800 by 600.
Locale Sets the locale of the boot application.
Noumex When set to TRUE, user-mode exceptions are ignored. When set to FALSE, user-mode exceptions are not ignored.
NoVESA Sets a Boolean value that enables or disables the use of Video Electronics Standards Association (VESA) display modes.
RelocatePhysical Sets the physical address to which an automatically selected Non-Uniform Memory Access (NUMA) node’s physical memory should be relocated.
TargetName Defines the target name for the USB debugger as a string.
TruncateMemory Sets 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
Option Value Description
AdvancedOptions Sets a Boolean value that enables or disables advanced options.
BootLog Sets a Boolean value that enables or disables the boot initialization log.
BootStatusPolicy Sets the boot status policy. It can be DisplayAllFailures, IgnoreAllFailures, IgnoreShutdownFailures, or IgnoreBootFailures.
ClusterModeAddressing Sets the maximum number of processors to include in a single Advanced Programmable Interrupt Controller (APIC) cluster.
ConfigFlags Sets processor-specific configuration flags.
DbgTransport Sets the file name for a private debugger transport.
Debug Sets a Boolean value that enables or disables kernel debugging.
DetectHal Sets a Boolean value that enables or disables hardware abstraction layer (HAL) and kernel detection.
DriverLoadFailurePolicy Sets the driver load failure policy. It can be Fatal or UseErrorControl.
Ems Sets a Boolean value that enables or disables kernel Emergency Management Services.
Hal Sets the file name for a private HAL.
HalBreakPoint Sets a Boolean value that enables or disables the special HAL breakpoint.
HypervisorLaunchType Configures the hypervisor launch type. It can be Off or Auto.
IncreaseUserVA Sets an integer value that increases the amount of virtual address space that the user-mode processes can use.
Kernel Sets the file name for a private kernel.
LastKnownGood Sets a Boolean value that enables or disables boot to last known good configuration.
MaxProc Sets a Boolean value that enables or disables the display of the maximum number of processors in the system.
Msi Sets the MSI to use. It can be Default or ForceDisable.
NoCrashAutoReboot Sets a Boolean value that enables or disables automatic restart on crash.
NoLowMem Sets a Boolean value that enables or disables the use of low memory.
NumProc Sets the number of processors to use on startup.
Nx Controls No Execute protection. It can be OptIn, OptOut, AlwaysOn, or AlwaysOff.
OneCPU Sets a Boolean value that forces only the boot CPU to be used.
OptionsEdit Sets a Boolean value that enables or disables the options editor.
OSDdevice Defines the device that contains the system root.
Pae Controls PAE. It can be Default, ForceEnable, or ForceDisable.
PerfMem Sets the size (in megabytes) of the buffer to allocate for performance data logging.
RemoveMemory Sets an integer value that removes memory from the total available memory that the operating system can use.
RestrictAPICCluster Sets the largest APIC cluster number to be used by the system.
SafeBoot Sets the computer to use a Safe boot mode. It can be Minimal, Network, or DsRepair.
SafeBootAlternateShell Sets a Boolean value that enables or disables the use of the alternate shell when booted into Safe mode.
Sos Sets a Boolean value that enables or disables the display of additional boot information.
SystemRoot Defines the path to the system root.
UseFirmwarePCISettings Sets a Boolean value that enables or disables the use of BIOS-configured Peripheral Component Interconnect (PCI) resources.
UsePhysicalDestination Sets a Boolean value that forces the use of the physical APIC.
Vga Sets a Boolean value that forces the use of the VGA display driver.
WinPE Sets 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