Microsoft has completely reengineered the boot environment for Windows Vista to address the increasing complexity and diversity of modern hardware and firmware. One aspect of this reengineering is a new firmware-independent data store that contains boot configuration data (BCD). The BCD store defines how the boot menu is configured. The store is a namespace container for BCD objects and elements that hold the information that is required to load Windows or run other boot applications. Physically, a BCD store is a binary file in the registry hive format. The file has the same file name as its corresponding .wim file. These BCD stores exist in the folder that contains the boot image (for example, RemoteInstall\Boot\<arch>\Images\boot.wim and RemoteInstall\Boot\<arch>\Images\boot.wim.bcd). For more information about BCDs, see http://go.microsoft.com/fwlink/?LinkID=110353.
In This Topic
How Windows Deployment Services Determines the BCD Store
The netbootMachineFilePath attribute specified on a computer object in AD DS can contain either a redirection to a different server (for a Pre-Boot Execution Environment (PXE) referral) or the path and name of a network boot program (NBP) that the client should receive. You can change the netbootMachineFilePath by using the management tools. For more information, see How to Manage Client Computers (http://go.microsoft.com/fwlink/?LinkID=115265). The following logic is used for determining which BCD store file the client should receive:
- If the netbootMachineFilePath
attribute is specified, the Name Binding Protocol will look for a
BCD store in the same path as the NBP that
netbootMachineFilePath points to. If one exists, it will be
used. For example, if netbootMachineFilePath points to
\RemoteInstall\Boot\x86\test\pxeboot.com and there is a BCD store
in that folder, it will be used. This enables you to specify a BCD
store for each computer. To do this, first create a folder on the
server as a subfolder of the RemoteInstall folder; then copy the
custom BCD and NBP (for example, pxeboot.com). Finally, prestage
the device and set netbootMachineFilePath to point to the
custom folder on the server that was created for that device.
- If no BCD store exists in the same folder as
the NBP (that netbootMachineFilePath pointed to), Windows
Deployment Services will send the architecture-specific BCD store
in the \Tmp folder.
How the BCD Store Is Created
The Windows Deployment Services PXE Provider (BINLSVC) creates a BCD store for each image. This process happens automatically when the Windows Deployment Services server is started and BINLSVC is initialized. BINLSVC enumerates each .wim file within the appropriate \Boot\<arch>\Images folder, and it looks for images that are marked as bootable from RAMDISK. When it finds an image, the server creates a BCD store that contains an operating system entry for the image, as long as the following are true:
- A corresponding BCD store for the image does
not already exist.
- The time stamp of the .wim file is newer than
the matching BCD store. This would be the case if the image
metadata was updated (that is, if you renamed the image and
expected the new name to be reflected in the boot menu
If you add or modify a boot image while the service is running, the server must be signaled that a change has occurred before it will begin the BCD creation and update process. If you use the Windows Deployment Services management tools to make changes, the changes will be picked up. But if you manually copy a file, the changes will not be automatically picked up.
The next step in the BCD generation process is to create the BCD store that a client computer will download. To produce a BCD store that contains the required information, the information stored in Default.bcd is concatenated with the information stored in the per-image BCD stores. The following sequence of steps outlines this process.
- BINLSVC receives a signal to begin creating a BCD store. This
causes the regeneration of all BCD stores for all
- The Default.bcd file is copied from the
RemoteInstall\Boot\<arch> folder to the \RemoteInstall\Tmp
- The boot loader options for each boot image BCD store are
obtained from the per-image BCD stores (located in the
\Boot\<arch>\Images folder) and then inserted into the new
BCD store in the \Tmp folder.
- One boot image is marked as the default. The first alphabetic
image will be the default image (unless you overwrite it). You can
overwrite the default image by using the Boot tab of the
server's properties in the MMC snap-in.