Installing Windows using WinNTSetup

If you wish, you can use WinNTSetup to install Windows directly from a Windows Install ISO file.
For instance, you can MBR-boot from a Windows 10 32-bit ISO and then use WinNTSetup to install Windows 7 x64 from an ISO, onto a GPT partition and install Win7 x64 in UEFI mode. This process would thus allow you to install Windows 7 onto a system that only has USB 3 ports/controllers because we boot to Windows 10 PE first which includes USB 3 drivers and so Setup can access the USB 3 ports.
New! E2B eBooks are now available (including a complete course on making a multiboot USB drive and an eBook on Installing Windows).
This method is very flexible, but does require some degree of 'expert' knowledge.
  • There is no need to UEFI-boot from the E2B USB drive
  • Works from both Removable and Fixed-disk E2B drives
  • Allows you to install XP from a USB 3.0 port and to a SATA\RAID drive (see below)
  • Supports MBR and GPT installs
  • No modification of ISOs or boot.wim required
  • No .imgPTN file required
  • No WinHelper USB Flash drive required
  • You can use SDI_CHOCO or other XML files
  • Can choose any partitioning scheme without needing to change the XML file
  • You will need to wipe and partition and format the target disk (e.g. can easily use a diskpart script from within WinNTSetup)
  • If the target system is a UEFI-only system, you will need to create and UEFI-boot to a WinPE .imgPTN file. The same .imgPTN file can be used to install any Windows Install ISO (see end of page for details)
Tip: All three 'traffic lights' should be green. The BOOT PART is red = partition is not marked active (bootable).



1.  Download WinNTSetup  v3.9.1 or a later version  (do not use an earlier version) and extract all the files to the folder on the E2B USB drive at  \_ISO\docs\E2B Utilities\WinNTSetup. This folder already exists on the E2B drive and contains additional useful files.
Tip: Use Right-click - Properties - UnBlock to remove the Windows security warning that you get when WinNTSetup is first run.

2. (optional) Download BootIce (x86 and x64 versions) for use as a partitioning tool and copy them both to the WinNTSetup folder.

3. We need to first download some additional files. Run WinNTSetup.exe under Windows from the E2B drive. Say 'Yes' to allow it to download some needed files.

Now Quit WinNTSetup.

4. Make sure your E2B drive contains the ISO that you want to install (can be anywhere on the disk) - e.g. Windows_10_x64_Home_Pro.iso

5. (optional) Add a diskpart script .txt file (some are already present in E2B). Make a text file containing the diskpart commands which you can use to wipe and partition the target hard disk. See here for some GPT examples and here for some MBR examples. Here is one I used...

\_ISO\docs\E2B Utilities\WinNTSetup\tools\diskpart\DiskPartGPT.scr
select disk 0
convert gpt
create partition primary size=300
format quick fs=ntfs label="Windows RE tools"
assign letter="T"
create partition efi size=100
rem == Note: for Advanced Format Generation One drives, change to size=260.
format quick fs=fat32 label="System"
assign letter="S"
create partition msr size=128
create partition primary
format quick fs=ntfs label="Windows"
assign letter="W"

If you have WinNTSetup v3.9.1 or later, the \WinNTSetup\tools\diskpart folder will already contain some sample diskpart scripts. 

E2B also contains some additional sample diskpart script files..

  • Disk0_bios_350MBSys_Win_15GBRecov.txt
  • Disk0_bios_singlemaxptn.txt
  • Disk0_bios_Win_15GBRecov.txt
  • Disk0_uefi_300MBWinRETools_100MBEFI_128MBMSR_Win_15GBRecov.txt (GPT)
  • Disk1_bios_350MBSys_Win_15GBRecov.txt
  • Disk1_bios_singlemaxptn.txt
  • Disk1_bios_Win_15GBRecov.txt

Note that the Disk1_xxxx files will erase the second disk (as seen by Windows) in your system. If you only have one disk in the system, the Disk1_xxxx files will erase the E2B USB drive! I use the Disk1_xxxx files when booting from an E2B USB drive under VirtualBox+VMUB. Under VBox+VMUB, Disk 0 is the USB drive and Disk 1 is the Virtual Machine Hard disk, so I must use the Disk1_xxxx files under Virtual Box.


Note: WinNTSetup v3.9.1 and later

If the file .\Tools\Diskpart\enabled=1 exists, this will enable the CTRL+SHIFT+D diskpart feature in WinNTSetup.exe when it is run.

Tip: To make it easier to find WinNTSetup later, copy the whole  \_ISO\docs\E2B Utilities\WinNTSetup folder to \WinNTSetup.

Boot to WinPE and run WinNTSetup

1. Boot to the E2B Main menu and select and MBR-boot from a Windows ISO (see below for UEFI-booting).

This can be the same ISO that you are going to install from or a different one (I suggest using the latest Win10 ISO because it is likely to contain the latest drivers). You can use any of the ISOs in the \_ISO\WINDOWS\xxx folders or just copy a Windows Install ISO to any one of the other 'standard' menu folders (e.g. \_ISO\MAINMENU). You can boot to almost any WinPE 8 or 10 ISO (e.g. ChrisR's WinPESE ISOs, DLC ISOs, Gandalf ISOs, etc.). It can be a 32-bit or 64-bit ISO.
2. When you reach the first Windows 'Setup' screen, press SHIFT+F10 to get to the command shell.
If SHIFT+F10 does not work, proceed to the next Setup screen and try it again.
Tip: Run WinNTSetup.exe and then press Use CTRL+SHIFT+D (see above) to automatically run a pre-existent diskpart script to wipe and partition the drive - make sure you select the right one or it may wipe a different drive or your E2B drive!. You can then skip step 3 below.
Note: Under WinPE, Ctrl-Shift+D may not work unless you use v3.9.1 or later.

3. At the Windows command shell, we need to wipe and partition the target hard disk.
You can run a Windows DiskPart script. e.g. where D: is the E2B USB drive...
diskpart /s d:\WinNTSetup\tools\diskpart\DiskPartGPT.scr

Or, if you prefer, you can create the partitions using diskpart by typing in the commands manually and use abbreviated commands (mostly three-letter abbreviations can be used) - .e.g. type cre instead of create :

sel dis 0
detail dis
convert gpt

cre par pri size=300for quick fs=ntfs label="Windows RE tools"
assign letter T 
cre par efi size=100 
for quick fs=fat32 label="System" 
assign letter S 
cre par msr size=128 
cre par pri
for quick fs=ntfs label="Windows" 
assign letter W 

Note: Later versions of WinNTSetup (3.9.0+) allow you to press CTRL+SHIFT+D and pick a diskpart script file.

The file .\Tools\Diskpart\enabled=1 must be present for CTRL+SHIFT+D to work. This file is already present in E2B.

You can use the 'F' buttons in WinNTSetup to format any existing volumes. Make sure that you format the System EFI partition as FAT32.

Press F1 in WinNTSetup for help.

Example manual diskpart commands for single maximum size partition:

sel dis 0
convert mbr
cre par pri
for quick fs=ntfs label="Windows"
assign letter C

Note that a 'convert mbr' or 'convert gpt' command is required to ensure that Windows does not fail during installation of boot files, due to any previously-used partitioning scheme.

If you prefer, you could run a different partitioning tool to prepare the target hard disk first, instead of using diskpart (e.g. boot from a EaseUS Partition Master ISO or use BootIce). 
4. Now run WinNTSetup (either the 32-bit WinNTSetup_x86.exe or 64-bit WinNTSetup_x64.exe version) and select your ISO file (you must use v.3.9.1 or later).
If WinNTSetup cannot find the install.wim\install.esd file, you may need to use the Search button to find the Virtual CD mounted by WinNTSetup (made after selecting the ISO file) and then select the Install.esd\Install.wim file manually from the virtual CD drive (e.g. M:\sources\install.esd).

Ensure that WinNTSetup finds the install.wim\esd\swm file (see first arrow in screenshot below).

Check that the three 'trafiic lights' are all green. If not, the partitions are not correctly formatted.
Press F1 in WinNTSetup for help.

5. Select the Boot (System) volume - in my case S:

6. Select the 'Installation' (OS) volume - in my case W:

7. (optional) Select an XML file - tick the 'Unattend' button.

In my case I selected one of the ZZDanger_xxxxxx_SDI_CHOCO.XML files. Note that if the XML file contains a drive partition section, it will be ignored, so the partitions will remain unchanged.

Notethe version of Windows that is installed is determined by the one that you select in WinNTSetup and NOT the XML file.

There are other options available in WinNTSetup, such as creating VHD files so that you can install to a VHD, and adding 'Tweaks' and your own drivers.

8. Select the Windows Edition  in WinNTSetup, e.g. Professional (N.B. The settings in the XML file will be ignored, so you must select the correct Edition).

9. Click the Setup button - you can change a few options here if you wish (not normally required) - to support both UEFI and MBR booting, make sure the ALL option is displayed. You can tick the Restart option if you wish and it will automatically reboot afterwards.

10. Click the OK button and WinNTSetup will copy the files across to your target volumes and make it bootable.

Once the copy phase has completed, reboot and make sure you configure the target system's firmware to boot in either MBR or UEFI mode, as desired.

If running an SDI_CHOCO.XML unattend file, I suggest you remove the E2B USB drive once SDI_CHOCO tells you to. Otherwise you may find that the target system will try to reboot from the E2B drive.

If you are not using SDI_CHOCO, then you can disconnect the E2B USB drive before you allow the target system to boot.


UEFI-only systems

Some systems cannot MBR-boot, they can only UEFI-boot.
You will need to create a WinPE .imgPTN file using the MPI Tool Pack v0.070 or later. This version includes \e2b\RestoreE2B_32_64.cmd which will work under 64-bit WinPE as well as 32-bit WinPE without needing WoW64. You can use any UEFI-bootable source for the WinPE - e.g. Windows 10 Install ISO (the \sources\install.wim file can be removed).
  1. When you have created the .imgPTN file, switch to it using \_ISO\SWITCH_E2B.exe (a 32-bit executable).
  2. Now UEFI-boot from the E2B USB drive on the target UEFI system.
  3. Once it has booted to WinPE, run \e2b\RestoreE2B_32_64.cmd and answer Y when prompted to switch in the E2B partitions (note: does not work in XP WinPE so try other .cmd scripts if XP PE).
  4. You can now access the \WinNTSetup folder, the Windows Install .ISO files and the .XML files that are on the E2B partition.
  5. Run WinNTSetup and proceed as outlined above.
Tip: if you prefer, you can place the \WinNTSetup folder and all the ISOs on the 2nd partition of the E2B drive and use a .imgPTN23 file extension so that the 2nd partition can be accessed.

Check that the three 'trafiic lights' are all green.
For MPI v.0.69 and earler:
For a 32-bit UEFI system, you will need to make a FAT32 .imgPTN file from any Windows 8 or 10 32-bit ISO, or use a ChrisR WinPESE 32-bit ISO or a Gandalf WinPE 32-bit ISO or any other WinPE 32-bit ISO.
For a 64-bit UEFI system, you will need to make a FAT32 .imgPTN file from a ChrisR WinPESE 64-bit ISO or a Gandalf WinPE 64-bit ISO or any other WinPE 64-bit ISO that has Wow64 (SysWow) support so that it can run 32-bit programs as well as 64-bit programs. Use \e2b\Switch_e2b.exe to restore the E2B partition.

Install XP to a SATA\RAID HDD from a USB 2.0 or 3.0 port

It is tricky, but you can install XP to a SATA\RAID hard disk and boot  from a USB 3.0 port.

This allows you to install XP to a system that has a SATA hard disk, even if it has only USB 3.0 ports.

You will need an XP ISO (e.g. XPSP3) and a Windows 8, 8.1, 10 Installation ISO (or any Win8/10 WinPE ISO)

  1. Copy the WinNTSetup_DPMS_Step2.mnu from the \_ISO\docs\Sample mnu Files\Windows folder to \_ISO\MAINMENU or \_ISO\WINPE, and then edit the XPISO entry to match your ISO in the \_ISO\WINDOWS\XP folder.
  2. Copy WinNTSetup files to the E2B drive (e.g. \_ISO\docs\E2B Utilities\WinNTSetup\ - see above).
  3. Boot using E2B to a Windows 8.1 or Windows 10 Installation ISO to run WinPE (or use any WinPE ISO)
  4. At first screen, press SHIFT+F10 and run WinNTSetup.exe (either x86 or x64 version) from the E2B USB drive - then select the Windows 2000\XP\2003 tab.
  5. Format the target HDD (e.g. using diskpart) and select correct XP ISO file from the \_ISO\WINDOWS\XP folder - select target volumes (e.g. W: and W: if one partition) and click START.
  6. Reboot back to E2B drive and run the 'Use after WinNTSetup to add SATA\RAID drivers' menu entry. It will pick the correct DPMS SATA driver for XP. In my tests, I had to press ESC 9 times to skip past the firadisk driver files not loading (not sure why this happens!).
  7. Allow to reboot from HDD to finish installation (or press F7 if it boots back to E2B).

Note: You can use CTRL+SHIFT+D to run a diskpart script in WinNTSetup, however make sure that the script file creates partitions suitable for XP.

Here is a simple diskpart script for a single, maximum-sized NTFS partition.


select disk 0
convert MBR
create partition primary
format quick fs=ntfs label="Windows"
assign letter="W"
list volume


Scripting WinNTSetup

It is possible to script WinNTSetup.exe. You could create a .cmd file which runs a diskpart script and then runs WinNTSetup.exe, e.g. where U: is the E2B drive which contains the install.wim and some drivers (untested)...

REM partition disk using a diskpart script
diskpart /s U:\Win7\Win7.scr

REM Install Windows7 Ultimate (usually Wimindex 5) to drive C:, using unattend.xml file and define driver to integrate.
REM Use C: as driveletter for the new Win installation, run set_7_usb_boot.cmd before rebooting

U:\WinNTSetup\WinNTSetup_x86.exe NT6 -source:U:\sources\install.wim -WimIndex:5 -syspart:C: -tempdrive:C: -unattend:"unattend\Win7x86_Ultimate_en.xml"-ForceUnsigned -drivers:"U:\driver_Win7x86" -Sysletter:C -RunAfter:"set_7_usb_boot.cmd C:\windows" -setup -reboot

Tip: If you use Split_WInISO.exe to create a .imgPTN file from a Win10 install ISO, it will add the winpeshl.ini files into the boot.wim for you. When you boot to WinPE using the .imgPTN file (MBR or UEFI), it will automatically run \auto.cmd. So you can edit \auto.cmd to create a menu and use it to select any one of a range of .cmd script files.