BCDEDIT: Should device and osdevice parameters be the boot or windows partition?

Solution 1:

Max is not completely right in his own answer (23. dec 2013) to his own question.

The answer is that both (device + path) and (osdevice + systemroot) make up a whole.

a) (device + path) is the "complete file path" to Windows loader for Vista, Windows 7/8

  • usually "c:\windows\system32\winload.exe" (or extension .efi for UEFI boot).

b) (osdevice + systemroot) is the "complete directory path" to Windows directory

  • usually "c:\windows".

There is no need for path to boot manager (bootmgr) and BCD itself as they are established programmatically during initial load and execution of MBR and PBR (master and partition boot record) for BIOS booting. Both bootmgr and \Boot\BCD are on active partition on MBR style disk.

On GPT disks (using UEFI booting) boot manager and BCD are on ESP (EFI System Partition).

It is obvious that the path to BCD inside of BCD cannot be used when loading BCD for the first time (BCD is loaded by boot manager).

You can find information about how to fix boot BCD problems here.

Solution 2:

Both device and osdevice should point to the drive the OS is installed on, not the boot files.

If you have a single OS there is usually no need to change this.

Say you have another bootable Windows on another drive and want to add it to the current boot configuration data store.

You would set both device and osdevice to the drive-letter that other Windows is currently on (internally this will not be stored as a drive letter anyways)