Wednesday, 9 January 2019

E2B v1.A8f/g Beta available

This Beta v1.A8f  has extra code so that typical All-In-One ISOs such as the Murphy Install ISOs will hopefully 'just work' when placed either a standard menu folder or one of the \_ISO\WINDOWS\xxxxx folders. This means you can run a 'Murphy's 24-in-One Windows Install ISO' and his scripts will run correctly.

Note: v1.A8g has a couple of bug fixes: (1) XP install using WinPE now can use WIMBOOT, (2) repair option when user hits ENTER when selecting Windows 8/10 install ISO now works, (3) .iso01 file extension fixed.

I have been experimenting with the startup files in WinPE but found there is a lot of bad, inaccurate and misleading information about the WinPE startup process on the web! I could not find a complete and accurate description or flowchart anywhere, even the Microsoft documentation was inaccurate (no surprise there then)!

I think I have now worked out how WinPE actually starts up and how the various files are used.

I have done quite a bit of testing using Windows Install ISOs...

The 'correct' WinPE startup process!

Here is my best guess after experimenting with a Win10 boot.wim image #2 (#2 is the image used for installs)...
  1. Winpeshl.exe is run (required file) - if winpeshl.ini exists the application(s) specified in X:\Windows\system32\winpeshl.ini are run.
    If the winpeshl.ini file exists but is invalid, a cmd shell will be opened and the process will stop.
  2. If winpeshl.ini does not exist then X:\Setup.exe is run, if it exists.
    X:\Setup.exe allows the user to choose a language and then choose either Repair or Install - if you choose Install it runs X:\sources\setup.exe.
    The \Sources\Setup.exe will look on all drives for a \Sources folder containing both the file "setup.exeand  a install.wim, install.swm or install.esd file in the same folder -  if not found it will prompt you to install CD\DVD drivers.
    Windows can then be installed using the \Sources\install.* files.
  3. If no winpeshl.ini file is found and no X:\Setup.exe is found then cmd /k X:\Windows\system32\startnet.cmd is run.
  4. Usually, Windows PE's boot.wim install images contain the X:\Windows\system32\Startnet.cmd file which just contains the command Wpeinit
  5. Wpeinit.exe loads network resources and coordinates with networking components like DHCP. It also loads a wpeinit unattend XML file if it can find one at X:\Unattend.xml to process settings such as firewall, network and display settings.
  6. When Wpeinit.exe completes, the Command Prompt window is displayed.
  7. The boot process of Windows PE is complete.