andregcasal Posted May 21, 2006 Share Posted May 21, 2006 (edited) 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 changelogMay, 13 (2010)Understanding the boot process timeline is now more comprehensibleGuide clean upAug, 18 (2009)Updated linksSome minor language fixesAug, 20 (2007)"Add an Unattended option" fix (thanks to ysfozy)Jan, 13 (2006)Automatically create multi-boot folders and filesAdded improved and shorter RunOnce.cmd codeAdded the eXPander utilityGuide clean up and updateSep, 15 (2006)Added Windows 98 supportSep, 10 (2006)Fixed offline links, since Flyakite's Multi Boot Guide's offline.Fixed spacing and added color for easier readingMay, 21 (2006)Added "CDShell.ini" attachmentCreation of this guideFeatures 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- HFSLIT- 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- WIHU- XPlodeThis 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 98Understanding 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 startedTimeline (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 installedT-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 - 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\BOOT\DVD\SETUP\------------------------------------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 offfor %%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.cmdexitYou 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\:[setupData]CatalogSubDir="\i386"[setupHotfixesToRun]CMD\RunOnce.cmdNotes:- 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 offREM next line makes sure the *.TAG extension is identifiedsetlocal enableextensionsREM checks for the XPPRO.tag file and go to the corresponding section:if exist %SystemDrive%\XPPRO.TAG call :XPPROREM checks for the XPPRO2.tag and go to the corresponding section:if exist %SystemDrive%\XPPRO2.TAG call :XPPRO2REM checks for the SERVER2003.tag file and go to the corresponding section:[if exist %SystemDrive%\SERVER2003.TAG call :SERVER2003REM Endgoto :end:XPPROREM 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 lettersstart /wait %~dp0\Software\Program1.exe /sstart /wait %~dp0\Software\Program2.exestart /wait %~dp0\Software\Program3.exe /qnREM End this sectionREM end of this section :goto :end:XPPRO2REM Here we'll add the software to install to the XP Pro Unattended version. Example:start /wait %~dp0\Software\Program1.exe /sstart /wait %~dp0\Software\Program2.exestart /wait %~dp0\Software\Program3.exe /qnREG IMPORT %~dp0\Software\Tweaks.regREM End this sectionREM end of this section :goto :end:SERVER2003REM Here we'll add the software to install to the Server 2003 version. Example:REG IMPORT %~dp0\Software\Workstation.regstart /wait %~dp0\Software\ProgramA.exe /sstart /wait %~dp0\Software\ProgramB.exeREM End this sectionREM end of this section :goto :end:endREM Here we'll add the options for every OS.start /wait %~dp0\SOFTWARE_ALL\AntiVirus.exestart /wait %~dp0\SOFTWARE_ALL\Firewall.exe /sREM Applying tweaks to the registry. Independent of the TAG:REG IMPORT %~dp0\Software\Tweaks.regdel /f /q %SystemDrive%\*.TAGdel /q /f %SystemRoot%\*.bmpdel /q /f %SystemRoot%\system32\dllcache\*.scrdel /q /f %SystemRoot%\system32\setupold.exedel /q /f %SystemRoot%\system32\presetup.cmdexitInstall.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 Finishing UpDVD 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 SourceC:\DVD\BOOT\ - CDShell folderC:\DVD\i386\ - Windows XP Pro reduced source folder (OPTIONAL)C:\DVD\PRO1\ - Boot folder 1 for XP ProC:\DVD\PRO2\ - Boot folder 2 for XP ProC:\DVD\3ST1\ - Boot folder 1 for Server 2003C:\DVD\3ST2\ - Boot folder 2 for Server 2003C:\DVD\SOFTWARE\SOFTWARE\ - Folder where software is placedC:\DVD\SOFTWARE\Install.cmd - CMD file that takes care of the software installationC:\DVD\SOFTWARE\SOFTWARE_ALL\ - Folder where software for all OSs is placedC:\DVD\SETUP\XP\Professional\i386\CMD\RunOnce.cmdC:\DVD\SETUP\Server2003\Standard\I386\CMD\RunOnce.cmdCreating 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.exeC:\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.DEL C:\*.ISOstart cdimage.exe -lDVD -t01/01/2006,12:00:00 -b\DVD\BOOT\loader.bin -h -n -o -m \DVD C:\AIODVD.isoEXITOk, 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!ExtrasAdd 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:XP_Pro:print c "\n\cXXMicrosoft Windows XP Professional \n"print "1) Regular \n"print "2) Unattended \n"XP_Pro_Key:if $lastKey == key; then chain /PRO1.DATif $lastKey == key; then chain /PRO2.DATAdd Windows 98Follow 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 Hope it was usefull to you cdshell.ini Edited October 14, 2014 by xper Link to comment Share on other sites More sharing options...
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
Already have an account? Sign in here.Sign In Now