Jump to content

[How To] Multi-boot DVD Guide

Recommended Posts

Hi all!
Pool results:
There was a pool on if I should update this guide with the latest Window's or leave it as it is. I would like your feedback.

I will be updating this guide soon to add support to Windows Vista and Windows 7 aswell.
I'll update all the software to the latest versions and include Graphical User Interfaces instead of text user interfaces.
Also I will try to add some software to cut down some steps, to make your life easyer.
This is the most complete and updated guide on how to build a Multi Boot DVD with pre-Vista versions of Windows. I'll be updating it as i can. Hope you like it smile.gif


May, 13 (2010)

  • Understanding the boot process timeline is now more comprehensible
  • Guide clean up

Aug, 18 (2009)

  • Updated links
  • Some minor language fixes

Aug, 20 (2007)

  • "Add an Unattended option" fix (thanks to ysfozy)

Jan, 13 (2006)

  • Automatically create multi-boot folders and files
  • Added improved and shorter RunOnce.cmd code
  • Added the eXPander utility
  • Guide clean up and update

Sep, 15 (2006)

  • Added Windows 98 support

Sep, 10 (2006)

  • Fixed offline links, since Flyakite's Multi Boot Guide's offline.
  • Fixed spacing and added color for easier reading

May, 21 (2006)

  • Added "CDShell.ini" attachment
  • Creation of this guide

Features in this guide:
- Automatically create multi-boot folders and files
- Install all your software directly from your CD/DVD (so it won't be copied to the HD, saving time)
- You'll have just one Install.cmd file to update and maintain all your software
- Determine which software gets installed in which OS
- Still be able to use the OEMPreInstall=Yes and [GuiRunOnce] in winnt.sif to launch some other stuff that you may need
- You can slipstream drivers to every OS you want, having only one copy of them
- You'll still be able to use any post-install methods you like (RunOnceEx, kTool, WPI, WIHU, XPlode, whatever)

This guide is compatible with the following methods and tools:
- nLite
- RyanVM
- BTS's DriverPacks (Method 2 is required in order to have just one copy of the drivers and slipstream them to all the OS's.)
- Windows Post-Install Wizard (WPI)
- kTool
- XPlode

This guide is compatible with the following OS's:
- Windows Server 2003 (Standard, Enterprise, Web & Data Center)
- Windows XP SP1
- Windows XP SP2
- Windows XP Home
- Windows XP Media Center
- Windows 2000
- Windows 98

Understanding The Boot Process timeline:
- CD Shell lets you choose which XXXX.DAT file to load. XXXX.DAT is a boot sector located on the DVD root and there's one for each OS you want to load
- The boot sector (PRO1.DAT for example) loads the SETUPLDR.BIN file located in each of the boot folders
- SETUPLDR.BIN does a number of things and in turn loads txtsetup.sif which accesses the appropriate DVD\SETUP\XX folder and starts the text-mode setup for Windows
- Once the text-mode setup of Windows is followed through the graphic-mode setup is started
Timeline (countdown)
T-39 - Depending on the boot folder, winnt.sif's DetachedProgram creates a "tag" file wich solo purpose is to tell Install.cmd wich OS is beeing installed
T-13 - Svcpack.inf launches the RunOnce.cmd inside ...\i386\CMD\ of every OS wich purpose is to find Install.cmd on the DVD and execute it. This is due to DVD-drive letter changing. Mine can be D: yours can be H:, so the path is not allways the same. A search function is used.

T-13 - Install.cmd checks for the tag file and then performs that OS's associated task, whether it beeing automaticly installing software, removing something from the HD or presenting a message.

Before we start:
Keep it simple, for boot menu use CD Shell, use simple winnt.sif files, etc. You should beautify, only after you'd successfully completed and booted from all OSs. Some beautifying options are at the end of this guide.

What you will need:
- Time and patience, don't expect to get everything to work the first time. Work on one operating system at a time. Test once you have that operating system added to make sure everything works right, then move onto the next OS. It will save you time if something goes wrong and you'll know where to look. You can only test your DVD once you've passed the "Creating the ISO" section.
- Various operating system CDs or ISOs
- Sufficient drive space (5+ GB to be safe) (I used +/- 20GB for my DVD)
- CDImage (GUI'ed version) - Seems the link is not working, google it smile.gif
- CD Shell
- Hex Workshop to hex-edit files.
- Optional - VMware (Shareware), Virtual PC (Freeware) or Qemu (Freeware) (for testing purposes)
- Any ISO burning software, like CDBurner XP (Freeware)

Let's get started:

Let's set up our folder structure:
- In your C:\ (or whatever folder you choose to be the root folder) create this folder structure:

DVD is the root folder and SETUP will store all of the CDs (DVD\SETUP\XP\Professional for example)
- Extract the CD Shell.zip file and move the BOOT folder into the DVD folder (DVD\BOOT\)
- Move the TOOLS folder into the BOOT folder (DVD\BOOT\TOOLS\)
- Copy all the contents of the XP Pro CD to DVD\SETUP\XP\Professional.

Automatically create multi-boot folders and files (thanks to geitonaki)
- Download geitonaki's SFX file
- Execute it and browse to your DVD folder. When finished it will open create_boot_folders.cmd, modify it to your needs.
- It will create the PRO1 boot folder, modify setupldr.bin, modify txtsetup.sif, create the PRO1.bin boot sector and copy the WIN51, WIN51IP and WIN51IP.SP1 (WIN51IP.SP2 if Service Pack 2) tag files. (Notice that PRO1.bin has to have exactly 4 letters UPPERCASE)

call create_boot_folder.cmd C:\DVD\SETUP\XP\Professional C:\DVD PRO1 FOO 0

- Create a text file, inside PRO1, with NotePad, and rename it to winnt.sif.

[GuiUnattended]DetachedProgram="%SystemRoot%\System32\cmd.exe /c @ECHO something>%SystemDrive%\XPPRO.TAG"

This will make winnt.sif create a "tag" file that identifies the OS being installed. In this case, the tag file will be XPPRO.TAG, but you can specify whatever you want.

Creating RunOnce.cmd
- Create a RunOnce.cmd file inside DVD\SETUP\XP\Professional\i386\CMD\ and paste the code in.
- RunOnce.cmd looks for Install.cmd on the DVD and calls it.

@echo off
for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do if exist "%%i:\software\Install.cmd" call %%i:\software\Install.cmd

You can use the RunOnceEx method for this. RunOnceEx only runs at first logon, so applications may need reboot. The method above goes around that, it's "rebootless" smile.gif

Launching RunOnce.cmd from Svcpack.inf
- Add these lines to svcpack.inf inside DVD\SETUP\XP\Professional\i386\:



- Svcpack.inf may come as svcpack.in_, just use the eXPander utility (thread here) to extract the svcpack.inf inside it, then delete the svcpack.in_.
- As you can see Svcpack.inf will launch RunOnce.cmd at T-13 stage.
- You'll have to addapt the [ProductCatalogsToInstall] in svcpack.inf according to the new CatalogSubDir="\i386" because it may point to a different location (in which case you'll get an error message during installation). If you don't have any file references under [ProductCatalogsToInstall], then just don't worry about it.
- Use the eXPander utility to transform svcpack.inf back to it's compressed svcpack.in_ form, which is smaller (this is optional).

Creating the Install.cmd file
- Create a Install.cmd file inside DVD\SOFTWARE\ and paste in the following:

@echo off
REM next line makes sure the *.TAG extension is identified
setlocal enableextensions
REM checks for the XPPRO.tag file and go to the corresponding section:
if exist %SystemDrive%\XPPRO.TAG call :XPPRO
REM checks for the XPPRO2.tag and go to the corresponding section:
if exist %SystemDrive%\XPPRO2.TAG call :XPPRO2
REM checks for the SERVER2003.tag file and go to the corresponding section:
[if exist %SystemDrive%\SERVER2003.TAG call :SERVER2003
goto :end

REM Here we'll add the software to install to the XP Pro version. Example:
REM "%~dp0" refers to the full path the Install.cmd is in, so you don't have to worry about drive letters

start /wait %~dp0\Software\Program1.exe /s
start /wait %~dp0\Software\Program2.exe
start /wait %~dp0\Software\Program3.exe /qn
REM End this section
REM end of this section :

goto :end

REM Here we'll add the software to install to the XP Pro Unattended version. Example:
start /wait %~dp0\Software\Program1.exe /s
start /wait %~dp0\Software\Program2.exe
start /wait %~dp0\Software\Program3.exe /qn
REG IMPORT %~dp0\Software\Tweaks.reg
REM End this section
REM end of this section :

goto :end

REM Here we'll add the software to install to the Server 2003 version. Example:
REG IMPORT %~dp0\Software\Workstation.reg
start /wait %~dp0\Software\ProgramA.exe /s
start /wait %~dp0\Software\ProgramB.exe
REM End this section
REM end of this section :

goto :end

REM Here we'll add the options for every OS.
start /wait %~dp0\SOFTWARE_ALL\AntiVirus.exe
start /wait %~dp0\SOFTWARE_ALL\Firewall.exe /s
REM Applying tweaks to the registry. Independent of the TAG:
REG IMPORT %~dp0\Software\Tweaks.reg
del /f /q %SystemDrive%\*.TAG
del /q /f %SystemRoot%\*.bmp
del /q /f %SystemRoot%\system32\dllcache\*.scr
del /q /f %SystemRoot%\system32\setupold.exe
del /q /f %SystemRoot%\system32\presetup.cmd

Install.cmd checks for any tag file and when it finds performs the associated task. As you can see, aplications are installed directly from the DVD (not copied to the HD) thus not needing the OEMPreInstall=Yes or [GuiRunOnce] in winnt.sif, that you can still use to launch some more stuff that you may need, and saving time :thumbup

Finishing Up
DVD Layout:
Ok, now check if your DVD layout is similar to this, if it is, everything is ok. Keep in mind that this is just a sample layout. This layout includes XP Pro and Server 2003, but you may add as many as you like or as many as it fit's on the DVD ;)
C:\DVD\ - Multi boot DVD Source
C:\DVD\BOOT\ - CDShell folder
C:\DVD\i386\ - Windows XP Pro reduced source folder (OPTIONAL)
C:\DVD\PRO1\ - Boot folder 1 for XP Pro
C:\DVD\PRO2\ - Boot folder 2 for XP Pro
C:\DVD\3ST1\ - Boot folder 1 for Server 2003
C:\DVD\3ST2\ - Boot folder 2 for Server 2003
C:\DVD\SOFTWARE\SOFTWARE\ - Folder where software is placed
C:\DVD\SOFTWARE\Install.cmd - CMD file that takes care of the software installation
C:\DVD\SOFTWARE\SOFTWARE_ALL\ - Folder where software for all OSs is placed

Creating a boot menu (CDShell):
It's time to create a boot menu. CD Shell scripting it very simple and I believe that if you read my example you'll find it very easy to modify to your needs.

Creating the ISO (CDImage):
Now we only need to create the ISO so we can test our DVD.
I'll follow the non-GUI CDImage tutorial, but you can use the GUI'ed CDImage version if you like.
Put the cdimage.exe in the same directory as the DVD:
And automate the process:
Make a batch file that you can run whenever you want to make the ISO. To create a batch file open Notepad and paste the below code into it. Save the file as whatever you want and then just change the extension to .bat, like C:\makeiso.bat.

start cdimage.exe -lDVD -t01/01/2006,12:00:00 -b\DVD\BOOT\loader.bin -h -n -o -m \DVD C:\AIODVD.iso

Ok, now everytime you execute makeiso.bat it will create the ISO for you.
It's time to test your ISO (with VMware for example) and add another OS!

Add an Unattended option:
This section will teach you how to add an option which let's you install Windows unattendedly.

- Copy the PRO1 folder and PRO1.DAT file to "Copy of PRO1" and "Copy of PRO1.DAT"
- Rename it to PRO2 and PRO2.DAT
- Hex-edit PRO2.dat and scroll down until you see "PRO1" in the right hand side. Replace PRO1 with PRO2.
- Hex-edit setupldr.bin inside the PRO1 folder and Ctrl+H, then search for Type: "Text String" "PRO1" and replace it with PRO2.
- Save the file, choose not to back it up.
- Click "OK" and then choose "Replace All". It should say "4 Occurrences Replaced". When done, save the file and choose not to back it up.
- Edit winnt.sif to include the unattended options.
This may be a good time to read the ref.chm file in Microsoft Deployment Tools, it explains how to set up winnt.sif for an unattended installation.
You can use your winnt.sif file to skip some boorings steps of your installation like typing the serial number, defining your language and keyboard or even skip all the steps with the UnattendMode=FullUnattended command.
After you created your winnt.sif add these lines to it, so it TAG's the OS being installed:

[GuiUnattended]DetachedProgram="%SystemRoot%\System32\cmd.exe /c @ECHO something>%SystemDrive%\XPPRO.TAG"

- Ok, so now we have a second boot option. Its time to add that option to the boot menu, so you can actually choose it. Just open up your DVD\BOOT\cdshell.ini and add these lines to it:

print c "\n\cXXMicrosoft Windows XP Professional \n"
print "1) Regular \n"
print "2) Unattended \n"

if $lastKey == key[1]; then chain /PRO1.DAT
if $lastKey == key[2]; then chain /PRO2.DAT

Add Windows 98
Follow this guide, by chon_.

Add Drivers:
Follow this guide, by a06lp.

Additional Resources
- Setup Billboard Screens (or learn how to make your own here).
- Microsoft Deployment Tools at Microsoft and Rapidshare. They contain the ref.chm file that has info for WINNT.SIF configuration, along with other utilities.

And that's it, i'll be updating as i can :whistle:
Hope it was usefull to you :thumbup



Edited by xper
Link to comment
Share on other sites

Thanks mzar720! :D

I'll be updating this guide very soon, maybe even extend it to a complete "Making a multi boot DVD" guide. I hope it can help many people :thumbup


André Casal

Edited by andregcasal
Link to comment
Share on other sites

I'll be updating this guide very soon, maybe even extend it to a complete "Making a multi boot DVD" guide. I hope it can help many people :thumbup

its a great idea to have another uptodate Guide in Making a multi boot CD/DVD

Keep up the good work André Casal :thumbup:thumbup

and sorry for late replay. :hello::hello:

Link to comment
Share on other sites

  • 2 months later...
  • 2 weeks later...

Thank you all! It's you feedback that keeps me going :)

About Windows 98 maybe later. I have so much more to add to this guide that Windows 98 will have to wait, but thanks for the suggestion!


Edited by andregcasal
Link to comment
Share on other sites

  • 2 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...