I ran into an unexpected issue with PE 4.0 recently. It seems there’s a bug specific to some part of PE 4.0 x86 that stops it from booting successfully with old versions of bootmgr. Interestingly, PE 4.0 x64 was unaffected.

I tested the following bootmgr versions against PE 4.0 x86 and x64:

BootMgr Version Operating Systems PE 4 x86 PE 4 x64
11/02/2006 - 24b0294e6866186685ba5f0e03daaf2f Vista x86 SP0
Vista x64 SP0
Fail Success
01/19/2008 - 9e24b834dc6fc0634c28004721df9d82 Vista x86 SP1
Vista x64 SP1
Server 2008 x86 R1
Server 2008 x64 R1
Fail Success
04/11/2009 - 14b9d882551ec9ffb3c51a7d94c4266c Vista x86 SP2
Vista x64 SP2
Fail Success
07/13/2009 - d6ae2d5521dd93aebc90d411d099fa36 Windows 7 x86 SP0
Windows 7 x64 SP0
Server 2008 x64 R2
Fail Success
04/11/2011 - 259525cfb422e6ac8e87bc9777b1df73 Windows 7 x86 SP1
Windows 7 x64 SP1
Fail Success
07/26/2012 - 21bf183c15afe62a8d1137bb9007b2a3 Windows 8 x86 SP0
Windows 8 x64 SP0
Server 2012 x64 R1
Success Success
08/22/2013 - 04c91d3ab4cdb766c34a8dc5372ba09e Windows 8.1 x86 SP0
Windows 8.1 x64 SP0
Server 2012 x64 R2
Success Success

The Fail cases see the machine reboot, load the entire WIM into memory (as shown by the loading bar across the bottom of the screen), but then never transition from that loading bar to some portion of initializing the kernel / loading drivers. Visibly, the loading bar remains on screen forever and the Windows 8 or vendor logo never appears. By the by, the boot.sdi file has not changed at all since Vista SP0, which rules it out from being related to the issue.

If you replace bootmgr with a copy from Windows 8 or 8.1, PE 4.0 x86 loads without issue. Replacing bootmgr should be safe to do.. The boot sector and BCD have retained static formats since being introduced in Vista, so older versions of Windows should have no issue with a newer bootmgr file being present. But hey, I didn’t predict this loading issue, so what do I know? :)

Whatever the bug was, the issue isn’t present with PE 5.0 x86 or x64. Both load fine with all of the above bootmgr versions!