TOOL: Windows Setup AIO Builder for 7-10 with install.wim / install.esd

George King

Member
Windows Setup AIO Builder for 7-10 with install.wim / install.esd


I decided to write CMD script that can build 32-bit + 64-bit ISO with all important things workable
Windows recovery option 32bit + 64bit
Clean setup
Upgrade
Autounattend
Universal $OEM$ folder
This method is universal and work for all languages. I tested it with Windows 7/8.1/10 (1507-2004).

Trick is in HEX editing files to keep this solution alive - autorun.dll, setup32.exe, setup64.exe, bootfix.bin and adding new files setup.cmd, skiprecovery.xml and autounattend.xml

You can also build true Windows 7 with install.esd support with this tool!


How to build your own AIO ISO

1) Download and extract this tool
2) Run BuildAIO.cmd /? from cmd to see help
2.PNG

3) Build your own Windows 7/8.1/10 with install.esd
Example to get Windows 7 SP1 en-US AIO with Windows 10 2004 Setup Engine​

BuildAIO.cmd "D:\Win7\x86" "D:\Win7\x64" "Windows Setup" "Windows Memory Diagnostic" ESD "D:\Win10\x86" "D:\Win10\x64"

3.png
Result is 2,9 GB ISO with 9 different editions with single install.esd
1.PNG


When booting you can easily select setup architecture (on 32bit CPU use x86)​

4.PNG

Run Installation or Windows Recovery mode if you need - disabled by default using skiprecovery.xml
Delete or rename this file in your ISO to get Repair your computer option.
Button Install now run setup.cmd to launch original setup.exe with custom install.wim / install.esd and $OEM$ folder location
8.PNG
9.PNG


Simply select edition which you want to install and format HDD
5.PNG
6.PNG
7.PNG


How does this method work?

setup32.exe is patched to run autorun.dll in sourc32
setup64.exe is patched to run autorun.dll in sourc64

autorun.dll inside boot.wim\2\sources is patched to look for skiprecover.xml instead of autounattend.xml and run setup.cmd, so we can call original setup.exe with custom install.wim / install.esd and $OEM$ location for both platforms. Autounattend.xml is automaticaly used, if present.

autorun.dll inside sourc32 / sourc64 is patched to look for setup.cmd instead od setup.exe

bootfix.bin
modified boot message "Press any key to boot from CD or DVD" to "Press any key to boot from DVD or USB" to get modern look


Windows 7 with install.esd looks like original Windows 7 setup! All needed resources are rewriten with orginal one from .RES patches

Important notes:
1) ESD support in Windows 7 is created by grabbing sources folder from Windows 10 boot.wim so boot image is still Windows 7!
2) Autounattend works without problem
3) skiprecover.xml - skip Recovery mode
4) autounattend.xml - Accept Eula + Skip product key
5) Don't integrate updates into boot.wim after using this tool, updates should rewrite patched files. Use this tool after your NTLite sessions!
6) In x64 images Name / DisplayName / Desription / DisplayDescription attributes is added space " " to keep wimlib compress install.esd
7) bootfix.bin patching suppot now these languages: en-US, cs-CZ
If you would like to provide new boot messages support, you need to edit bootfix.bin with HEX Editor like HxD. For example you need to provide old (\x43\x44\x20\x6F\x72\x20\x44\x56\x44\x2E/) and new (\x44\x56\x44\x20\x6F\x72\x20\x55\x53\x42/) patch. For more look into this code

Code:
if "%SLLP%" == "en-US" (
    "%~dp0apps\bbe\%ARCH%\bbe.exe" -e "s/\x43\x44\x20\x6F\x72\x20\x44\x56\x44\x2E/\x44\x56\x44\x20\x6F\x72\x20\x55\x53\x42/" "%~dp0_output\boot\bootfix.bin" -o "%~dp0_output\boot\bootfix2.bin"
    del "%~dp0_output\boot\bootfix.bin"
    ren "%~dp0_output\boot\bootfix2.bin" "bootfix.bin"
)
Needed tools that are included in this pack, without them we cant build it! All credits go to application creators

WimLib - https://wimlib.net
Binary Block Editor - http://bbe-.sourceforge.net/bbe.html
Resource Hacker -
http://www.angusj.com/resourcehacker
PEChecksum - https://www.exedb.com/company/n7Epsilon
OSCDIMG - https://www.microsoft.com



Release history
Code:
31.07.2020 - v1.0.1 - improved process for using tool as double-click on BuildAIO.cmd
31.07.2020 - v1.0 - first public version
 
Last edited:
Top