Jump to content

Automated AIO ISO build script for HFSLIP


Ausmith1

Recommended Posts

NOTICE: This script is not for first timers! Experience with SCM systems and batch scripting are required if you would like to adjust this script to your specific needs. I can only answer a limited amount of questions on this script due to time constraints.

I have written a set of scripts for automating an ISO build with HFSLIP. The main script syncs all the necessary OS and $OEM$ files from a Perforce SCM database and can build a variety of ISO images (Quick driver test, $OEM$ refresh only, Full DVD rebuild) with up to five versions of Windows on the ISO (2003 ENT EVAL, 2003 ENT Retail, 2003 ENT Volume, 2003 STD Retail, 2003 STD Volume). It maintains a full history of what was build and by whom in the Perforce database so you can easily track what changes were made by who and when.

I believe that the script is fairly well commented for those who wish to dive in and see what's going on.

FAQ:

Why use an SCM system?

Can you really keep track of everything you changed in a build in your head? Well, neither can I.

Why use Perforce as the SCM system?

1) It's free for 2 users.

2) It can handle files and directories with a $ in the name (VSS can't).

Why don't you use CVS or Subversion for the SCM?

1) CVS is junk.

2) Subversion is an OSS copy of Perforce, imation is the sincerest form of flattery, no?

If you want to use your own SCM simply change the SCM commands to the SCM of your choice. That's not something I can help you with though.

Do I really need to use an SCM system to use this script?

No, but then you lose out on the change tracking features. Not the simplest thing to totally rip out the SCM feature in any case...

Learning how to efectivly use an SCM system is a very marketable skill in any case.

Where do I get Perforce?

Perforce Downloads

http://www.perforce.com/perforce/loadprog.html

How do I use Perforce?

Perforce Technical Documentation

http://www.perforce.com/perforce/technical.html

Isn't Perforce a commercial product? Don't I have to pay for it?

From: http://www.perforce.com/perforce/loadprog.html

You may use software downloaded from Perforce for any purpose you want and for as long as you like. The Perforce Server supports only two users and five client workspaces unless used with a Perforce License.

How do I make my own custom boot sector?

Time, lots of patience and a copy of VMware/VirtualPC. Simply changing the text without changing the position of the chars in a HEX editor is the easiest way to start.

How many multi boot items can I have in the boot sector menu?

The 2003 boot sector can support up to 16 items. Windows 2000 boot sectors supported 8 items.

This is really slow! It takes an hour on my machine to do a full build!

Mine too. Time to buy a faster machine :-) Seriously it's doing a lot of work. It takes time. Go interface with the real world while it's crunching.

How much disk space do I need?

That depends on how many versions of Windows you plan on integrating and how much extra stuff you plan on putting in the $OEM$ folder.

Figure that you need 600MB for each version of Windows and figure that you need the space to hold a copy of the $OEM$ folder for each version of Windows during CDIMAGE's symlinking phase. For me I needed 30GB free + 15GB on the Perforce server.

What files are in your HFTOOLS folder?

In addition to the regular modifype.exe and HFANSWER.INI, I also have the following tools/scripts:

buildrev.vbs		custom
cdimage.exe v2.47 - Google it
datetime.vbs custom
dvdrev.vbs custom
grep.exe Win32 port by Tim Charron (http://pages.interlog.com/~tcharron/grep.html)
gsar.exe General Search And Replace (http://gnuwin32.sourceforge.net/packages/gsar.htm)
junction.exe http://www.microsoft.com/technet/sysinternals/Utilities/Junction.mspx
replaceAMD64.xsc http://www.msfn.org/board/index.php?showtopic=58446
replaceI386.xsc http://www.msfn.org/board/index.php?showtopic=58446
robocopy.exe Windows Server 2003 Resource Kit Tools (http://www.microsoft.com/downloads/details.aspx?displaylang=en&familyid=9D467A69-57FF-4AE7-96EE-B18C4790CFFD)
sed.exe http://www.msfn.org/board/index.php?showtopic=58446
SETUPLDR.BIN http://www.msfn.org/board/index.php?showtopic=58446
sleep.exe Windows Server 2003 Resource Kit Tools (http://www.microsoft.com/downloads/details.aspx?displaylang=en&familyid=9D467A69-57FF-4AE7-96EE-B18C4790CFFD)
universalrepl.xsc http://www.msfn.org/board/index.php?showtopic=58446
unix2dos.exe http://www.msfn.org/board/index.php?showtopic=58446
XVI32.exe http://www.msfn.org/board/index.php?showtopic=58446
XVI32.ini Automatically created by XVI32.exe

All custom scripts are included in the ZIP attached at the bottom of the post.

How should I setup my folder structure in the Perforce SCM depot?

\Depot
\Automation-Depot
\OS
\2003
\x86
\ENT
\EVAL <- Copy of the base OS CD + R2 files
\ADMIN <- R2 (Optional)
\CMPNENTS <- R2 (Optional)
\DOCS
\I386
\PRINTERS
\SUPPORT
\RETAIL
\VOLUME
\STD
\RETAIL
\VOLUME
\My-Project
\$OEM$
\$$ <- Custom files to go in \WINDOWS folder
\$1 <- Custom files to go on C:\
\HFSlip
\AIO-DVD.OUTPUT <- HFSLIPed files will make their way in here.
\BOOT-BINS <- Custom boot sectors
\HF <- OS QFEs
\HFCABS <- OS CAB updates
\HFEXPERT
\STORAGE <- Mass storage drivers to be slipstreamed by HFSLIP
\HFTOOLS <- Custom tools and scripts
\LOGS <- HFSLIP Logs
\SIFS <- Your customised WINNT.SIF files
\ISOs <- Where the ISO file will be created (Can be anywhere, not restricted to this folder)
hfslip.cmd <- Renamed HFSLIP.version.cmd script
build_hfsliped_iso.cmd <- My build script
AIO-DVD_manifest.md5 <- Files that contains an MD5 hash of completed builds. Automatically updated by the build script.

How do I figure out what the difference was between two builds?

Diff the file //Automation-Depot/My-Project/HFSlip/AIO-DVD.OUTPUT/manifest.md5 in Perforce for the two builds in question.

How do I automate HFSLIP so that I don't have to sit and wait for it constantly?

Use the HFANSWER.INI file. Other than that read through the HFSLIP.cmd file and find the pauses.

Why do I have to rename HFSLIP.version.cmd to hfslip.cmd?

Just makes it easier for me, since each version is held in the SCM system anyway, I can can easily revert to an older version at any time.

AIO_Build_Script.zip

Link to comment
Share on other sites


Ausmith1--

I don't know if you're aware of this or if it's of any use to you, but HFSLIP can handle files to be placed in the following locations:

* WINDOWS/WINNT and its subfolders (copied during txtmode copy; use HFEXPERT\WIN)

* Program Files and its subfolders (copied when SYSOC.INF is parsed; use HFEXPERT\PROGRAMFILES)

The only systemdrive locations that aren't covered yet are the root of the systemdrive and Documents and Settings.

More info here.

Link to comment
Share on other sites

Create an account or sign in to comment

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

Create an account

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

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

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