How to create the ultimate USB multi boot disk

Since I'm preparing myself for the new Windows 7 and Windows Server 2008 R2 operating systems, I tend to download new builds fairly often and was looking for a quick way to install an operating system on a physical machine without burning DVDs all the time. The obvious answer: I created my own USB boot key that lets me boot multiple operating systems.

What do you need?

  • A "Technician PC" to create the USB key – I did it on a workstation running Windows 7 build 7000, but Vista (and possibly XP? Not tested, though) will also do.
  • The Windows Advanced Installation Kit (WAIK). You can get it from various sources like Technet or from here.
  • A USB key. I'm creating my "monster WIM file" as we speak, and it's already 4.3 GB. You should get an 8 GB (or better) key that's fairly new (for read/write speed).
  • The sources. In other words, you need the x:\sources\install.wim (x: being your CD drive) file of the operating systems you'd like to install.

Step 1: Preparing the USB key

Since the WIM file I'm creating (see Step 2) will be larger than 4 GB, the USB stick needs to be formatted with NTFS. In a command prompt with administrative rights, do the following ( "clean" will permanently erase the contents of your USB key!! ):

diskpart
list disk
select disk 1
clean
create partition primary
select partition 1
active
format fs=ntfs quick
assign
exit

The above assumes that the "list disk" command showed you two disks, "Disk 0" being your internal hard disk and "Disk 1" being the USB stick. Your system might be different. "clean" will permanently erase the contents of your USB key!! Ony my system, the "assign" command put my USB key on drive H:, this could also be different on yours.

Next, copy the contents for example of a Vista Windows 7 (*)  CD to your USB key:

xcopy f:\*.* /s /e /f h:\

Your USB key is now ready to go.
(*) = I found Windows 7 to work best for me. Just use Beta 1 or, when available, RC.

Step 2: Creating the "Monster WIM"

The WIM format introduced with Windows Vista is basically a container for one or more OS images. You can have a look into such a container by starting the WAIK command prompt (see your Windows start menu after installing WAIK) and entering the command "imagex.exe /info x:\sources\install.wim" (assuming x: is your DVD drive). The output will look something like this (some output snipped):

C:\Windows\system32>imagex.exe /info f:\sources\install.wim

ImageX Tool for Windows
Copyright (C) Microsoft Corp. All rights reserved.

WIM Information:
----------------
GUID: {a99a2697-00aa-47fb-a514-86e22cc1a7a6}
Image Count: 6
Compression: LZX
Part Number: 1/1
Attributes: 0xc
Integrity info
Relative path junction

Available Image Choices:
------------------------
<WIM>
<TOTALBYTES>2643418299</TOTALBYTES>
<IMAGE INDEX="1">
(snip)
<NAME>Windows 7 SERVERSTANDARD</NAME>
<DESCRIPTION>Windows 7 SERVERSTANDARD</DESCRIPTION>
<FLAGS>ServerStandard</FLAGS>
<HARDLINKBYTES>3637973169</HARDLINKBYTES>
<DISPLAYNAME>Windows Server 2008 R2 Standard (Full Installation)</ DISPLAYNAME>
(snip)
</IMAGE>
<IMAGE INDEX="2">
(snip)
<NAME>Windows 7 SERVERSTANDARDCORE</NAME>
<DESCRIPTION>Windows 7 SERVERSTANDARDCORE</DESCRIPTION>
<FLAGS>ServerStandardCore</FLAGS>
<HARDLINKBYTES>995178928</HARDLINKBYTES>
<DISPLAYNAME>Windows Server 2008 R2 Standard (Server Core Installation) </DISPLAYNAME>
</IMAGE>

As you can see in the partial output above, the WIM contains 6 images; I've included the more important parts of the first two images. Creating the actual WIM is now straightforward enough:

imagex.exe /export f:\sources\install.wim 1 d:\temp\install.wim 1 "Windows Server 2008 R2 Standard (FULL)"
imagex.exe /export f:\sources\install.wim 1 d:\temp\install.wim 2 "Windows Server 2008 R2 Standard (CORE)"

Now insert the next DVD, say with Windows Server 2008 x64, and repeat the process (run "imagex.exe /info …" to see which images to get):

imagex.exe /export f:\sources\install.wim 1 d:\temp\install.wim 2 "Windows Server 2008 Enterprise x64 (FULL)"
imagex.exe /export f:\sources\install.wim 1 d:\temp\install.wim 5 "Windows Server 2008 Enterprise x64 (CORE)"

You don't have to worry about numbering in your newly created WIM file; imagex.exe will assign them automatically in ascending order. If you want to get rid of an image in your WIM, use:

imagex.exe /delete d:\temp\install.wim 1

Step 3: Copying the new WIM file to the USB key

All that remains to do is replacing the "install.wim" on your USB key with your customized one:

copy d:\temp\install.wim h:\sources

Select "Yes" if prompted to overwrite the existing install.wim.

Conclusion

That's it, you should now be able to boot from the USB key (provided your computer's BIOS supports this and it has been enabled) and start installing away. To dramatically increase performance during the export of the images, either mount the source OS DVDs using a .ISO mount tool or copy the install.wim to your local hard disk. You may also want to experiment with different USB key drives to find one that is fast enough for your needs.