How To Create a Universal Ghost Image.
This is my guide to building a "Universal" (compatible with most HALs) Ghost Image. I will revise as needed.
Hopefully this will cover everything you need to create your own Universal Image. I have tried to cover all the issues I have run into. With the use of "MYSYSPREP", my image names the PC via it's serial cnumber and switches the HAL based on the model.
If you have any questions or suggestions please feel free to comment.
Note*: You need to make sure you are using the Corporate version of Windows XP. If you are using a regular OEM copy of Windows you will have issues using SYSPREP. I believe after you SYSPREP an image twice it requires you to re-validate or something.
Note*: Make sure you do not install "Windows Genuine Advantage". If you have, remove it. Here are the instructions on how to... http://support.microsoft.com/kb/921914
Okay, so lets get started..
1. Do a clean install of Windows XP.
- I usually start building the image on my slowest model PC. I have found that this really does not matter as long you change the HAL to ACPI.
- Try to avoid installing any unnecessary drivers and make sure to utilize the ".inf" for the drivers that are required.
- Optional: I usually create a backup image right after I install windows. This saves me time if I have to start from scratch
- Open the I386 folder located on your XP SP2 cd.
- Open the SP2.CAB.
- Extract halacpi.dll (not halaacpi.dll) to a temporary folder and rename it to hal.dll.
- Extract ntkrnlpa.exe and ntoskrnl.exe to the same temporary folder.
- Move all three files to the system32 folder under your windows directory. Say yes to replace files.
3. Apply all critical patches released by Microsoft. Again, avoid installing Windows Genuine Advantage.
4. Create a configuration checklist and follow it.
- Note*: One of the interesting features they added to XP SP2 is the fact that when you SYSPREP your image it will copy the local admin profile to the default profile. I have mixed feeling about this but I have made it work for me. There is a patch to get around it if you need it
- Here is a generic checklist. Add or remove details as needed...
- _Clear take a tour
- _Clear .net passport
- _Remove MSN Explorer
- _Remover Internet Messenger
- _Display Setting
- _1024 x 768
- _Windows Classic Theme
- _Set wall paper
- _Set screen Saver
- _Set power scheme
- _Disable hibernation
- _Set Taskbar settings
- _Set internet option
- _Empty Recycle Bin
- I try to document whatever I have installed in a change log. That way we can keep track of changes.
- Extract "deploy.cab" to "C:\sysprep" on your image machine.
7. Download "MYSYSPREP" from here... http://jimtsay.googlepages.com/mysysprep
- extract it into the "c:\sysprep" folder.
- This is a hacked version of SYSPREP. Read the full description of it via the link. It works side-by-side with sysprep to add more robust features.
8. Create the following folder "c:\drivers". Make a subfolder for each of the required drivers for all your PCs.
Example.Make sure to trim your drivers down. Anytime you download drivers they usually contain a folder with what is required for windows... files with the .inf extension. Here is a screen shot of an audio driver I have.
9. You can create your own sysprep.inf by running c:\sysprep\setupmgr.exe. It will ask you a series of questions related to what you want sysprep to do. Or you can use the sysprep.inf below.
Note*: Anything I put in bold and red do not include in your sysprep.inf.
[Unattended]Note*: I have "BuildMassStorageSection=No". This is only because I know exactly which mass storage drivers I need. If you change this option to "Yes" it will populate a huge list of storage drivers. This will make it more compatible across different hardware, but it adds a good 30 minutes to the SYSPREP process. Note*: I have included custum mass stroage drivers. This is for my Compaq laptops.
;This tell sysprep to do an unattended setup.
;OemPnPDrivers refers to the "C:\drivers" folder you created. I trimmed this down a bit.
;InstallFilesPath refers to the root in which you store everything... drivers etc...
DriverSigningPolicy = Ignore
;Set your local admin password here
;Put your Product Key here.
;This is a special added feature that comes with MYSYSPREP. ;You can have your PC named by it serial number. ;Below you see that I have it type out JAX in front of the Serial Number
;Here you can have the computer join the domain. ;Enter the crudentials of a user that has rights to do this. JoinDomain=xxx
PCI\VEN_8086&DEV_27C1&CC_0106 = %systemdrive%\drivers\sata\iaahci.inf ; Intel(R) 82801GR/GH SATA AHCI Controller (Desktop ICH7R/DH)
PCI\VEN_8086&DEV_27C5&CC_0106 = %systemdrive%\drivers\sata\iaahci.inf ; Intel(R) 82801GBM SATA AHCI Controller (Mobile ICH7M)
PCI\VEN_8086&DEV_2652&CC_0106 = %systemdrive%\drivers\sata\iaahci.inf ; Intel(R) 82801FR SATA AHCI Controller (Desktop ICH6R)
PCI\VEN_8086&DEV_2653&CC_0106 = %systemdrive%\drivers\sata\iaahci.inf ; Intel(R) 82801FBM SATA AHCI Controller (Mobile ICH6M)
PCI\VEN_8086&DEV_27C3&CC_0104 = %systemdrive%\drivers\sata\iastor.inf ; Intel(R) 82801GR/GH SATA RAID Controller (Desktop ICH7R/DH)
PCI\VEN_8086&DEV_24DF&CC_0104 = %systemdrive%\drivers\sata\iastor.inf ; Intel(R) 82801ER SATA RAID Controller (Desktop ICH5R)
PCI\VEN_8086&DEV_25B0&CC_0104 = %systemdrive%\drivers\sata\iastor.inf ; Intel(R) 6300ESB SATA RAID Controller
PCI\VEN_8086&DEV_2652&CC_0104 = %systemdrive%\drivers\sata\iastor.inf ; Intel(R) 82801FR SATA RAID Controller (Desktop ICH6R)
10. Once you have your sysprep.inf in place it is time to look at the "c:\sysprep\mysysprep.inf".
This files contain the information needed to switch the HAL before mini setup.
Here is an example:
[Manufacturer]Notice you have a couple of different ways to specify the HAL. I do mine by model. You can get the model info by typing "c:\sysprep\mysysprep /smbios" from the command prompt.
hp Compaq nc6000 (DD522AV)=up.inf
HP Compaq nc6230 (PU985AA#ABA)=up.inf
HP Compaq dc7600 Small Form Factor=mp.inf
HP Compaq dc7100 SFF(DX878AV)=mp.inf
HP d530 USDT(DG009A)=mp.inf HP d530 CMT(PB600A)=mp.inf
HP Compaq nc6400 (RA263AT#ABA)=mp.inf
Note*: Make sure you have up.inf and mp.inf in your sysprep folder.
11. Now lets backup our base image in case we need to make changes in the future. I just create an image and call it by "Something Descriptive"base. Make sure to keep a changelog and always hold onto a couple older versions of the image.
12. Time to sysprep the image. Go ahead and clean out any Temp folders and those windows update unistall etc... Make sure to clear out your recycle bin.
Go to your "c:\sysprep" and run mysysprep.exe. Hit OK past the warning. You should see something like this...
Go ahead and check the Use Mini-Setup box and click Reseal. Once SYSPREP is done it will shut down your PC.
13. As soon as you turn on your PC back on boot it to a Pre-Environment or use a ghost boot disk. Create an image of your machine and you should be all set.
14. Push the SYSPREP'd image to a new machine. See if it works!
Note*: SYSPREP will automatically delete itself when it completes!
Errors and what they mean.
Laptops can be the trickiest to image. Make sure you are using the proper HAL and Mass stroage drivers.
I have found that when safe mode stops at agp440.sys it is the HAL.
When it stops at mup.sys it is the mass storage drivers.
Adding Drivers to your image.
If you find this write up useful please feel free to link to it.