Thursday, 29 June 2017

Installing 32-bit and 64-bit Windows ISOs with E2B

A user had Windows 10 32-bit and 64-bit ISO files in his \_ISO\WINDOWS\WIN10 folder.

We can make a .txt file for each .ISO file so that if the system CPU that we are booting from is a 32-bit CPU then only the 32-bit ISO will be listed in the Windows 10 menu. If the CPU is a 64-bit CPU then we can show only the 64-bit ISO file in the menu.

See here for details.

However, this user wanted to only show the 32-bit ISO if the system has <4GB of memory and only show the 64-bit ISO if the system has more than 4GB of memory.

The way around this was to create a new variable (GB4) in our \_ISO\MyE2B.cfg file:

# set 4GB variable if 4GB+ of memory present
set /a M=*0x8298 & 0xffffffff>>10+1 > nul ;; set /a M1=*0x82c0>>10+1 > nul ;; set /a M=%M% + %M1% > nul ;; if %M%>=4096 set GB4=1 ;; set M= ;; set M1=

We can now test for the existence of the variable GB4 in our .txt file:

Example:
We have a Windows10_x86.iso and a Windows10_x64.iso:
\_ISO\WINDOWS\WIN10\Windows10_x86.iso
\_ISO\WINDOWS\WIN10\Windows10_x64.iso

If a system has more than 4GB of memory, only show the 64-bit Windows ISO (it must have a 64-bit CPU if it detects >4GB). If it has less than 4GB we only show 32-bit Windows ISO.
 
Windows10_x64.txt
iftitle [if exist GB4] Win10 1703 x64\n Install 64-bit Windows 10

Windows10_x86.txt
iftitle [if not exist GB4] Win10 1703 x86\n Install 32-bit Windows 10

Note: There is a bug in E2B which causes a 'no title keyword found in xxxx.txt file' error when the Windows menu loads. This can be fixed by saving the .txt file as ANSI encoded instead of UTF-8 encoded - OR update your E2B drive with E2B v1.94a (beta) which has a bugfix for this.