MultiBoot WinPE

It's possible to create a boot menu to enable more than one version of WinPE to be booted from the same device by using the command-line bcdedit tool - which is available in all version of Windows since the release of Windows Vista. Refer to my BCDEdit guide (here) for more detailed information about BCDEdit and usage, BCD stores, etc. Thanks also to reboot.pro forum member erwan.l for educating me on the use of delims in my batch scripts to improve on the examples in the referenced notes - enabling the scripts to be used on non-English systems.

WinPE 2.x/3.x/4.0/5.x/10.x all use the Boot Configuration Database (BCD) for boot data - this replaced the boot.ini file used in previous Windows NT versions (including Windows 2000/XP/2003). Unlike boot.ini, which used plain text entries, the BCD store is a registry hive - when opened with a text editor the contents are unreadable. Whilst there are some third party GUI tools capable of editing BCD stores, bcdedit.exe is easy to script - the batch file examples included in this section should make the process easier.

It's possible to create a WinPE multiboot USB thumbdrive or CD/DVD using an existing MistyPE build. The following example setups will hopefully give you some idea of the flexibility of this approach -

Note - it's not possible to multiboot more than one flat boot WinPE unless installing each version to a separate partition.

The following series of batch scripts can be used to create a store and add individual boot entries.


BIOS Entries

In the examples below we will create a boot menu for x86.wim (RAM boot), x64.wim (RAM boot) and a Flat Boot WinPE for use on BIOS firmware (note the paths to winload.exe. This will hopefully give you an idea of the steps involved so that you can adapt them for your own setup (changing the filenames as appropriate).

After creating the BIOS BCD store it should be copied to the \boot folder.

The first step is to create a new BCD store -

Now add an entry for bootmgr -

Add an entry for x86.wim -

Add an entry for x64.wim -

Add an entry for a Flat Boot WinPE -

Now putting this all together in one script (the text below has become wrapped - see here for an easier to read version) -


UEFI Entries

In the examples below we will create a boot menu for x86.wim (RAM boot), x64.wim (RAM boot) and a Flat Boot WinPE for use on UEFI firmware - the entries are almost identical to those used on BIOS firmware with the only difference being the path to winload.exe being changed to winload.efi.

After creating the UEFI BCD store it should be copied to the \EFI\Microsoft\boot directory.

The first step is to create a new BCD store -

Now add an entry for bootmgr -

Add an entry for x86.wim -

Add an entry for x64.wim -

Add an entry for a Flat Boot WinPE -

Now putting this all together in one script (the text below has become wrapped - see here for an easier to read version) -

Document date - 20th January 2018