Jump to content

Gosh's XP Build Environment


gosh

Recommended Posts

Background

Last January i decided to build a build environment for my custom xp installs. I was very happy with the results, but at the time I decided to not release it because the mentality has switched towards programs that automate installs for you. People don't seem to want to learn how to unattend xp; instead they just want to download a program that does everything for them. However, months have gone by and I've changed my mind. There is a lot of value in my build process so i've decided to finally share it for those who love learning.

So what is a build environment?

The way Microsoft builds a new build of windows is they have each team (the ie team, the shell team, etc) put the latest code they have on a network share. Then Microsoft runs a complicated batch file that auto generates files and adds comments to the right files, and digitally signs the files. All that is automated.

What i did is basically replicate the same premise. I made a batch file that once run, builds a custom xp install as an ISO image file, and optionally burns it. The original batch file calls other batch files that auto compress files, auto removes files, auto copies everything over.

Why would you want a build environment?

One of the most frustrating things in unattended install is when you make a bunch of changes to your source files, then when you run a test you get a blue screen. Then the question becomes, "Which change caused the blue screen"? If you've made a lot of changes since your last test, this could take a long time to narrow down. With a build environment, you can selectively remove components of your build to make it easy to see where it's failing.

Also, when i make unattended installs the last thing i do is copy over fresh source files from a cd to guarantee that no files are corrupt. There's nothing worse then spending 2 months making a custom install only to find out that after all that testing a file got corrupt or is missing. With a build environment, you can copy a fresh i386 folder without reapplying any customizations.

Custom install choices

My build environment auto creates a custom string file that specifies what windows components to remove. This file is created each time you run the build process. Look in the \Scripts directory.

To use

Download the zip file and edit the paths mentioned in BuildXP.bat. This build environment is for the original version of XP (or is it sp2?). You will need to copy the right versions of files for your version of XP.

For reference

Even if you don't plan on using my build environment for XP, i included excel files i used to remove XP components. You can incorporate these excel files into your own unattend installation.

Download

Go to http://www.freehomepages.com/gosh2/ and click on the zip file that's 1 meg

-gosh

Edited by gosh
Link to comment
Share on other sites


Very interesting. I have to say that I've been guilty of taking the easy way too often lately. I've been saying for too long, "... next week I'll put the effort into doing this, but for right now this will get the job done..." Well, maybe it's time for me to go back to doing things myself.

Thanks for the info, Gosh, and the motivation.

Link to comment
Share on other sites

  • 4 weeks later...
  • 2 weeks later...
  • 2 weeks later...

Thanx for sharing this gosh. This is exactly what I looked for cause it keeps me in control of my custom builds. I am making my own build environment from scratch based on yours. I probably end up the same as yours but its just so I understand it.

One question though. What does the InfAlwys mean?

For example do I need to keep moviemk.inf or can I just remove all links to moviemk.inf and all files used in moviemk.inf from dosnet.inf and txtsetup.sif.

It seems that windows setup copies moviemk.inf to the inf dir and after copying it detects inf files and executes those. So if windows doesn't copy this file it doesn't execute and I don't need to edit it and replace it.

Link to comment
Share on other sites

Infalways is the section in syssetup.inf that installs core os components such as movie maker. By default you cannot modify syssetup.inf but you can modify the other inf files such as sr.inf. You could "dummy" out sr.inf to not install system restore. However since i built that build environment i found out there is a hexed syssetup.dll out there that lets you modify syssetup.inf (nlite uses this).

One plan i have is to move the stuff in infalways to sysoc.inf to make them optional components. The problem with removing stuff like system restore is, what if you want to use system restore post install? I think my next build environment will use a hexed syssetup.inf and a custom syssetup.inf (you can also rename syssetup.inf by hexing syssetup.dll)

-gosh

Link to comment
Share on other sites

I think one reason people like me (noob that I am) use tools like HFSLIP/nLite is because it isn't obvious how to slipstream/set up your own installations and some things are not so easy to understand. For example not all hotfixes work or integrate the same way. Then what happens if you want to do something like HFSLIP/nLite so the actual hotfix .exe isn't copied/used but the files are directly integrated to the CD? What about if you want to remove certain things from installing altogether? Which inf/files do what? What if you want to integrate things like directx or WMP? Older operating systems like Win2k can only have WMP6/IE6 - how to integrate IE.. etc... All sorts of questions like that which, while easily solved using (for example) nLite make it no easier to understand what is going on under the hood. What are the various inf/cmd/other installer files, when are they used, how? Questions questions :)

I'd personally like to be able to understand the process under the hood and not use programs like nLite but it is proving difficult, for reasons mentioned above.

Edited by heffalump
Link to comment
Share on other sites

  • 2 months later...

thanks so very much, Gosh!

I have been working on a set of component removal batches/infs for xp, so I can't wait to see your discoveries!

--wondering if you also have an infOptional dir. somewhere!

Too bad more people don't enjoy using nt cmd shell based tools, it's to be expected though.

;)

Edited by thuun derboy
Link to comment
Share on other sites

People don't seem to want to learn how to unattend xp

Not everybody, Gosh. I was glad to see you return to MSFN recently after a lengthy hiatus. I read every word you post. Your willingness--and that of a handful of other gurus--to share your expertise throughout the years made MSFN what it is today. The newbies come and go, but the learners keep their MSFN bookmarks handy. I'm one of them and I thank you.

Link to comment
Share on other sites

  • 2 months later...
People don't seem to want to learn how to unattend xp

Not everybody, Gosh. I was glad to see you return to MSFN recently after a lengthy hiatus. I read every word you post. Your willingness--and that of a handful of other gurus--to share your expertise throughout the years made MSFN what it is today. The newbies come and go, but the learners keep their MSFN bookmarks handy. I'm one of them and I thank you.

I totally agree - except that I have to make new MSFN bookmarks since my harddisk passed away last week (RIP)

Link to comment
Share on other sites

  • 3 months later...

Create an account or sign in to comment

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

Create an account

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

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

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