43 - Install Windows 8, Server 2012, Win 7, 2K8 & Vista from multiple ISO files on the same Flash drive

tumblr analytics

New! To make a USB Flash drive to install Windows 7 and XP just by adding two iso files see the Easy2Boot Tutorial:

PLEASE TRY THIS! Easy2Boot - Easy2Boot allows you to add ALL and ANY .iso, .img, .ima, .gz files , all Linux LiveCD ISOs and Windows Install ISOs (XP through to Server 2012) to your USB drive and boot from any of them. Automatic menu system. Just copy over your files and boot - no special utility required, no linux cheat codes, no special knowledge. Fully documented. You can change the wallpaper, menu, change the language, text colours, etc. to suit you.
Comments from users on forums about Easy2Boot:
nyquist - 'Easy2boot is awesome. Thanks for sharing this software with us.'
Rootman - 'This is one of the coolest things I've run across in a long time. You guys have GOT to check this out.'
maanu - please accept my congratulations on coding this beautiful tool.. my 1st experience was GREAT. it worked flawlessly on very 1st try (win8 64-bit install)
Jkplayschess - This is a fantastic tool! I rarely get excited about things, but I'm following the development of this closely!
sebus - The solution works VERY well indeed. Tested on W7 x64 so far
Weedy - I gotta say I'm annoyed that this tool seems to work exactly as advertised! This tool is a fantastic piece of software.


Please Note: As Windows 8/SVR2012 already contains most USB 3.0 drivers, Win8/SVR2012 ISOs will work even if the boot device is connected to a USB 3.0 port! Earlier OS's won't work on most USB 3.0 ports unless you first add the correct USB 3.0 drivers into the ISO file yourself.

ATTENTION: This Tutorial is now outdated - Windows 10 TH2 not supported (requires new ImDisk version)!
Please use Easy2Boot for Windows Install ISOs - it is much easier and better!


Introduction

This method describes how you can place all your Windows Vista 32-bit/64-bit ISOs, Windows 7 32-bit/64-bit ISOs, Server 2K8 R2 ISOs, Win8 ISOs, etc. all on one (large) USB Flash drive and install any version of Windows onto any system whenever you like.

Windows 8 Note: for Windows 8, the xml file needs to contain the Product Key - see http://reboot.pro/14593/page__view__findpost__p__142622 for details (post #47 and #49).
Some temporary product keys (which will be accepted but won't activate) are detailed by Microsoft here.

This is a slightly neater alternative to tutorial #32 and uses FiraDisk.

Most of this is directly 'pinched' from a post by Karyonix (thanks!) on reboot.pro (this post) but I have added the AutoUnattend.xml file so that the process is completely automated if using a USB Flash drive.

All of the ISO files must be kept in one single folder (called \ISO in this example, but you can change it) and if you want the user choice menu to work, then the ISO folder must also contain a marker file called 'Choose_an_iso'. Note that the ISO folder that contains the ISO files and the special tag/marker file Choose_an_Iso can be on any drive (e.g. a hard disk or a USB hard disk). You can change the name of the folder or marker file if you like, as long as you also change the path and name in the menu or you can just use one of your iso files as the marker file and delete the 'Choose_an_iso' file so it is not listed when the iso files are listed on the screen.

Please note: Some new USB Flash drives are not the usual 'Removable' type but appear as 'Fixed Disk' in RMPrepUSB and 'Local Disk' in Windows Explorer - these flash drives will not work using this method as they will appear to Windows as a 'hard disk'. If you have this type of USB flash drive you will also need a USB 'Removable' Flash drive as well (treat the Fixed-Disk flash drive as if it were a hard disk).

Note: You can also add entries to install Windows XP as well as the other OS's. To install from a Setup CD (just like booting from an XP install CD) refer to Tutorial #30 here and add the files to those used in this tutorial or see Tutorial #63 which has instructions for both Win7 and XP and includes activation instructions.

History

Update 26 June 2011: Fixed 64-bit Windows ISO install which did not work, as devcon did not include an amd64 version and extraction of the x64-bit version is very awkward! The 64-bit version of devcon from the MS site KB article download (2003) does not actually run under 64-bit WinPE as it is an ia64 platform version!!! Please use the new version of my zip download which now includes both devcon versions (32&64).
Update 26 June 2011 (19:00 BST): Added an Addendum to support hard disks and included two new files in the tutorial download.
Updated 1st July 2011: Changed menu to not use wenv and use grub4dos variables instead, also now allows boot from BOOTMGR or non-ISO9660 iso files. New download Tut43_Fira_iso.zip
Updated 20th July 2011: Typo in loadiso.cmd meant it reported devcon as missing - now fixed (thanks G R!).
Updated 10th August 2011: Sushil1576 from Reboot.pro has found the if X:\Setup.exe is run, you also get the repair option. This is useful for the Hard Disk version only - see Addendum section at the end of this page. The download has been updated with a new MySetup.cmd file so that the Repair option is offered.
Updated 12th September 2011: Modification to add the 'Repair' option for all ISOs, so that no separate 'repair grub4dos' menu item is required
Updated 1st June 2012: Added two menu entries for Windows 8 Release Preview
Updated 4th July 2012: Added ImDisk as Server 2012 WinPE no longer works with FiraDisk. NOTE: You must add your own Product Key to the FiraDisk\xxx.xml files for Win8/SVR8.
Updated 25th Sept 2012: Delay added to allow detection of USB drive by OS and retries if no file found (thanks to Todd Fraser for reporting this)
NOTE:
Windows 10 TH2 (v1511 and later) does not work unless you update the ImDisk folder with the latest version of ImDisk - I recommend using Easy2Boot as this will be regularly updated!
2016-02-26 - Miklos has provided a modified download which contains the new ImDisk version and example menu.lst for Win10 here.

Using this method with USB Hard Disks

The method described immediately below works if you use a USB Flash drive but does not work automatically for a single bootable USB hard disk because the AutoUnattend.xml file MUST be on a removable drive (i.e. a USB flash drive or CD). If you want to use a USB hard disk, you have the following 4 options:

1. Prepare a USB Flash drive (Removable type) as described below (without the ISO files) but copy all the ISO files to the USB hard disk /ISO folder (or onto a separate partition on the internal hard disk on the target system into a /ISO folder). If using two USB drives (USB Flash & USB HDD), make sure both the Flash drive and the USB hard drive are connected to the computer when you boot from your Flash drive. The only \Autounattend.xml should be on the Removable flash drive.
- OR -
2. Prepare a USB hard drive by following the instructions below for a Flash drive. Then move the single AutoUnattend.xml file to any spare USB flash drive that you have - it must be of the Removable type. To install Windows, boot from the USB hard drive but make sure the USB Flash drive is also connected to the same system.
- OR -
3. Prepare a USB hard drive following the instructions for a Flash drive below. Boot from the USB hard drive and when Windows Setup loads, press SHIFT+F10 to open a command console and type F:\firadisk\loadiso (where F: is the drive letter of your USB hard disk - which may vary depending on the system you are installing to).
- OR -
4. See the Addendum below for how to modify each Windows Vista/7/2K8 ISO so that a single bootable USB hard drive can be used, without a flash drive being needed and without the need for the user typing in any extra commands.

Method (for USB Flash drives)

Note: these instructions also apply if you already have a bootable grub4dos disk, just extract the Tut43_FiraISO.zip contents onto it (note that it will overwrite your menu.lst though!) and copy all your ISO files to the USB drive and overwrite your grldr file with the recent one included in the latest version of RMPrepUSB v2.1.623 or later.

1. Create a new folder on your hard drive called C:\WINFira

2. Download the zip file Tut43_FiraIso.zip from the Beta Downloads - Tutorials page and extract the contents to the C:\WINFira folder.
For Win7/8 and 10 try Miklos's version for Win10 here.

Contents of Tut43_FiraIso.zip:

AutoUnattend.xml
Menu.lst
\FiraDisk folder
au.xml
auWin8.xml
firadi64.cat
iradi64.sys
firadisk.cat
firadisk.inf
firadisk.sys
LOADISO.CMD
slp.exe
spaces.txt
wenv (not used in this tutorial)
\i386\devcon.exe
\ia64\devcon64.exe
mysetup.cmd (not actually used - see Addendum below)
winpeshl.ini (not actually used - see Addendum below)
\ISO folder
Choose_an_iso
<<<<<<< (your iso files go here)


3. Now copy your Windows install ISO files to the C:\WinFira\ISO folder - Note: the iso filenames must NOT contain spaces!

You can download some Windows 7 ISOs from here. The Windows 8 Release Preview ISOs can be found here.

Notes:
  • You must edit /firadisk/auWin8.xml with correct Product Key for Windows 8 install (if you use menu no. 4)!

  • Menus 5 and 6 f for Win8 allow you to use any Product Key and thus install any version. Do NOT change the auWin8.xml file - it must have a key starting with TK8TP-.

4. The sample menu.lst contains 5 (0-4) menu entries. The first menu entry is set to boot a fixed iso name. Just copy the first menu entry to make as many more as you like for all your ISO files. The second menu entry is merely to allow you to reboot to your hard disk after Windows has been installed onto it. The 3rd menu entry allows the user to choose which iso to boot to, by getting the user to type in the name of the iso that they want to use (note: does not work with Win8 ISOs). The last two menu entries are for Win 8 RP. You can delete any menu entries that you do not require.

New: Note that menu number 5 is not included in the download of menu.lst - this is a new menu which prompts the user for a Windows 8 Product Key before Windows Setup is run.

Edit the menu.lst and change the first line (title) and 3rd line (ISO filename) in each menu, the sample menu included in the download, is shown below:



# NORMAL HIGHLIGHT HELPTEXT HEADING in pairs consisting of foreground/background
color black/cyan blue/cyan red/light-blue red/cyan

# display this heading
write (md)0x220+1 !BAT\necho -n -P:0000 $[0133] --- Windows install --- \0
initscript (md)0x220+1

title 1 INSTALL Windows 7 32-bit\nThis will install any edition of Windows 32-bit to your hard disk
debug off
set MYISO=win7.iso
find --set-root /AutoUnattend.xml
dd if=(bd)/firadisk/au.xml of=()/AutoUnattend.xml
dd if=(bd)/firadisk/spaces.txt of=()/firadisk/ISONAME.CMD
root (bd)
write (bd)/firadisk/ISONAME.CMD SET MYISO=\\iso\\%MYISO%\r\n
map --mem (md)0x800+4 (99)
echo Mapping /ISO/%MYISO% as an optical drive...
map /ISO/%MYISO% (0xff)
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/ISO/%MYISO%;\n\0
chainloader (0xff)/BOOTMGR || chainloader (0xff)

### ADD MORE ISO MENU ENTRIES HERE - DUPLICATE THE ENTRY ABOVE AND CHANGE THE ISO FILENAME

title
root ()

title 2 Boot from 1st Hard Disk \nBoot from MBR of first hard disk and remove the USB drive
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
chainloader (hd0)+1
rootnoverify (hd0)

title
root ()

title Choose any iso file...
root ()

title 3 INSTALL WINDOWS VISTA/7 - Boot from any Windows ISO to install Windows\nThis menu allows you to type in the name of any Windows ISO file and boot from it
# find the ISO folder by looking for a marker file
debug off
find --set-root /ISO/choose_an_iso
clear
echo
# list all files in the /ISO folder so the user can see them
ls ()/ISO/
echo
# Ask user which iso they want (name is converted to uppercase as /u is specified)
set /p /u ask=Enter iso filename WITH NO .ISO EXTENSION (e.g. Win7Pro32 ) :
if "%ask%"=="" echo No iso file specified! && configfile /menu.lst
clear
# check if user entered a valid filename with no ISO extension!
ls /ISO/%ask%.iso || echo Cannot find /ISO/%ask%.iso !!! && pause --wait=3 && configfile (bd)/menu.lst
echo Loading /ISO/%ask%.iso - please wait ...
#set root drive to USB stick
find --set-root /Autounattend.xml
map --mem (md)0x800+4 (99)
dd if=(bd)/firadisk/au.xml of=()/AutoUnattend.xml
dd if=(bd)/firadisk/spaces.txt of=()/firadisk/ISONAME.CMD
root (bd)
write ()/firadisk/ISONAME.CMD SET MYISO=\\iso\\%ask%.iso\r\n
find --set-root /ISO/%ask%.iso
# run the grub4dos map command and specify the iso file we want to load
map /ISO/%ask%.iso (0xff)
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
# Specify the same iso file for when firadisk runs in winpe
find --set-root /firadisk/loadiso.cmd
write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/ISO/%ask%.iso;\n\0
chainloader (0xff)/BOOTMGR || chainloader (0xff)
clear

# Note: You must edit /firadisk/auWin8.xml with correct Product Key first!
title 4 INSTALL Windows 8 32-bit\nThis will install Windows 8 32-bit to your hard disk
debug off
set MYISO=Windows8-ReleasePreview-32bit-English.iso
find --set-root /Autounattend.xml
dd if=(bd)/firadisk/auWin8.xml of=()/AutoUnattend.xml
dd if=(bd)/firadisk/spaces.txt of=()/firadisk/ISONAME.CMD
root (bd)
write ()/firadisk/ISONAME.CMD SET MYISO=\\iso\\%MYISO%\r\n
map --mem (md)0x800+4 (99)
map /ISO/%MYISO% (0xff)
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/ISO/%MYISO%;\n\0
chainloader (0xff)/BOOTMGR || chainloader (0xff)

# NEW MENUS - NOT IN DOWNLOAD!
# Note: User must enter the Product Key first
title 5 INSTALL Windows 8 32-bit\nThis will install Windows 8 32-bit to your hard disk
debug off
set MYISO=Windows8-32bit-English.iso
find --set-root /Autounattend.xml
dd if=(bd)/firadisk/auWin8.xml of=()/AutoUnattend.xml
set /p /u KEY=Enter Product Key (AAAAA-BBBBB-CCCCC-DDDDD-EEEEE-FFFFF) :
cat --locate=TK8TP --replace=%KEY% /AutoUnattend.xml > nul
dd if=(bd)/firadisk/spaces.txt of=()/firadisk/ISONAME.CMD
root (bd)
write ()/firadisk/ISONAME.CMD SET MYISO=\\iso\\%MYISO%\r\n
map --mem (md)0x800+4 (99)
map /ISO/%MYISO% (0xff)
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/ISO/%MYISO%;\n\0
chainloader (0xff)/BOOTMGR || chainloader (0xff)