Wednesday, June 24, 2009

Creating a Multi-Boot DVD

Creating a Multi-Boot DVD - MSFN.org
Home» Introduction» Getting StartedOperating Systems» XP Pro SP1» XP Home SP1» Server 2003» 2000 SP4» 98 SE» ME» ERD Commander 2003» Longhorn Build 4051 Extras» Adding Unattended » Custom "setup.exe"» CD Shell Boot Image» Support Tools Finishing Up» My DVD Layout» Summary» Creating a Boot Menu» Cleanup» Testing & BurningHelp» FAQ» Links» Get HelpOther» Downloads» Screenshots» Site Updates
:: Introduction ::
Anyone who works in a multi-os environment or in IT knows that it is a pain to have to carry around multiple cds and floppies filled with operating systems and diagnostic and support software. This guide hopes to simplify those problems. I will show you just how easy it is to create your very own DVD consisting of every Windows based operating system you could want as well as how to add support and diagnostic tools as well. You will have one disc with every operating system and support tool you could ever need!
Info
TextLikeThis = code or commandsTextLikeThis = filesTextLikeThis = folders
All links to external sites will open in a new window, so there is no need to worry about accidently navigating away from the site!
Credits
Most people save credits for the very end of a project, whether it be a movie, music cd insert, or anything else for that matter. I feel that the people who inspired me to create this site deserve to be credited before anything else, for without them you wouldn't be reading any of this.I would like to thank everyone that has contributed to MSFN, whether it be through providing guides, answering questions, or even asking them so that we are aware of other problems and possibilities. Specifically I'd like to thank AaronXP, GreenMachine, Webmedic, gosh, Numinous, DaveXP, and b0red for their contributions to the community. Also I would like to thank xper for allowing me to host my guide here.
UPDATES
03/28/04» Updated PDF guides for both sites» Added "Longhorn Build 4051" in the "Operating Systems" section» Added mouse-over tooltips to each item in the "My DVD Layout" section» Renamed "PM8, Ghost, Etc." to "Support Tools"» Fixed information on how to make floppy images in "Support Tools"» Added "Site Updates" section in "Other" http://flyakite.msfnhosting.com/ (1 of 2)3/28/2004 5:40:49 PM
Creating a Multi-Boot DVD - MSFN.org
http://flyakite.msfnhosting.com/ (2 of 2)3/28/2004 5:40:49 PM
Introduction
:: Introduction ::
Anyone who works in a multi-os environment or in IT knows that it is a pain to have to carry around multiple cds and floppies filled with operating systems and diagnostic and support software. This guide hopes to simplify those problems. I will show you just how easy it is to create your very own DVD consisting of every Windows based operating system you could want as well as how to add support and diagnostic tools as well. You will have one disc with every operating system and support tool you could ever need!
Info
TextLikeThis = code or commandsTextLikeThis = filesTextLikeThis = folders
All links to external sites will open in a new window, so there is no need to worry about accidently navigating away from the site!
Credits
Most people save credits for the very end of a project, whether it be a movie, music cd insert, or anything else for that matter. I feel that the people who inspired me to create this site deserve to be credited before anything else, for without them you wouldn't be reading any of this.I would like to thank everyone that has contributed to MSFN, whether it be through providing guides, answering questions, or even asking them so that we are aware of other problems and possibilities. Specifically I'd like to thank AaronXP, GreenMachine, Webmedic, gosh, Numinous, DaveXP, and b0red for their contributions to the community. Also I would like to thank xper for allowing me to host my guide here.
UPDATES
03/28/04» Updated PDF guides for both sites» Added "Longhorn Build 4051" in the "Operating Systems" section» Added mouse-over tooltips to each item in the "My DVD Layout" section» Renamed "PM8, Ghost, Etc." to "Support Tools"» Fixed information on how to make floppy images in "Support Tools"» Added "Site Updates" section in "Other" http://flyakite.msfnhosting.com/introduction.htm3/28/2004 5:40:53 PM
Windows XP Pro SP1
:: Site Updates ::
03/03/04» Updated PDF guide for this site » Added "My DVD Layout" section under "Finishing Up", which contains the entire layout to my DVD
03/01/04» Added PDF versions of the Multi-Boot DVD and Unattended CD websites» Fixed some frame layout issues that were bothering me
02/29/04» Tons of weird HTML code cleanup» Added "Adding Unattended" in the "Extras" section » Added info on how to fix the extra boot option on restart after creating the boot folder
02/28/04» Re-edited the ENTIRE site, fixed lots of HTML code» Added coloring system for file names, folder names, and code/commands» Fixed ALL links» Corrected all spelling errors» Added extra space between each little section on a page» Removed Windows NT 4 from the operating system section. No one uses it
11/01/03» Added unattended.txt file to "Clean Up" section.» Custom setup.exe section under "Extras" is finally finished!» Frame layout revised so it will center on page resize» PDF version of this site available under "Downloads"
10/31/03» Updated setupldr.dll references to setupldr.bin» Changed chain PRO1.DAT to be chain /PRO1.DAT» Updated cdshell.ini file in "Downloads" with proper chain and memdisk commands.» txtsetup.sif is originally in the i386 folder for the operating system» Revised how code is displayed. Instead of italics it is now surrounded by a black border.» Added some special code to the end of "Creating a Boot Menu"» Changed the search command (Alt+F) to read the proper key command (Ctrl+F)
http://flyakite.msfnhosting.com/siteupdates.htm3/28/2004 5:40:56 PM
Getting Started
:: Getting Started ::
What you will need:
l
A LOT of time and patience. Don't expect to get everything to work the first time
l
Various operating system cds
l
SUFFICIENT drive space (5+ GB to be safe)
l
Enable "Show Hidden Files & Folders"
l
Disable "Hide extensions for known file types"
l
Disable "Hide protected operating system files (Recommended)"
l
WinImage 6.10
l
A hex editor (I HIGHLY recommend Hex Workshop 4.23)
l
CDIMAGE 2.47
l
CD Shell 2.0.11
l
Optional - VMware Workstation 4.0.5 or Virtual PC 2004
l
Any program capable of burning ISO files to DVD
TIP!: 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 yourself time when something goes wrong and you have no idea where to look.
Preparation
Before we get started copying cds and modifying files, we should figure out where we want to store our files. For this entire site, I will be using the D:\ in all of my examples. Keep in mind that my 4.0GB DVD actually takes up 7.8 GB of hard drive space before CDIMAGE optimizes files, so make sure you have plenty of room on your target drive.
1.
In your C:\ (or the root of your OS drive) you should find a file called boot.ini. Make a copy of this file and store it somewhere, we will need it later!
2.
Create a directory on your target drive called AIO-DVD.
3.
Make a folder inside of AIO-DVD called SETUP that will store all of the cds.
4.
If you haven't already downloaded CD Shell from the link above, please do so. Extract the zip file and move the BOOT folder for CD Shell and all of it's contents into AIO-DVD.
5.
Place the tools folder from the CD Shell zip file into the BOOT folder.
Your directory structure should look something like this so far:D:\AIO-DVD\D:\AIO-DVD\SETUP\D:\AIO-DVD\BOOT\D:\AIO-DVD\BOOT\tools\
NOTE: My guide does not use Gosh's Reducing Size of Source method to trim down installs, nor will this guide cover that method. Using the full cd allows you to call the setup.exe file for each OS in case you want to check for hardware compatibility or install from within the Windows GUI. This will also allow you to install upgrades if you so choose.
http://flyakite.msfnhosting.com/gettingstarted.htm (1 of 2)3/28/2004 5:40:58 PM
Getting Started
NOTE 2: All images used throughout this guide are used for demonstration purposes only. For example: If the image shows PRO1 on it somewhere yet you are working on a Windows 2000 Pro cd, just modify the file according to the guide, not necessarily the image.
Understanding The Boot Process
Okay, before we go on it helps to understand the boot process for NT based operating systems. When a bootable XP cd is created, a file called xpboot.bin is used to create the boot sector. It is possible to extract the boot sectors from your cd, but it's a pain so I will be providing them for you. This boot sector says to access the i386 folder and load setupldr.bin. setupldr.bin has instructions on where to access txtsetup.sif which starts the text-mode setup for Windows.
Are you ready yet? Here we go...
http://flyakite.msfnhosting.com/gettingstarted.htm (2 of 2)3/28/2004 5:40:58 PM
Windows XP Pro SP1
:: Windows XP Pro SP1 ::
Well, I think we're ready to start copying our first cd. If you haven't read Getting Started please do so before proceeding.
Copying the CD Contents
Inside of your SETUP folder which should be in AIO-DVD create a folder called XP and then create another folder inside of it called Professional.
eg. - D:\AIO-DVD\SETUP\XP\Professional\
Copy the entire XP Professional cd to the Professional folder.
Creating the Boot Folder
Thanks to gosh from the MSFN forums, I have discovered a much better way to obtain the boot files. While this method is a slight pain, it ensures that everyone has the proper boot files for their DVD. Go to Start -> Run and type or paste the following command with the correct drive letter of course:
D:\AIO-DVD\SETUP\XP\Professional\i386\winnt32.exe /noreboot
Windows XP setup should come up. Choose "New Installation" and go through the options as usual. Do NOT download updated setup files. At the "Setup Options" screen, click on "Advanced Options" and make sure "copy all installation files from the CD" is checked. If it is grayed out don't worry about it.
Setup should create 2 folders in the root of your main drive. They will be hidden so make sure "Show hidden files and folders" is enabled.
$WIN_NT$.~BT - the boot folder$WIN_NT$.~LS - installation files folder
Rename $WIN_NT$.~BT to PRO1 and move the entire folder into the AIO-DVD folder.
eg. - D:\AIO-DVD\PRO1\
Now in the PRO1 folder delete the following files:
BOOTSECT.DATmigrate.infwinnt.sif
IMPORTANT: Now there's just one last thing we have to do. When we ran setup like we just did, it expects us to be installing a new operating system the next time we reboot, so setup adds an extra boot option in the boot.ini file and changes the default boot choice to it. If you followed the
http://flyakite.msfnhosting.com/xpprosp1.htm (1 of 4)3/28/2004 5:41:00 PM
Windows XP Pro SP1
instructions in "Getting Started", you should have made a copy of your boot.ini file. Take this copy, and copy it back over the boot.ini file in the C:\. Don't get rid of your original boot.ini, you will need it again if you plan on using other portions of this guide to add more operating systems.
If you don't have a backup of your boot.ini file, you can edit it yourself. This is what it normally looks like if you have XP Pro installed on the first or only partition of your hard drive:
[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
Editing "setupldr.bin"
Let's start modifying some files. First in your PRO1 directory open up the file setupldr.bin in Hex Workshop. Under Edit -> Replace (Ctrl+H) search for Type: "Text String." We want to find i386 and replace it with PRO1, as shown in the screenshot below.
http://flyakite.msfnhosting.com/xpprosp1.htm (2 of 4)3/28/2004 5:41:00 PM
Windows XP Pro SP1
Click OK and then choose Replace All. It should say "4 Occurrences Replaced." If it does not find 4 occurrences, there may be a problem somewhere. When done, save the file and choose not to back it up.
Editing "txtsetup.sif"
In your PRO1 folder find the file txtsetup.sif and open it in NotePad. Choose Edit -> Find (Ctrl+F) and search for SetupSourcePath. You will need to change the default "\" to reflect the directory you copied your XP Pro cd to. In this case it is "\SETUP\XP\Professional\"
SetupSourcePath = "\SETUP\XP\Professional\"
Creating the Boot Sector
Now we will need to create the boot sector file that will actually load the text-mode setup for our operating system. Download the PRO1.zip file. Extract the file and then open PRO1.dat in Hex Workshop. Scroll down until you see the following text in the right hand side. The red text is what we will be replacing. Replace I386 with PRO1.
Save the file, choose not to back it up and then place it in the AIO-DVD folder.
Finishing Up
Navigate to your setup folder \AIO-DVD\SETUP\XP\Professional\ and copy (not move) the following files into the root folder, AIO-DVD.
http://flyakite.msfnhosting.com/xpprosp1.htm (3 of 4)3/28/2004 5:41:00 PM
Windows XP Pro SP1
l
readme.html
l
spnotes.html (only found on an SP1 cd)
l
win51
l
win51ip
l
win51ip.sp1 (only found on an SP1 cd)
http://flyakite.msfnhosting.com/xpprosp1.htm (4 of 4)3/28/2004 5:41:00 PM
Windows XP Home SP1
:: Windows XP Home SP1 ::
Copying the CD Contents
Inside of your SETUP folder which should be in AIO-DVD create a folder called XP and then create another folder inside of it called Home.
eg. - D:\AIO-DVD\SETUP\XP\Home\
Copy the entire XP Home cd to the Home folder.
Creating the Boot Folder
Thanks to gosh from the MSFN forums, I have discovered a much better way to obtain the boot files. Go to Start -> Run and type or paste the following command with the correct drive letter of course:
D:\AIO-DVD\SETUP\XP\Home\i386\winnt32.exe /noreboot
Windows XP Home setup should come up. Choose "New Installation" and go through the options as usual. Do NOT download updated setup files. At the "Setup Options" screen, click on "Advanced Options" and make sure "copy all installation files from the CD" is checked. If it is grayed out don't worry about it.
Setup should create 2 folders in the root of your main drive. They will be hidden so make sure "Show hidden files and folders" is enabled.
$WIN_NT$.~BT - the boot folder $WIN_NT$.~LS - installation files folder
Rename $WIN_NT$.~BT to HOM1 and move the entire folder into the AIO-DVD folder.
eg. - D:\AIO-DVD\HOM1\
Now in the HOM1 folder delete the following files:
BOOTSECT.DATmigrate.infwinnt.sif
IMPORTANT: Now there's just one last thing we have to do. When we ran setup like we just did, it expects us to be installing a new operating system the next time we reboot, so setup adds an extra boot option in the boot.ini file and changes the default boot choice to it. If you followed the instructions in "Getting Started", you should have made a copy of your boot.ini file. Take this copy, and copy it back over the boot.ini file in the C:\. Don't get rid of your original boot.ini, you will need it again if you plan on using other portions of this guide to add more operating systems.
http://flyakite.msfnhosting.com/xphomesp1.htm (1 of 4)3/28/2004 5:41:02 PM
Windows XP Home SP1
If you don't have a backup of your boot.ini file, you can edit it yourself. This is what it normally looks like if you have XP Home installed on the first or only partition of your hard drive:
[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Home" /fastdetect
Editing "setupldr.bin"
Let's start modifying some files. First in your HOM1 directory open up the file setupldr.bin in Hex Workshop. Under Edit -> Replace (Ctrl+H) search for Type: "Text String." We want to find i386 and replace it with HOM1. The screenshot below is just for reference.
Click OK and then choose Replace All. It should say "4 Occurrences Replaced." If it does not find 4 occurrences, there may be a problem somewhere. When done, save the file and choose not to back it up.
http://flyakite.msfnhosting.com/xphomesp1.htm (2 of 4)3/28/2004 5:41:02 PM
Windows XP Home SP1
Editing "txtsetup.sif"
In your HOM1 folder find the file txtsetup.sif and open it in NotePad. Choose Edit -> Find (Ctrl+F) and search for SetupSourcePath. You will need to change the default "\" to reflect the directory you copied your XP Home cd to. In this case it is "\SETUP\XP\Home\"
SetupSourcePath = "\SETUP\XP\Home\"
Creating the Boot Sector
Now we will need to create the boot sector file that will actually load the text-mode setup for our operating system. Download the HOM1.zip file. Extract the file and then open HOM1.dat in Hex Workshop. Scroll down until you see the following text in the right hand side. The red text is what we will be replacing. Replace I386 with HOM1.
Save the file, choose not to back it up and then place it in the AIO-DVD folder.
Finishing Up
Navigate to your setup folder \AIO-DVD\SETUP\XP\Home\ and copy (not move) the following files into the root folder, AIO-DVD.
l
readme.html
l
spnotes.html (only found on an SP1 cd)
http://flyakite.msfnhosting.com/xphomesp1.htm (3 of 4)3/28/2004 5:41:02 PM
Windows XP Home SP1
l
win51
l
win51ic
l
win51ic.sp1 (only found on an SP1 cd)
http://flyakite.msfnhosting.com/xphomesp1.htm (4 of 4)3/28/2004 5:41:02 PM
Windows Server 2003
:: Windows Server 2003 ::
Copying the CD Contents
Inside of your SETUP folder which should be in AIO-DVD create a folder called Server2003.
eg. - D:\AIO-DVD\SETUP\Server2003\
Inside of this folder create a folder for each edition of Server 2003 that you are including. For my DVD I have DataCenter, Enterprise, Standard, and Web. Copy the entire Server 2003 cds into their corresponding folders.
Examples:D:\AIO-DVD\SETUP\Server2003\DataCenter\D:\AIO-DVD\SETUP\Server2003\Enterprise\D:\AIO-DVD\SETUP\Server2003\Standard\D:\AIO-DVD\SETUP\Server2003\Web\
NOTE: For this guide, we will be using Server 2003 Standard for the examples. If adding Enterprise, Data Center, or Web editions just change the necessary elements to fit your needs.
Creating the Boot Folder
Thanks to gosh from the MSFN forums, I have discovered a much better way to obtain the boot files. Go to Start -> Run and type or paste the following command with the correct drive letter of course:
D:\AIO-DVD\SETUP\Server2003\Standard\i386\winnt32.exe /noreboot
Windows Server 2003 setup should come up. Choose "New Installation" and go through the options as usual. Do NOT download updated setup files. At the "Setup Options" screen, click on "Advanced Options" and make sure "copy all installation files from the CD" is checked. If it is grayed out don't worry about it.
Setup should create 2 folders in the root of your main drive. They will be hidden so make sure "Show hidden files and folders" is enabled.
$WIN_NT$.~BT - the boot folder $WIN_NT$.~LS - installation files folder
Rename $WIN_NT$.~BT to 3STD and move the entire folder into the AIO-DVD folder.
eg. - D:\AIO-DVD\3STD\
Now in the 3STD folder delete the following files:
http://flyakite.msfnhosting.com/server2003.htm (1 of 4)3/28/2004 5:41:03 PM
Windows Server 2003
BOOTSECT.DATmigrate.infwinnt.sif
IMPORTANT: Now there's just one last thing we have to do. When we ran setup like we just did, it expects us to be installing a new operating system the next time we reboot, so setup adds an extra boot option in the boot.ini file and changes the default boot choice to it. If you followed the instructions in "Getting Started", you should have made a copy of your boot.ini file. Take this copy, and copy it back over the boot.ini file in the C:\. Don't get rid of your original boot.ini, you will need it again if you plan on using other portions of this guide to add more operating systems.
If you don't have a backup of your boot.ini file, you can edit it yourself. This is what it normally looks like if you have Server 2003 installed on the first or only partition of your hard drive:
[boot loader]timeout=30default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS[operating systems]multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Standard" /fastdetect
I included other Server 2003 versions as well on my DVD and chose to use the following boot folder naming scheme:
3STD - Standard 3ENT - Enterprise3DCT - Data Center3WEB - Web
Editing "setupldr.bin"
Let's start modifying some files. First in your 3STD directory open up the file setupldr.bin in Hex Workshop. Under Edit -> Replace (Ctrl+H) search for Type: "Text String." We want to find i386 and replace it with 3STD. The screenshot below is just for reference.
http://flyakite.msfnhosting.com/server2003.htm (2 of 4)3/28/2004 5:41:03 PM
Windows Server 2003
Click OK and then choose Replace All. It should say "4 Occurrences Replaced." If it does not find 4 occurrences, there may be a problem somewhere. When done, save the file and choose not to back it up.
Editing "txtsetup.sif"
In your 3STD folder find the file txtsetup.sif and open it in NotePad. Choose Edit -> Find (Ctrl+F) and search for SetupSourcePath. You will need to change the default "\" to reflect the directory you copied your Server 2003 cd to. In this case it is "\SETUP\Server2003\Standard\"
SetupSourcePath = "\SETUP\Server2003\Standard\" http://flyakite.msfnhosting.com/server2003.htm (3 of 4)3/28/2004 5:41:03 PM
Windows Server 2003
Creating the Boot Sector
Now we will need to create the boot sector file that will actually load the text-mode setup for our operating system. Download the 3ALL.zip file. Extract the files and then open 3STD.dat in Hex Workshop. Scroll down until you see the following text in the right hand side. The red text is what we will be replacing. Replace I386 with 3STD.
Save the file, choose not to back it up and then place it in the AIO-DVD folder.
Finishing Up
Navigate to your setup folder \AIO-DVD\SETUP\Server2003\Standard\ and copy (not move) the following files into the root folder, AIO-DVD.
l
readme.html
l
win51s (Standard only)
l
win51d (Datacenter only)
l
win51a (Enterprise only)
l
win51b (Web only)
http://flyakite.msfnhosting.com/server2003.htm (4 of 4)3/28/2004 5:41:03 PM
Windows 2000
:: Windows 2000 SP4 ::
Copying the CD Contents
Inside of your SETUP folder which should be in AIO-DVD create a folder called 2000.
eg. - D:\AIO-DVD\SETUP\2000\
Inside of this folder create a folder for each edition of 2000 that you are including. For my DVD I have AdvServer, Professional, and Server . Copy the entire 2000 cds into their corresponding folders.
Examples:D:\AIO-DVD\SETUP\2000\AdvServer\D:\AIO-DVD\SETUP\2000\Professional\D:\AIO-DVD\SETUP\2000\Server\
NOTE: For this guide, we will be using 2000 Professional for the examples. If adding Advanced Server or Server editions just change the necessary elements to fit your needs.
Creating the Boot Folder
If you've already gone through any of the XP sections on this site, you have probably used the method that I discovered from gosh to create the boot folders. However, when creating this DVD from inside of any XP based OS, we cannot go that route.
So, there are a few things we can do:
1.
The first and easiest thing you can try is using the boot folders that I am providing from my own DVD. I currently only have boot folders for Professional SP4 and Server SP4. If you use this method, just download the proper zip file and extract the contents into our AIO-DVD folder. Examples:D:\AIO-DVD\2PRO\D:\AIO-DVD\2SRV\
2.
This method is bit more complicated and time consuming, but it's the best way and worth it. We CAN use gosh's method as for the XP operating systems, however we must do it from a Windows 2000 installation. I chose to install an ISO image of 2000 Professional in VMware. I then copied the contents of the ISO into a folder on the virtual installation's desktop, and slipstreamed SP4 into the source files. (To move files or folder in or out of VMware and onto your PC, you will need to install VMware tools)Afterwards I ran winnt32.exe from the i386 folder. Windows 2000 setup should come up. Choose "New Installation" and go through the options as usual. Do NOT download updated setup files. At the "Setup Options" screen, click on "Advanced Options" and make sure "copy all installation files from the CD" is checked. If it is grayed out don't worry about it. When it's done do NOT let it reboot.
http://flyakite.msfnhosting.com/2000.htm (1 of 4)3/28/2004 5:41:04 PM
Windows 2000
Setup should create 2 folders in the root of your main drive. They will be hidden so make sure "Show hidden files and folders" is enabled.$WIN_NT$.~BT - the boot folder $WIN_NT$.~LS - installation files folderRename $WIN_NT$.~BT to 2PRO and move the entire folder out of VMware and into our AIO-DVD folder.eg. - D:\AIO-DVD\2PRO\Now in the 2PRO folder delete the following files:BOOTSECT.DAT migrate.inf winnt.sif
3.
If you have Windows 98 or 2000 already installed on a real computer, copy the entire CD to the desktop. Slipstream SP4 if you want (there are countless guides out there on how to do this). Then run winnt32.exe and follow the instructions in the 2nd paragraph of choice 2.
4.
Find boot disk files for whichever Windows 2000 edition you are using with the right service pack, and extract all of the files into the right boot folders.
IMPORTANT: If you used methods 2 or 3, it expects us to be installing a new operating system the next time we reboot, so setup adds an extra boot option in the boot.ini file and changes the default boot choice to it. If you followed the instructions in "Getting Started", you should have made a copy of your boot.ini file. Take this copy, and copy it back over the boot.ini file in the C:\. Don't get rid of your original boot.ini, you will need it again if you plan on using other portions of this guide to add more operating systems.
If you don't have a backup of your boot.ini file, you can edit it yourself. This is what it normally looks like if you have 2000 installed on the first or only partition of your hard drive:
[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINNT [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows 2000 Professional " /fastdetect
Editing "setupldr.bin"
Let's start modifying some files. First in your 2PRO directory open up the file setupldr.bin in Hex Workshop. Under Edit -> Replace (Ctrl+H) search for Type: "Text String." We want to find i386 and replace it with 2PRO. The screenshot below is just for reference.
http://flyakite.msfnhosting.com/2000.htm (2 of 4)3/28/2004 5:41:04 PM
Windows 2000
Click OK and then choose Replace All. It should say "3 Occurrences Replaced." If it does not find 3 occurrences, there may be a problem somewhere. When done, save the file and choose not to back it up.
Editing "txtsetup.sif"
In your 2PRO folder find the file txtsetup.sif and open it in NotePad. Choose Edit -> Find (Ctrl+F) and search for SetupSourcePath. You will need to change the default "\" to reflect the directory you copied your XP Pro cd to. In this case it is "\SETUP\2000\Professional\"
SetupSourcePath = "\SETUP\2000\Professional\" http://flyakite.msfnhosting.com/2000.htm (3 of 4)3/28/2004 5:41:04 PM
Windows 2000
Creating the Boot Sector
Now we will need to create the boot sector file that will actually load the text-mode setup for our operating system. Download the 2ALL.zip file. Extract the file and then open 2PRO.dat in Hex Workshop. Scroll down until you see the following text in the right hand side. The red text is what we will be replacing. Replace I386 with 2PRO.
Save the file, choose not to back it up and then place it in the AIO-DVD folder.
Finishing Up
Navigate to your setup folder \AIO-DVD\SETUP\2000\Professional\ and copy (not move) the following files into the root folder, AIO-DVD.
l
readme.doc
l
spnotes.htm
l
cdrom_nt.5
l
cdrom_is.5 (2000 Server only)
l
cdrom_ia.5 (2000 Advance Server only)
l
cdrom_ip.5 (2000 Professional only)
http://flyakite.msfnhosting.com/2000.htm (4 of 4)3/28/2004 5:41:04 PM
Windows 98 SE
:: Windows 98 SE ::
Copying the CD Contents
Inside of your SETUP folder which should be in AIO-DVD create a folder called 98SE.
eg. - D:\AIO-DVD\SETUP\98SE\
Copy the entire 98 Second Edition cd to the 98SE folder.
Creating the Boot Image
Only the NT based operating systems use the boot folder method to startup, so we have to take a slightly different approach for Windows 98.
The easiest way to do this is to just download my 98SE.zip file and extract the file within it into your AIO-DVD folder. However, if you'd like to learn how to actually create and edit the image, then please feel free to read on.
You will need a Windows 98 SE OEM boot disk or just a Windows 98 OEM boot disk if not using an SE cd. You can find a boot disk for either version here. Extract the .IMA file from the downloaded exe file with WinRAR. WinRAR will give you an error message about the archive being corrupt but ignore it.
Editing "autoexec.bat"
Now, we need to edit the files autoexec.bat and config.sys. Open the .ima file with WinImage. Drag the files from WinImage to your desktop. Right click autoexec.bat and choose "Edit".
http://flyakite.msfnhosting.com/98se.htm (1 of 3)3/28/2004 5:41:06 PM
Windows 98 SE
Edit the "EXT:" section to show this IF in your "\SETUP\98SE\WIN98\" folder you have a file called oemsetup.exe.
:EXT%RAMD%:\extract /y /e /l %RAMD%: ebd.cab > NULecho The diagnostic tools were successfully loaded to drive %RAMD%.echo.LH %ramd%:\MSCDEX.EXE /D:mscd001 /L:%CDROM%echo.clsecho Now installing Windows 98 SEecho.
http://flyakite.msfnhosting.com/98se.htm (2 of 3)3/28/2004 5:41:06 PM
Windows 98 SE
echo Loading...path=%RAMD%:\;a:\;%CDROM%:\SETUP\98SE\WIN98\OEMSETUP.EXEecho.GOTO QUIT
If your cd does not contain the oemsetup.exe file, then copy that code and edit the bold line to point to your normal setup.exe file. It will more than likely read this:
path=%RAMD%:\;a:\;%CDROM%:\SETUP\98SE\SETUP.EXE
NOTE: Make sure there is NO extra white space (blank spaces) at the end of your lines in your autoexec.bat file. If you copy and pasted that code there shouldn't be, but double check to make sure.
Editing "config.sys"
Right click config.sys and choose "Open With...". In the dialog box that comes up click "Open With..." then "Select the program from a list". Now edit the file to show this and ONLY this.
files=10buffers=10dos=high,umbstacks=9,256lastdrive=zdevice=himem.sys /testmem:offdevice=oakcdrom.sys /D:mscd001device=btdosm.sysdevice=flashpt.sysdevice=btcdrom.sys /D:mscd001device=aspi2dos.sysdevice=aspi8dos.sysdevice=aspi4dos.sysdevice=aspi8u2.sysdevice=aspicd.sys /D:mscd001devicehigh=ramdrive.sys /E 2048
Finishing Up
Drag the edited autoexec.bat and config.sys back into WinImage. It will ask if you want to inject the files. Choose "Yes" and then when it asks if you want to replace the existing files. Click "All". Now save the file File -> Save and then close WinImage.
Rename your file to 98SE.IMA and copy it into your AIO-DVD folder.
http://flyakite.msfnhosting.com/98se.htm (3 of 3)3/28/2004 5:41:06 PM
Windows ME
:: Windows ME ::
Copying the CD Contents
Inside of your SETUP folder which should be in AIO-DVD create a folder called ME.
eg. - D:\AIO-DVD\SETUP\ME\
Copy the entire Millenium Edition cd to the ME folder.
Creating the Boot Image
Only the NT based operating systems use the boot folder method to startup, so we have to take a slightly different approach for Windows 98.
The easiest way to do this is to just download my ME.zip file and extract the file within it into your AIO-DVD folder. However, if you'd like to learn how to actually create and edit the image, then please feel free to read on.
You will need a Windows ME OEM boot disk. You can find a boot disk here. NOTE: Download the "Windows 98 SE OEM" boot disk (this method is the easiest). Extract the .IMA file from the downloaded exe file with WinRAR. WinRAR will give you an error message about the archive being corrupt but ignore it.
Editing "autoexec.bat"
Now, we need to edit the files autoexec.bat and config.sys. Open the .ima file with WinImage. Drag the files from WinImage to your desktop. Right click autoexec.bat and choose "Edit".
http://flyakite.msfnhosting.com/me.htm (1 of 3)3/28/2004 5:41:11 PM
Windows ME
Edit the "EXT:" section to show this exactly. If the location of your setup.exe file is different, then copy this code for your "EXT:" section and change the line in bold to reflect the location of your file.
:EXT%RAMD%:\extract /y /e /l %RAMD%: ebd.cab > NULecho The diagnostic tools were successfully loaded to drive %RAMD%.echo.LH %ramd%:\MSCDEX.EXE /D:mscd001 /L:%CDROM%echo.clsecho Now installing Windows MEecho.
http://flyakite.msfnhosting.com/me.htm (2 of 3)3/28/2004 5:41:11 PM
Windows ME
echo Loading...path=%RAMD%:\;a:\;%CDROM%:\SETUP\WINME\SETUP.EXEecho.GOTO QUIT
NOTE: Make sure there is NO extra whitespace (blank spaces) at the end of your lines in your autoexec.bat file. If you copy and pasted that code there shouldn't be, but double check to make sure.
Editing "config.sys"
Right click config.sys and choose "Open With...". In the dialog box that comes up click "Open With..." then "Select the program from a list". Now edit the file to show this and ONLY this.
files=10buffers=10dos=high,umbstacks=9,256lastdrive=zdevice=himem.sys /testmem:offdevice=oakcdrom.sys /D:mscd001device=btdosm.sysdevice=flashpt.sysdevice=btcdrom.sys /D:mscd001device=aspi2dos.sysdevice=aspi8dos.sysdevice=aspi4dos.sysdevice=aspi8u2.sysdevice=aspicd.sys /D:mscd001devicehigh=ramdrive.sys /E 2048
Finishing Up
Drag the edited autoexec.bat and config.sys back into WinImage. It will ask if you want to inject the files. Choose "Yes" and then when it asks if you want to replace the existing files. Click "All". Now save the file File -> Save and then close WinImage.
Rename your file to ME.IMA and copy it into your AIO-DVD folder.
http://flyakite.msfnhosting.com/me.htm (3 of 3)3/28/2004 5:41:11 PM
ERD Commander 2003
:: ERD Commander 2003 ::
There are many different configurations for ERD Commander 2003, and I am only explaining the way mine is set up. Yours may differ, but hopefully you can use the information here to suite your needs
ERD Commander 2003 is a tad different than XP. Basically, it has no setup folder. It's boot folder IS it's setup folder, because ERD runs from the DVD and doesn't actually install anything to a fixed disk.
Copying the ERD Commander 2003 Contents
Inside of your AIO-DVD folder create a folder called ERD1.
eg. - D:\AIO-DVD\ERD1\
Copy the entire contents of the ERD Commander 2003 i386 folder into the ERD1 folder. Your folder contents should look something like this:Contents of D:\AIO-DVD\ERD1\ FONTS HELP INF MSAGENT SYSTEM32 UTILS WINSXS biosinfo.inf ntdetect.com setupldr.bin spcmdcon.sys txtsetup.sif
IF your directory doesn't at least look something like this you need to find the folder that contains the system32 and winsxs folders. The entire contents of that folder should be copied straight to the ERD1 directory.
Editing "setupldr.bin"
Let's start modifying some files. First in your ERD1 directory open up the file setupldr.bin in Hex Workshop. Under Edit -> Replace (Ctrl+H) search for Type: "Text String." We want to find i386 and replace it with ERD1. The screenshot below is just for reference.
http://flyakite.msfnhosting.com/erd_commander.htm (1 of 4)3/28/2004 5:41:13 PM
ERD Commander 2003
Click OK and then choose Replace All. It should say "4 Occurrences Replaced." If it does not find 4 occurrences, there may be a problem somewhere. When done, save the file and choose not to back it up.
Editing "txtsetup.sif"
In your HOM1 folder find the file txtsetup.sif and open it in NotePad. Choose Edit -> Find (Ctrl+F) and search for SetupSourcePath. You will need to change the default "\" to reflect the directory you copied your XP Home cd to. In this case it is "\".
SetupSourcePath = "\"
Note: This image is from XP Pro SP1 section. Do NOT change it to show what the picture shows.
http://flyakite.msfnhosting.com/erd_commander.htm (2 of 4)3/28/2004 5:41:13 PM
ERD Commander 2003
Creating the Boot Sector
Now we will need to create the boot sector file that will actually load the text-mode setup for our operating system. Download the ERD1.zip file. Extract the file and then open ERD1.dat in Hex Workshop. Scroll down until you see the following text in the right hand side. The red text is what we will be replacing. Replace I386 with ERD1.
Save the file, choose not to back it up and then place it in the AIO-DVD folder.
Finishing Up
There's one last thing to do now. We need to copy our cd identification files to the root of our project. The following files need to be copied from your ERD Commander 2003 cd to your AIO-DVD folder:
l
winbom.ini
l
win51
l
win51ip
l
win51ip.sp1
Extra Boot Option
Thanks to gosh from MSFN for this tip. If you would like to be able to switch cds while using ERD, you have to set up a special boot option that will load ERD Commander 2003 into ram.
First of all, create a new folder called ERD2 in AIO-DVD and copy the entire contents of ERD1 into it.
http://flyakite.msfnhosting.com/erd_commander.htm (3 of 4)3/28/2004 5:41:13 PM
ERD Commander 2003
Now, edit setupldr.bin to reflect the new folder. Then, edit the "OsLoadOptions" line in txtsetup.sif to read:
OsLoadOptions ="/fastdetect /minint /inram"
Now, create a copy of the ERD1.DAT file, place it in the AIO-DVD folder and rename it to ERD2.DAT. Open it in Hex Workshop and this time change what now reads ERD1 to ERD2. We also need to setup our boot menu to be able to load ERD. Only do this once you have read through "Creating a Boot Menu" and you are somewhat comfortable with CD Shell.
In your "menu:" section you should add something along these lines: Of course edit the code to display whatever you want.
print "8) ERD Commander 2003 \n"print "9) ERD Commander 2003 /inram \n"
Now in the "MainKey:" section add something along the lines of:
if $lastKey == key[8]; then chain /ERD1.DATif $lastKey == key[9]; then chain /ERD2.DAT
http://flyakite.msfnhosting.com/erd_commander.htm (4 of 4)3/28/2004 5:41:13 PM
Windows Longhorn 4051
:: Windows Longhorn 4051 ::
Copying the CD Contents
Copy the SOURCES folder from the Longhorn cd into the AIO-DVD folder.
eg. - D:\AIO-DVD\SOURCES\
Renaming the CD Shell Folder
Longhorn has a seperate boot folder already on the cd. This makes things a little easier, except for the fact that it is named BOOT which is what the base folder for the new version of CD Shell is now called. So, we have to rename one of the folders. I've tried renaming the Longhorn boot folder and it is much more complex than I would like to deal with, so we are going to rename the CD Shell folder.
Rename the CD Shell folder from BOOT to CDSH.
Now copy the BOOT folder from the Longhorn cd into the AIO-DVD folder.
Editing "cdsh.bin"
In your new CDSH directory open up the file cdsh.bin in Hex Workshop. Under Edit -> Replace (Ctrl+H) search for Type: "Text String." We want to find /boot and replace it with /cdsh, as shown in the screenshot below.
http://flyakite.msfnhosting.com/longhorn.htm (1 of 3)3/28/2004 5:41:14 PM
Windows Longhorn 4051
Click OK and then choose Replace All. It should say "1 Occurrence Replaced." If it finds more than 1 occurrence, there may be a problem somewhere. When done, save the file and choose not to back it up.
Editing "loader.bin"
In your new CDSH directory open up the file loader.bin in Hex Workshop. Under Edit -> Replace (Ctrl+H) search for Type: "Text String." We want to find /boot and replace it with /cdsh, just as in the screenshot above.
Click OK and then choose Replace All. It should say "1 Occurrence Replaced." If it finds more than 1 occurrence, there may be a problem somewhere. When done, save the file and choose not to back it up.
Creating the Boot Sector
http://flyakite.msfnhosting.com/longhorn.htm (2 of 3)3/28/2004 5:41:14 PM
Windows Longhorn 4051
Now we will need to create the boot sector file that will actually load the text-mode setup for our operating system. Download the 4051.zip file. Extract the file and then open 4051.dat in Hex Workshop. Scroll down until you see the following text in the right hand side. The red text is what we will be replacing. Replace I386 with 4051.
Save the file, choose not to back it up and then place it in the AIO-DVD folder.
Finishing Up
Copy the following files from the Longhorn cd to the AIO-DVD folder. Overwrite any previous files that are there if asked.
l
readme.htm
l
win51
l
win51ip
l
winbom.ini
http://flyakite.msfnhosting.com/longhorn.htm (3 of 3)3/28/2004 5:41:14 PM
Adding Unattended
:: Adding Unattended ::
What does Unattended Mean?
If you're looking at this section, and this is the first time you've heard anything about unattended installatoins, then you need to check out Creating an Unattended Windows XP CD.
How To
Okay so great, we've almost got our DVD done, now what if we wanted to add all of our unattended installation files?
Well, it's very easy actually. First of all, copy your $OEM$ folder to the same directory as your i386 folder, so that they are parallel.
Example:D:\AIO-DVD\SETUP\XP\Professional\i386\ D:\AIO-DVD\SETUP\XP\Professional\$OEM$\
Now, all you have to do is take your winnt.sif answer file and place it into the boot folder for that operating system, which in this example would be PRO1.
Multiple OS Boot Options
But wait, there is more! Most of us who are taking on a project such as this will probably be using our DVD to help our friends/family/co-workers. So if we are re-installing XP on someone else's computer, we don't want all of our unattended information and programs being installed as well. Luckily, there is a simple fix to this.
To allow ourselves to be able to install a regular OS installation or an unattended installation, we will need multiple boot options for that OS. To do this, we must create multiple boot folders and boot sectors.
Taking XP as the example, copy the PRO1 folder, paste it back into the AIO-DVD folder and rename it from Copy of PRO1 to PRO2. Do the same thing with PRO1.DAT and rename it to PRO2.DAT. So now we should have two folders and two DAT files with the same contents:
D:\AIO-DVD\PRO1\D:\AIO-DVD\PRO2\D:\AIO-DVD\PRO1.DATD:\AIO-DVD\PRO2.DAT http://flyakite.msfnhosting.com/unattended.htm (1 of 2)3/28/2004 5:41:17 PM
Adding Unattended
Now we need to edit setupldr.bin in the PRO2 folder so that all references to PRO1 now point to PRO2, and hex-edit PRO2.DAT so that it points to PRO2 as well.
If you want the first boot option to be a regular installation and the second option to be an unattended installation, add your winnt.sif file to the PRO2 folder.
All that's left is to add the correct entries to our boot menu so we can select different installation options. The following is an example of what I mean:
XP_Pro:print c "\n\cXXMicrosoft Windows XP Professional SP1 Corporate \n"print "1) Regular \n"print "2) Unattended \n" XP_Pro_Key:if $lastKey == key[1]; then chain /PRO1.DATif $lastKey == key[2]; then chain /PRO2.DAT
http://flyakite.msfnhosting.com/unattended.htm (2 of 2)3/28/2004 5:41:17 PM
Custom "setup.exe" autorun file
:: Custom "setup.exe" Autorun File ::
Coming Soon! (Again)
http://flyakite.msfnhosting.com/customautorun.htm3/28/2004 5:41:21 PM
CD Shell Boot Image
:: CD Shell Boot Image ::
Change the CD Shell Boot Image
When your DVD boots up CD Shell displays an image for a few seconds and then displays your custom menu. Well this section will help you change that image to whatever you want. In the tools folder that was included in the CD Shell zip file, we will be using the convert.exe program.
Before we can convert an image however, we need a BMP file that is 640x480 in size at 24bit color depth. Save this picture into your tools folder. Now, open a command prompt and navigate to tools by typing cd D:\AIO-DVD\BOOT\tools.
Then the command you enter to convert the BMP file is:
convert -bmp2csi -o splash.csi logo.bmp
Parameters Explained
What this does is run the convert.exe program with the following options:
-bmp2csiSays we are converting a bmp file to a csi file.
-o splash.csiSays to call the new file splash.csi
logo.bmpName of our 640x480 bmp file to convert.
Finishing Up
Copy your newly created CSI file into the \BOOT\graphics\ folder. It must be named splash.csi to work properly.
http://flyakite.msfnhosting.com/cdshellimage.htm3/28/2004 5:41:22 PM
Partition Magic, Ghost, etc.
:: Support Tools ::
I would like to thank iCEhOT from the MSFN forums for providing me with the correct way to make these image files.
Creating Additional Image Files
If you would like to add tools to your DVD such as Partition Magic 8, Ghost, or any other tools that use bootable diskettes it is a simple process. Just follow these steps.
1.
Open WinImage.
2.
Insert the first floppy disk into your computer. Go to Disk -> Read Disk (Ctrl+R)
3.
If including a second floppy insert it into your drive. Go to Image -> Change format... and select 2.88 MB. Next select Image -> Inject... Browse to your floppy drive, select all of the files, and then choose Open. It will ask if you want to inject the files, choose Yes.
4.
Now save the file: File -> Save. Give the image file a name and save as an IMA file by selecting "Image file (*.IMA)" in the "Save as type:" drop-down box .
5.
Once saved, move the file into the AIO-DVD folder if you didn't already save it to there.
6.
Create the appropriate entry for your new image file in your boot menu.
To access the image files on your DVD you will have to setup boot menu to access the image file. Please consult the "Creating a Boot Menu" section for more information.
http://flyakite.msfnhosting.com/imgfiles.htm3/28/2004 5:41:23 PM
Creating a Boot Menu
:: Creating a Boot Menu ::
To create our boot menu we will be using CD Shell 2.0.11. If you choose to use the old diskemu.cmd method, you are more than welcome to. However, that method will not be discussed here. There are many benefits to using CD Shell. Directory listing in CD Shell is more organized and clean looking. You can use colors. You can view .txt files without having to open them in the ugly blue DOS "Edit" screen. You can even debug your menus without having to burn a cd or load an ISO into Virtual PC or VMware.
You can find my actual CD Shell file in the "Downloads" section. Take a look at my cdshell.ini file while you read through this to get an understanding of how CD Shell scripting works. If you copy this file into your BOOT folder and run the debugger, you can see exactly how my boot menu looks and operates. Don't worry about accidently running some program, the debugger will not actually execute any files if you choose any of the options, but it gives you an idea of what happens.
Here is an example of a possible boot menu created with CD Shell:
If you followed the "Getting Started" guide you should have a folder called BOOT in your AIO-DVD directory. The cdshell.ini file is what will contain the code for our menu. Open that file in Notepad or your favorite text editor.
http://flyakite.msfnhosting.com/bootmenu.htm (1 of 7)3/28/2004 5:41:25 PM
Creating a Boot Menu
About CD Shell Scripting
CD Shell uses an extensive scripting language to create the boot menu, much like writing php or java scripts. There is much more it can do than I will be covering in this guide, but I will provide you with the information to get your boot menu up and working.
For more information and help with CD Shell please consult the following site: http://www.cs.uic.edu/~mter/cdshell/buildcd.html
More documentation is available on that site under Information -> Documentation.
Creating Sections
Sections are used to keep the code clean and organized, and allow commands to jump to certain sections to execute specific code. To create a section type the name of the section followed by a colon. I like to call my very first section menu:. Keep in mind that code is executed exactly in the order it is listed. So always make sure that after operating system sections to create a key section for that OS. You will see what I mean when we get to Operating System Sections.
Examples of sections:
boot:xp_pro:moreoptions
Printing the Interface
clsprint "1) Windows XP Professional SP1 Corporate \n"
The cls command will first clear the entire screen before printing text. ALL printed text must be enclosed in quotes. Multiple print commands can be used on a line by using a semicolon (;) after each command. The \n command creates a line return. If we wanted a space between our menu options we would just use \n\n after the first print command or before the next print command.
To center, left align, or right align text, use the c, l, and r commands.
print c "This is an example of centered text"
If you just want a comment, use the # character.
# This is a comment. It will not print anything on the screen.
http://flyakite.msfnhosting.com/bootmenu.htm (2 of 7)3/28/2004 5:41:25 PM
Creating a Boot Menu
User Input
Let's create a section called MainKey:. This section should be placed after the menu: section. Here are the first two lines of my MainKey section:
MainKey:getkey 20 boot 0x80if $lastKey == key[1]; then goto XP_Pro
The first line creates the section name. The second line uses the getkey command to catch the key the user presses. The 20 is a timeout. It means that if no key is pressed within 20 seconds, the command boot 0x80 will run. boot 0x80 boots the first hard drive on the system. If no OS is installed then nothing will boot of course. You do not have to include a timeout. If you don't, the menu will stay on the screen until you do something.
The last line uses an if command to check the key press. It says that if the last key pressed was "1", then it will goto the XP_Pro section.
Running Files and Jumping to Sections
chain /PRO1.DATRuns the PRO1.DAT file. The forward slash "/" tell CD Shell that PRO1.DAT is in the root of the cd.
memdisk /98SE.IMARuns the image of our 98 SE boot disk to start the setup for Windows 98 SE. The memdisk command must be used for image files (.IMG or .IMA).
goto XP_Pro:Jumps to the "XP_Pro:" section and executes the code there.
type /example.txt Prints the contents of example.txt onto the screen. It does not actually open the file, it just inputs the contents onto the screen.
Operating System Sections
Using the "User Input" directions as an example, let's now create a section called XP_Pro:. Each OS section must also be followed by it's own key section. This section will create a new menu with our XP options. Here is my "XP_Pro" section code. Note that the "Ä" character when used repeatedly will print a continuous line, instead of using hyphens which produces something like "-----".
http://flyakite.msfnhosting.com/bootmenu.htm (3 of 7)3/28/2004 5:41:25 PM
Creating a Boot Menu
XP_Pro:clsprint r "\n\cXXPress \c0BF1 \cXXfor Help \n"print c "\n\cXXMicrosoft Windows XP Professional SP1 Corporate \n"print c "\cXXÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ \n"print "1) Regular \n"print "2) Unattended \n"print "3) OEMPreinstall \n"print c "\n\n"print "Press any key to return to main menu... \n"XP_Pro_Key:getkey 20 goto menuif $lastKey == key[1]; then chain /PRO1.DATif $lastKey == key[2]; then chain /PRO2.DATif $lastKey == key[3]; then chain /PRO3.DATif $lastKey == key[F1]; then goto Helpgoto menu
Here is what happens. The computer prints what is in the XP_Pro: section and then continues on to the next section XP_Pro_Key:, which uses the getkey command. So the computer waits for a key press. If the key pressed is "1", then the computer will then proceed to run the PRO1.DAT file which should begin the XP setup process. If no key is pressed in 20 seconds CD Shell will jump back to the main menu.
IF you only want one option for XP and do not need the extra menu, then skip the "XP_Pro:" and "XP_Pro_Key:" sections and in the User Input part of this guide:
if $lastKey == key[1]; then goto XP_Pro
can be changed to
if $lastKey == key[1]; then chain /PRO1.DAT
More Options
I use a MoreOptions: section in my menu for things like Partition Magic 8.0, Norton Ghost, viewing serial numbers, etc. You will need to create the proper entries in your "menu:" and "MainKey:" sections of your "cdshell.ini" file.
MoreOptions:clsprint r "\n\cXXPress \c0BF1 \cXXfor Help \n"print c "\n\cXXMore Options \n"print c "\cXXÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ \n"print "1) Read/Copy Files From NTFS Volumes To FAT32/16 Drives \n"print "2) Partition Magic 8.0 \n"print "3) Norton Ghost \n"print "4) View Serial Numbers \n"
http://flyakite.msfnhosting.com/bootmenu.htm (4 of 7)3/28/2004 5:41:25 PM
Creating a Boot Menu
print c "\n\n"print "Press any key to return to main menu... \n"MoreOptions_Key:getkey 20 goto menuif $lastKey == key[1]; then memdisk NTFS.IMAif $lastKey == key[2]; then memdisk PM8.IMGif $lastKey == key[3]; then memdisk GHOST.IMAif $lastKey == key[4]; then goto SerialNumbersgoto menu
Setting Colors - OPTIONAL
I would worry about setting colors AFTER you have everything else working and down pat.
Use the following commands at the very beginning of your first section to set colors for the whole boot menu.
menu:set textColor= color[grey on black]set boldColor= color[cyan on black]
Valid color names are: black, blue, green, cyan, red, magenta, brown, grey, brightgrey, brightblue, brightgreen, brightcyan, brightred, brightmagenta, yellow, and white.
To highlight specific portions of text with a different color use the \cXX and \cxx commands. \cXX indicates that the text following it is the bold color, and \cxx says the text following it reverts back to normal color. If you want to use more colors without having to set the color each time, then XX will be replaced with two numbers, the first indicating the background color and the second indicating the text color. So:
print "\cXXThis text is boldcolor. \cxxThis text is normal color."
Prints "This text is boldcolor" in cyan on black and then prints "This text is normal color." in grey on a black background
Code
Color
Code
Color
0
black
8
grey
1
blue
9
brightblue
2
green
A
brightgreen
3
cyan
B
brightcyan
4
red
C
brightred
5
magenta
D
brightmagenta
6
brown
E
yellow
http://flyakite.msfnhosting.com/bootmenu.htm (5 of 7)3/28/2004 5:41:25 PM
Creating a Boot Menu
7
brightgrey
F
white
So if you look at the screen shot at the beginning of the guide and the following code you can see what happens:
print l "\cXXPress \c0BF1 \cXXfor Help"; print r "\c0Bckite@portraitofakite.com \n"
The word "Press" is printed in cyan on a black background, then "F1" is printed in bright cyan on a black background. "For Help" is printed in the cyan again, and then my e-mail is printed again in the brightcyan color.
The End
The very last line of your cdshell.ini file MUST read end.
end
That's all. The end command signifies the end of the script and will bring you to a cd shell command prompt. It is much like a dos command prompt but supports more commands and has a nicer directory listing display. Type HELP at the prompt to see all what you can do.
Debugging
One of the greatest things about cdshell is debugging. To debug just double click the file cdshw.com in the BOOT folder. This will run a simulation of what the boot process will look like. Don't worry about accidentally installing XP or anything like that, because the debugger does not allow actual commands to be executed. To exit the debugger type exit at the command prompt. If you can't access the command prompt then just Ctrl+Alt+Del out.
Extra Fun
The following code I place as the VERY beginning code in my cdshell.ini file. It does a few things:
First, it starts off with a boot: section. This section first prints "Press enter to boot from DVD..." before the menu. If Enter is not pressed in 5 seconds, it boots whatever OS is loaded onto the first hard drive and skips the menu.
The next two sections are custom functions I wrote to print out the current date and time. An example of this can be seen in the screen shot at the top of this page.
http://flyakite.msfnhosting.com/bootmenu.htm (6 of 7)3/28/2004 5:41:25 PM
Creating a Boot Menu
boot:clsprint "\n"print "Press Enter to boot from DVD... \n"getkey 5 boot 0x80if $lastKey == key[enter]; then goto time# When no key found...goto boot
# Function to display time of daytime:set hour = $timeHourset ampm = "am"if $timeHour > 12; then set hour = $timeHour - 12if $timeHour > 12; then set ampm = "pm"set time = "$hour:$timeMinute$ampm"
# Function to display datedate:set month = "n/a"if $dateMonth == 1; then set month = "Jan."if $dateMonth == 2; then set month = "Feb."if $dateMonth == 3; then set month = "Mar."if $dateMonth == 4; then set month = "Apr."if $dateMonth == 5; then set month = "May."if $dateMonth == 6; then set month = "Jun."if $dateMonth == 7; then set month = "Jul."if $dateMonth == 8; then set month = "Aug."if $dateMonth == 9; then set month = "Sep."if $dateMonth == 10; then set month = "Oct."if $dateMonth == 11; then set month = "Nov."if $dateMonth == 12; then set month = "Dec."set date = "$month$dateDay,$dateYear"
To print the line with the time and date in it I use this piece of code:
print c "\n\cXXÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ<\c0B$time $date\cXX>ÄÄ \n\n"
http://flyakite.msfnhosting.com/bootmenu.htm (7 of 7)3/28/2004 5:41:25 PM
Downloads
:: Downloads ::
PDF Site Versions
Creating a Multi-Boot DVD - Updated 03/03/04Creating an Unattended CD - Updated 03/01/04
DAT Files
Windows XP Pro SP1Windows XP Home SP1Windows 2000Windows Server 2003ERD Commander 2003
Boot Folders
Windows 2000 ProfessionalWindows 2000 Server
IMA Files
Windows 98 SEWindows ME
CD Shell
cdshell.inisplash.csi
Miscellaneous
CDIMAGELonghorn "setup.exe"
http://flyakite.msfnhosting.com/downloads.htm (1 of 2)3/28/2004 5:41:29 PM
My DVD Layout
:: My DVD Layout ::
In case some of you are still slightly confused, I have decided to layout how my DVD is setup for you.
Hopefully this helps!
Folders in bold expand! Just click on them and they will open up.
l D:\
m cdimage.exe
m makeiso.bat
m AIO-DVD
n 2PRO
n 2SRV
n 3DCT
n 3ENT
n 3STD
n 3WEB
n BOOT
n cdshell.ini
n ERD1
n ERD2
n HOM1
n PRO1
n PRO2
n PRO3
n SETUP
n 98SE
n 2000
n Professional
n Server
n ME
n Server2003
n DataCenter
n Enterprise
n Standard
n Web
n XP
n Home
n Professional
n $OEM$
n I386
n WINBOM.INI
n CDROM_S.40
n CDROM_IP.5
n CDROM_IS.5
n CDROM_NT.5
n 2PRO.DAT
n 2SRV.DAT
n 3DCT.DAT
n 3ENT.DAT
n 3STD.DAT
n 3WEB.DAT
n ERD1.DAT
http://flyakite.msfnhosting.com/mydvdlayout.htm (1 of 2)3/2/2004 8:18:46 PM
My DVD Layout
n ERD2.DAT
n HOM1.DAT
n PRO1.DAT
n PRO2.DAT
n PRO3.DAT
n WIN51
n WIN51IA
n WIN51IB
n WIN51IC
n WIN51ID
n WIN51IP
n WIN51IS
n README.HTM
n spnotes.htm
n README.DOC
n WIN51IC.SP1
n WIN51IP.SP1
n READ1ST.TXT
n SERIALNUMBERS.TXT
n CDROMSP4.TST
n 98SE.IMA
n DOS.IMG
n NTFS.IMA
n PM8.IMG
http://flyakite.msfnhosting.com/mydvdlayout.htm (2 of 2)3/2/2004 8:18:46 PM
Summary
:: Summary ::
This section of the site will sum up the basics of setting up NT and non-NT based operating systems for a multi-boot CD or DVD.
NT Based Operating SystemsWindows XP Pro, XP Home, 2000, NT 4.0, etc.
A normal NT based operating system has the i386 folder in the root of the cd. This directory also contains the files necessary to boot that certain OS. When a bootable CD or DVD is made, generally a file named xpboot.bin is used to create the proper boot sector.
This is what happens when the disc boots:
1.
The bootsector tells the computer to look in i386 for setupldr.bin.
2.
setupldr.bin instructs the computer to look for a file called txtsetup.sif in i386.
3.
txtsetup.sif contains the information needed to run the text-mode installation for the operating system.
When modifying an operating system install for a multi-boot dvd, we must do a few things.
1.
A new 4 letter boot folder must be created outside of the folder that the operating system cd was copied to. This folder will contain the files necessary to start the installation of a particular operating system..
2.
setupldr.bin must be edited so that all references to the i386 folder are changed to the new 4 letter boot folder.
3.
The "SetupSourcePath=" line in txtsetup.sif must be edited to reflect the location of where we copied the install cd.
4.
A new boot sector must be created. The reference to i386 in the boot sector must be changed to the name of our boot folder for our OS.
5.
The boot sector is renamed to xxxx.DAT, where xxxx is the name of the boot folder that the boot sector will access (eg. - PRO1.DAT, HOM2.DAT, etc)
6.
Put all .DAT files in the root folder, which for this guide is AIO-DVD.
Non-NT Based Operating SystemsWindows 95, 98 SE, ME, etc.
A non-NT based OS generally uses a boot disk inserted into a floppy drive to start the setup for that OS. While there are Windows 98 bootable cds, the boot disk method is the easiest for us to follow.
Basic steps for setting up a non-NT based OS:
1.
Download a boot disk image or create one from an actual boot disk with WinImage.
2.
In WinImage extract the autoexec.bat and config.sys files.
3.
Edit autoexec.bat to reflect the location of the setup.exe file.
4.
Edit config.sys to include only options for booting from cd.
5.
Save file as an .IMA file.
http://flyakite.msfnhosting.com/summary.htm (1 of 2)3/28/2004 5:41:33 PM
Summary
6.
Copy all .IMA or .IMG files to the root folder, which for this guide is AIO-DVD.
http://flyakite.msfnhosting.com/summary.htm (2 of 2)3/28/2004 5:41:33 PM
Clean Up
:: Cleanup ::
For our DVD to work properly we need to do some file cleanup.
Cleanup
Use the Search feature to search the AIO-DVD folder and ALL subdirectories for the following files:
unattended.txtDelete all of these files.
bootfix.binThis file is what displays "Press any key to boot from cd....". If you don't want it to display this just delete the file and it will jump right into setup for whichever OS you chose. Otherwise leave it as is.
txtsetup.si_If any exist, these should be deleted.
setupldr.bi_If any exist, these should be deleted.
.bakDelete any backup files that may exist.
http://flyakite.msfnhosting.com/cleanup.htm3/28/2004 5:41:39 PM
Testing and Burning
:: Testing and Burning ::
Creating the ISOTo create our ISO files we will use CDIMAGE. Unfortunately there is no way to add a file to the ISO once it has been created with CDIMAGE. The only thing you can do is create a new ISO each time.
If you don't have CDIMAGE you can get it from the Getting Started section or "Downloads". I prefer to keep CDIMAGE in the same directory as my AIO-DVD folder. Example:
D:\cdimage.exeD:\AIO-DVD\
Open a command prompt and navigate to the directory you stored CDIMAGE in. Once there use this command. Please note that it is all on one line. It is only shown on two lines here due to the cell width. Note that I stored my DVD on my D:\, yours may be different.
start cdimage.exe -lAIODVD -t08/23/2001,09:00:00 -b\AIO-DVD\BOOT\loader.bin -h -n -o -m \AIO-DVD C:\AIODVD.iso
Parameters Explained
start cdimage.exeRuns the CDIMAGE program with command line arguments. Notice that no exact file location is specified. As long as cdimage.exe is in the same folder as the batch file, it is not needed. -lAIODVDGives the ISO a label of AIODVD. This can be anything you want. Please note that it is a hyphen then a lowercase L (-l) as in label, not an i or a 1 or anything else.-t08/23/2001,09:00:00Sets DVD timestamp. Leave as is.-b\AIO-DVD\BOOT\loader.binLocation of our boot sector file, loader.bin. Again, notice no exact folder location is needed as long as our root folder (AIO-DVD) resides in the same location as our batch file. -h -n -o -mSpecial switches. Leave as is.\AIO-DVDLocation of the folder that acts as the root of our DVD.C:\AIODVD.isoWhere we want our ISO file stored and what we want to call it. In this case I am calling it customdvd.iso and storing it in my C:\. You MUST have the extension listed. Your target drive where the ISO will be saved must have sufficient space. If not, you will not get an ISO file.
Occasionally CDIMAGE will say something along the lines of:
http://flyakite.msfnhosting.com/testingburning.htm (1 of 3)3/28/2004 5:41:40 PM
Testing and Burning
WARNING: These two files are identical for the first 65536 bytes, but differ at some point beyond that. This could be intentional, but it might indicate that one of these two source files is corrupt: D:\AIO-DVD\PRO1\SETUPLDR.BIN D:\AIO-DVD\PRO2\SETUPLDR.BIN
This is normal. CDIMAGE thinks that these files are supposed to be identical since their contents are almost the exact same. However, we both know that each one specifies a different boot folder and are supposed to be different. Therefore, you can disregard this message.
Automate the ISO Creation
A good idea is to make a batch file that you can run whenever you want to make the ISO. The following code is only 2 lines in the .bat file. If copied and pasted you shouldn't have a problem. Just modify it to suit your specific needs.DEL C:\*.ISOstart cdimage.exe -lAIODVD -t08/23/2001,09:00:00 -b\AIO-DVD\BOOT\loader.bin -h -n -o -m \AIO-DVD C:\AIO-DVD.iso
Testing the ISO
VMware 4.0.5 and Virtual PC 2004 are both a great way to test your ISO before burning it, and something that I HIGHLY recommend.
Virtual PC 2004
1.
Create a New PC. Name it whatever you would like.
2.
Choose Guide Me and select Windows XP as the OS.
3.
Adjust the memory allocation if you want to. Just keep it at 128+ if possible.
4.
Create a new hard disk image and name it whatever you want.
5.
Start up the new PC and then choose CD -> Capture Image. Find your ISO file.
6.
Choose PC -> Restart and you should be good to go.
VMware
1.
Create a New Virtual Machine.
2.
Choose "Custom" then choose "Windows XP Professional" as the OS.
3.
Adust the allocated RAM if needed.
4.
Set up your Network Connection. I generally choose "Do not use a network connection" because it screws with my internet.
5.
Choose "Create a new virtual disk" and then edit the size if you need to. The size is the maximum that it CAN become. If you just test and install XP and don't need 4.0GB, it won't use 4.0GB, but it can if you need to. So, if you choose to install XP OEMPreinstall and know you will need 6.0GB total for the install, change it.
6.
Once done, choose "Edit virtual machine settings". Select the CD-ROM drive and then choose
http://flyakite.msfnhosting.com/testingburning.htm (2 of 3)3/28/2004 5:41:40 PM
Testing and Burning
"Use ISO Image". Select your ISO file, hit okay, then start up your virtual machine.
Burning the ISO
Basically you just need any burner capable of burning an image file. I use Nero 6.3.0.29. Generally I just right-click my ISO file and choose "Open With..." and find the Nero executable. Nero automatically opens up with the Burn dialog. Click Burn and there you go. That's all there is to it!
http://flyakite.msfnhosting.com/testingburning.htm (3 of 3)3/28/2004 5:41:40 PM
FAQ
:: FAQ ::
Q: This guide was great! Is there anything I can do to repay you?
A: Yes actually, there is. You can contact me with any possible problems you have run into or any suggestions you may have for the guide. I'm always open to new ideas. If you would like to contact me, please consult the Get Help section for more information.
----
Q: I don't have *insert OS name here*. Where can I get it?
A: http://shop.microsoft.com/
----
Q: Which do you prefer, VMware or Virtual PC?
A: While they are both great products, I prefer VMware. Everything seems to be easier to understand and I like the layout of the program. VMware also provides a nice little feature called a "Snapshot" which is very useful to me. However, VMware is not without it's problems of course. What normally does not work in VMware tends to work in Virtual PC, and vice versa.
http://flyakite.msfnhosting.com/faq.htm3/28/2004 5:41:41 PM
Get Help
:: Get Help ::
Problems
Having trouble getting something to work with your DVD? Do you have a question about something not covered here?
Ask for help at the MSFN forums, in the Multi-Boot CD/DVD section! It takes less than a minute to sign up!
General
Are there broken links? Is any information missing? Do you have any comments or suggestions on how to make the site better?
If so, then please feel free to e-mail me. You can contact me at flyakite19@hotmail.com. Please be sure to include the words multi-boot in the subject.
http://flyakite.msfnhosting.com/gethelp.htm3/28/2004 5:41:41 PM
Links
:: Links ::
If you know of a link that relates to this site and would like to see it listed here, contact me.
MSFN - Where People Go to Know For the latest news in technology, check this site out. Also stop by the forums for any questions you may have.
Creating an Unattended CDHave you ever wanted a Windows XP CD that would install Windows XP by automatically putting in your name, product key, timezone and regional settings? Followed by silently installing all your favourite applications along with DirectX 9.0b, .Net Framework 1.1 and then all the Pre-SP2 hotfixes, updated drivers, registry tweaks, and a readily patched UXTheme.dll without any user interaction whatsoever? Then this guide will show you how you can do just that!
Windows XP SP1 in 185 MBThe purpose of this guide is to remove Windows components and drivers from the installation CD, in order to save space and increase performance, both during setup and in the installed operating system. This is done by a series of batchfiles that do everything to remove files and prevent setup from displaying any errors.
Tech-Hints
CD Shell 2.0.11 CD Shell is a scriptable menu system that provides the ability to create interactive multi-boot optical discs. It will make PC-bootable compact discs or DVD's that can select from several program loaders or kernels located on the disc, or boot from other local disk drives that are attached to the system.
AutoPlay Media Studio 5.0Build professional autorun CD/DVD ROMs, interactive presentations, custom Windows software, and much more the easy way with AutoPlay Media Studio 5.0 by Indigo Rose Software. This powerful development tool will save you time, save you money, and increase the quality of your output.
DrDs Boot DisksHome of the Village Idiot's boot disks, dll's, and more...
Bootdisk.comAnother great resource for boot disks.
http://flyakite.msfnhosting.com/links.htm3/28/2004 5:41:43 PM
Screenshots
:: Screenshots ::
These are actual images from my current DVD:
This image is the "splash.csi" that CD Shell loads when first booting the DVD. To learn how to change it, read the "CD Shell Boot Image" section in "Extras".
http://flyakite.msfnhosting.com/screenshots.htm (1 of 3)3/28/2004 5:41:48 PM
Screenshots
http://flyakite.msfnhosting.com/screenshots.htm (2 of 3)3/28/2004 5:41:48 PM
Screenshots
http://flyakite.msfnhosting.com/screenshots.htm (3 of 3)3/28/2004 5:41:48 PM

Tuesday, June 23, 2009

A beginners guide to multi boot discs

A beginner's guide to multi-boot discs

This section of the forum deals with Multi-boot CDs and DVDs. Please read this small write-up attentively, as this covers many of the most frequently asked questions (FAQ) on the forum.

Example: The sort of discs you have seen in the possession of busy sys-admins, or those with a number of differently configured PCs to support. A single CD/DVD with multiple OSes on it, or multiple versions of a single OS on it can be called a "multi-boot" disc. It is so-called because it will contain multiple boot-sectors on it, extracted from different CDs/floppies, among which you can choose when you boot-up from it. This is the section where you ask questions on how to setup a DVD with, say, Windows 2000 and Windows XP which you can then select between, from a boot menu on what to install.

People normally put 2 or more types of a windows xp/2k install on one disc when they make a multi-boot disc. Or, they might go the whole hog (just for the thrills) and put ALL 5 SUPPORTED VERSIONS of windows on one DVD. The limitation to making multi-boot discs is the capacity of your media. You can use 2 approaches to solve this - one is to simply use a DVD, the other is to "optimize" your ISO-image to cut it down to be able to burn it on a CD. All processes that you need to do, are the same whether for a CD or a DVD, the only difference being that DVD gives more capacity for your software.

It is understandable, that if you haven't yet seen a multi-boot disc previously, and have only recently got the idea of making one - a multi-boot disc is an abstract concept at best, and hard to visualize. But don't mind the fact that you might be a beginner. Don't think too much about how its going to work out, just plan out what the result should be, and start off with making it. Practically making the multi-boot will start to make things clearer, and obvious bugs in the process come out into the open. Asking theoretical questions like "I'm gonna do it in such-and-such a method, will this work?" are redundant, because there's too many variables involved, and we can't say for sure. You have to practicalise to understand it.

You would normally need to carry out multiple tests of your disc before you can confirm that it is working as planned. You can simply extract the boot-sector from a CD to get it on the disc as an option, or take the floppy of your favourite bootable-diagnostic tool and make an image of it, and add it to the list. It is seen that adding Linux as an option to your multi-boot DVDs is somewhat more difficult than adding windows OSes and boot-disks - so if you wanted to try adding linux to your install disc just for the sake of doing so, don't.

You may use either CDshell or EasyBoot for the purpose of making your disc's multi-boot menu. Use a re-writable CD to test out your multi-boot CD, (and unattended setups from the CD probably) on your machine. But, it is recommended that you make an ISO9660 CD-image (a .ISO file) of what you are going to burn onto a disc - and use some application like VMware or VirtualPC (which simulate a PC with all associated hardware and so on) to test.

Here's a guide to get you started (on how to setup a multi-boot DVD from scratch) - in most cases, that is all that you would ever need. Follow the instructions in the guide properly (for the OSes you need), and you will get a perfectly made disc.

You can't expect to be able to make your multi-boot disc without an intermediate level of knowledge about how OSes install and boot from their installation media. If you feel like a new-comer to all this, and need someone to sum it all up for you, you might like to browse around the forums for a few days, so that you start understanding what it is all about. If you have any problems, re-read this FAQ and the guide linked to above again - you might have missed out on a tiny-but-important detail.


IMPORTANT ARTICLES:
It has been observed that making a multi-boot sometimes involves methods associated with an unattended install of windows.
nLite for slimming your Windows install source to fit on one CD
WinPE for speeding up your windows installs

Lastly, before asking a question, please use the Search function (see the link to search in the top-right corner of the page). Searching spares you some days of waiting for an answer, and the others in the forum also wouldn't need to reply with a response that has already been given and discussed lots of times in the past. Remember to set the "Search posts from..." criterion in the drop-down box to "Any Date" instead of the default of only searching for the past 30 days.

I will keep refining and adding to this FAQ, as new questions start being asked frequently.
NOTE - Using the "Print this topic" function for this page, will result in poor display of this topic, just print this page directly if you want to.

AMulti Boot Guide

Hi all!

This is (probably) the most complete and updated guide on how to build a Multi Boot DVD. I'll be updating it as i can. Hope you like it smile.gif

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/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 (BTS's DrivePacks integration being researched)
- You'll still be able to use any post-install methods you like (RunOnceEx, kTool, WPI, WIHU, XPlode, etc)

This guide is compatible with the following methods and tools:
- nLite
- RyanVM
- HFSLIT
- BTS's DriverPacks
(Method 2 is recomended. That way you can have only one copy of the drivers and slipstream them to all the OSs.)
- Windows Post-Install Wizard (WPI)
- kTool
- WIHU
- XPlode

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


Before we start:
Keep it simple, for boot menu use CD Shell, use simple winnt.sif files, etc. You should beautify, only after you'll 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
- Various operating system CDs or ISOs
- Sufficient drive space (5+ GB to be safe) (I used +/- 20GB for my DVD)
- CDImage (GUI'ed version)
- 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)

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 yourself time if something goes wrong and you have no idea where to look. You can only test your DVD once you've passed the "Creating the ISO" section. Good luck!


Let's get started:

Let's set up our folder structure:
- In your C:\ (or the root of your OS drive) create this folder structure:
------------------------------------
DVD\
DVD\BOOT\
DVD\BOOT\TOOLS\
DVD\SETUP\XP\Professional
------------------------------------
DVD is the root folder and SETUP will store all of the CDs
- Extract the CD Shell.zip file and move the TOOLS folder into the BOOT folder
- Move the BOOT folder into the DVD folder.
- 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 UPCASE)
CODE
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. 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:
QUOTE
[GuiUnattended]DetachedProgram="%SystemRoot%\System32\cmd.exe /c @ECHO something>%SystemDrive%\XPPRO.TAG"



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.
QUOTE
@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
exit
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"!


Launching RunOnce.cmd from Svcpack.inf
- Add these lines to svcpack.inf inside DVD\SETUP\XP\Professional\i386\:
QUOTE
[SetupData]CatalogSubDir="\i386"

[SetupHotfixesToRun]
CMD\RunOnce.cmd
Notes:
- 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:
QUOTE
@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
REM End
goto :end

:XPPRO
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

:XPPRO2
REM Here we'll add the software to install to the XP Pro Unattended version. Example:
[color=#333399]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

:SERVER2003
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

: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
exit

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.gif

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 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
C:\DVD\SETUP\XP\Professional\i386\CMD\RunOnce.cmd
C:\DVD\SETUP\Server2003\Standard\I386\CMD\RunOnce.cmd


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:
-------------------------------------
C:\CDImage.exe
C:\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.
QUOTE
DEL C:\*.ISO
start cdimage.exe -lDVD -t01/01/2006,12:00:00 -b\DVD\BOOT\loader.bin -h -n -o -m \DVD C:\AIODVD.iso
EXIT
Ok, time to test your ISO with VMware (for example) and add another OS!


Extras

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:
QUOTE
[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:
QUOTE
XP_Pro:
print c "\n\cXXMicrosoft Windows XP Professional \n"
print "1) Regular \n"
print "2) Unattended \n"

XP_Pro_Key:
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.


Explanation of how it all works:

Understanding The Boot Process
- CD Shell lets you choose which XXXX.DAT boot sector to access (located on the DVD root)
- The boot sector (PRO1.DAT for example) says where to load the SETUPLDR.BIN file (located in each of the boot folders)
- SETUPLDR.BIN has instructions on where to access txtsetup.sif (on the same folder) which accesses the appropriate DVD\SETUP\XX folder and starts the text-mode setup for Windows

Timeline
T-39 - Depending on the boot folder, winnt.sif's DetachedProgram creates a tag file identifying the OS.
T-13 - Svcpack.inf launches the RunOnce.cmd inside ...\i386\CMD\ of every OS. Install.cmd checks for the tag file and then performs that TAG's associated task.