The System BCD Store

During the Windows boot process, the BCD store will be loaded and the settings contained within it will identify the boot device, boot loader, etc. Assuming a standard setup is used, the BCD store will remain open when Windows is booted - this is referred to as the System Store. By default the BCDEdit tool will use this BCD store unless another store is explicitly specified on the commandline. Whether the BCD store remains open and in use as the system store depends on a number of factors. If a standard Windows installation is used (windows was installed on a raw disk using the default settings) then the BCD Store is likely to remain open as a system store. Using a third party boot manager (e.g. Grub4dos) can cause problems.

A simply way to check for a system store is to open regedit and check for the existence of the HKEY_LOCAL_MACHINE\BCD00000000 key -

The BCDEdit Reference (White Paper - dated January 31, 2008) states that -

"...Every such system has a system BCD store that contains the data that controls the boot environment. Systems can have additional BCD stores, but only one store at a time can be designated as the system store..."

In my tests the only circumstances in which a system store was not available (I'm referring here to the BCD store not remaining open when Windows was booted) was when a third party boot manager was used to boot Windows. Using a third party boot manager does not necessarily result in there not being a system store so it's best to check. To test if a system store is being used, open a command prompt with elevated privileges and type bcdedit.exe /enum [enter] - if any entries are listed then a system store is in use. On my test system, using the Grub4dos boot manager in a multiboot setup, when a system store was not in use I received an error message. In the first screenshot a BCD store was present on the active partition of disk zero, however it was not the BCD store used to boot the operating system -

On the following screenshot there was no BCD store present on the active partition of disk zero -

There are advantages to the default behaviour of keeping the BCD store open as it might be located on a separate partition to the operating system - this is the case in Windows 7 and 8 if it was installed on a raw disk using default settings. As the system store is kept open it's possible to edit it using BCDEdit even if the partition it's on is not mounted or is hidden. The hibernation function may also depend on access to the BCD store.

The following from (BCD is Always Open section) illustrates some of the possible complications if a third party boot manager is used -

"...Because of the way the Microsoft bootmanager works the Vista operating system expects that the BCD will always be on the system partition, so during bootup the Vista OS opens the system partition BCD. When using the Microsoft bootmanager the system partition is always the active primary partition on the drive seen in the BIOS as the first boot hard drive, even if that is not the partition you are actually running Windows from. When using a third-party bootmanager the system partition is usually the partition you are booted in to, even if that is on a second or higher hard drive or a logical partition, which means that the BCD inside your booted Vista is not necessarily on the boot drive active primary. Unfortunately and rather inconveniently when Vista boots up it is not the system partition as seen by Vista itself that is chosen for the location of the BCD to open, but instead the partition that Windows considers should be the system partition, namely the boot drive active primary. If there is another BCD to be found in the correct location on the expected system partition then it will be that BCD that will be held open in the Vista you are booted into, even if the partition that this BCD is on has been hidden. If there is no BCD to be found on the supposed system partition then none at all will be opened...."