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.
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.
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.
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). |