Jump to content

The Art of OEM - nLite & OEM Preinstallation


Your opinion goes here  

141 members have voted

  1. 1. Would you like for Windows Designer Studio to perform most of the operations described in this guide?

    • Yes, and I want more features too!
      69
    • Yes
      13
    • No, I'd rather stick with the plain old Windows Setup routine.
      5
    • No, it's just a waste of time; nLite/vLite will always be enough for my needs.
      7
  2. 2. Now that this guide is complete, are you happy with its contents?

    • Yes, it's a great idea!
      63
    • Somewhat, I used some of the things described here.
      20
    • Probably, but it is too complex for me to handle.
      7
    • No
      4
  3. 3. Which of these should benefit you the most and you'd like to see first in Windows Designer Studio? (more details soon)

    • Windows Setup SDK (Panther Engine) - WIM capture, Setup customization and ISO making, like in Parts 3 and 4
      46
    • VKEY Explorer - an advanced tool to design the registry of the OS you are designing
      5
    • Package Designer - a set of diff and compression tools to allow you to author/create/add/remove windows components and preinstalled apps
      18
    • VM Workbench - an extension for the free VMware Player product to test the results of your work before finalizing
      10


Recommended Posts

easy way :

just put sources folder to WinFLPs disc

delete Setup directory

add setup.exe to run from winpeeshl.ini

load setupreg.hiv from I386\system32

and change value of SETUP\CmdLine

from "\Setup\SetupLauncher.exe" to "winpeshl.exe"

it worked like a charm.. :)

Yes, largely the same case as doing the same for Norton Ghost 12 recovery CD... the problem with using the PE from WinFLP is driver support; I doubt many of the new drivers are included there.

Link to comment
Share on other sites


WinFPLs PE is NT 5.2.3790 (Workstation built of 2k3 )

how can a BartPE built from srv03 sp2 std edition support Panther ?

even after satisfying the dependancies the pather setup stays at "Starting Setup ,Please wait...."

not at all progessing...

is there any workaround for 2k3 sp2 BartPE ??

XP PE is not supported at all (setup complaints requirement of a .NET capable PE)

Another weired prob:

the vmware cmount2 deosnt recognizing my virtual disk partition (which created using XP in the Virtual machine) in virtual IDE disk

Virtual disk partitions created by Panther or vista RTM PE are recognized (both IDE and SCSI on a new virtual disk disk)

:(

just only one virtual disk (on which i installed XP), all others are detected by vmount2

Link to comment
Share on other sites

1) it does progress, but for some reason on non-PE 2.0 it stays that way for almost 2 minutes, not sure why.

and

2) vmount2 has some flaws, you'd be better of with vmware-vmount 5.5.0. AFAIK the VMware beta team could not solve it during v6 testing. I had the same problem while coding around the vmplayer 6 SDK, and the best option is 5.5.0 build 18463.

Get it from my wdesign SVN: vmware-mount.exe, libeay32.dll, ssleay32.dll

Fortunately, it's compatible with both Workstation 6 and ESX 3.

Link to comment
Share on other sites

thanx

i managed to create a new scsi hd attached to ame machine and imaged ide drive from winpe to the scsi disk

then i mounted the scsi disk using vmount2 and copied the install.wim

isn't weired ??

Quite reasonable, unless you are capturing directly on a network share. Or mount the partition to be imaged as a drive on a physical machine (like V:) and capture it this way, it does work.

Edited by dexter.inside
Link to comment
Share on other sites

Part 5 - Quick OEM Preinstallation Guide for Workstations

Featured: Windows XP SP3 v.3180

Due to popular demand, I made Part 5 to show how to preinstall large applications in a workstation environment (Windows 2000 / XP). It is a quick guide that covers issues described in parts 1 and 2. As opposed to unattended installation, OEM preinstallation allows you to make a new setup disk with all the apps and registry tweaks you want without needing any special-made CAB packages, slipstreaming or scripting.

In this example, I used the evaluation version of Windows XP SP3 Media Center Edition in VMware Player.

T5-001.jpg

Picture 1 - Install Windows

Now, after you've passed the first boot, feel free to install all the apps and registry tweaks you want to have in your setup disk, like Office 2007, Visual Studio, Vista Transformation Pack, antivirus or whatever.

T5-002.jpg

Picture 2 - First Boot

When you are done "pre"-installing, continue. If you have a Corporate version, Windows is already activated. If not, you might want to activate it now. In my case, by not activating it, I am making a OEM preinstalled master distribution disk (Sysprep will rearm my activation back to 60 days by default when it completes).

Unpack the deployment tools (DEPLOY.CAB) to C:\sysprep

T5-003.jpg

Picture 3 - DEPLOY.CAB

T5-004.jpg

Picture 4 - C:\Sysprep

Now you need a partially unattended script for Sysprep to execute.

You can either use SETUPMGR.EXE to make your own and add [sysprepMassStorage] at the end, or you can use this:

 ;SetupMgrTag
[Unattended]
InstallFilesPath="C:\sysprep\i386"
OemSkipEula=Yes
DriverSigningPolicy=Ignore
UpdateInstalledDrivers=Yes

[GuiUnattended]
EncryptedAdminPassword=NO
AutoLogon=Yes
AutoLogonCount=0
OEMSkipRegional=1

[UserData]
FullName=""
OrgName=""

[SetupMgr]
DistFolder=c:\sysprep\i386
DistShare=windist

[Identification]
JoinWorkgroup=WORKGROUP

[Networking]
InstallDefaultComponents=Yes

[SysprepMassStorage]

Now you will need to run sysprep -bmsd to populate your driver section. The default path it scans is \WINDOWS\Inf.

T5-005.jpg

Picture 5 - sysprep.inf script

Sysprep may require some other files and settings. Thanks to JakeLD :thumbup , here they are:

(read the original topic here)

Windows Registry Editor Version 5.00

; Change source path to be c\windows instead of cd-rom
; Fix a sysprep bug
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup]
; Set C:\WINDOWS C:\WINDOWS\I386 C:\WINDOWS\SYSTEM32 C:\WINDOWS\SYSTEM32\DRIVERS as installation sources
"Installation Sources"=hex(7):43,00,3a,00,5c,00,57,00,49,00,4e,00,44,00,4f,00,\
57,00,53,00,00,00,43,00,3a,00,5c,00,57,00,49,00,4e,00,44,00,4f,00,57,00,53,\
00,5c,00,49,00,33,00,38,00,36,00,00,00,43,00,3a,00,5c,00,57,00,49,00,4e,00,\
44,00,4f,00,57,00,53,00,5c,00,53,00,59,00,53,00,54,00,45,00,4d,00,33,00,32,\
00,00,00,43,00,3a,00,5c,00,57,00,49,00,4e,00,44,00,4f,00,57,00,53,00,5c,00,\
53,00,59,00,53,00,54,00,45,00,4d,00,33,00,32,00,5c,00,44,00,52,00,49,00,56,\
00,45,00,52,00,53,00,00,00,00,00
"SourcePath"="C:\\WINDOWS"
"ServicePackSourcePath"="C:\\WINDOWS"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]
;"RegisteredOrganization"=""
;"RegisteredOwner"="User"
"SystemRoot"="C:\\WINDOWS"
"SourcePath"="C:\\WINDOWS\\i386"

And also copy these files to \sysprep\I386 (don't add out-of-box drivers, the folder is deleted after setup completes)

agentdp2.dll
agentdpv.dll
agt0405.dll
agt0405.hlp
agt0406.dll
agt0406.hlp
agt0407.dll
agt0407.hlp
agt0408.dll
agt0408.hlp
agt0409.dll
agt0409.hlp
agt040b.dll
agt040b.hlp
agt040c.dll
agt040c.hlp
agt040e.dll
agt040e.hlp
agt0410.dll
agt0410.hlp
agt0413.dll
agt0413.hlp
agt0414.dll
agt0414.hlp
agt0415.dll
agt0415.hlp
agt0416.dll
agt0416.hlp
agt0419.dll
agt0419.hlp
agt041d.dll
agt041d.hlp
agt041f.dll
agt041f.hlp
agt0816.dll
agt0816.hlp
agt0c0a.dll
agt0c0a.hlp
agtintl.dll
ctype.nls
c_037.nls
c_10000.nls
c_10006.nls
c_10007.nls
c_10010.nls
c_10017.nls
c_10029.nls
c_10079.nls
c_10081.nls
c_10082.nls
c_1026.nls
c_1250.nls
c_1251.nls
c_1252.nls
c_1253.nls
c_1254.nls
c_1255.nls
c_1256.nls
c_1257.nls
c_1258.nls
c_20127.nls
c_20261.nls
c_20866.nls
c_20905.nls
c_21866.nls
c_28591.nls
c_28592.nls
c_28593.nls
C_28594.NLS
C_28595.NLS
C_28597.NLS
c_28598.nls
c_28599.nls
c_28603.nls
c_28605.nls
c_437.nls
c_500.nls
c_737.nls
c_775.nls
c_850.nls
c_852.nls
c_855.nls
c_857.nls
c_860.nls
c_861.nls
c_863.nls
c_865.nls
c_866.nls
c_869.nls
c_874.nls
c_875.nls
c_932.nls
c_936.nls
c_949.nls
c_950.nls
enum1394.inf
enum1394.sys
ftdisk.sys
geo.nls
isapnp.sys
locale.nls
l_except.nls
l_intl.nls
modern.fon
mouhid.sys
roman.fon
script.fon
sortkey.nls
sorttbls.nls
streamci.dll
unicode.nls
vga.sys
wst_czec.fon
wst_engl.fon
wst_fren.fon
wst_germ.fon
wst_ital.fon
wst_span.fon
wst_swed.fon

Now that you can see the driver locations in the SysprepMassStorage section, you can start resealing your workstation.

T5-006.jpg

Picture 6 - Sysprep

T5-007.jpg

Picture 7 - Working

The virtual machine shuts down and the process is complete. Either go to Part 3 and 4 of this guide to see how to image it (you can mount the C: partition to your physical operating system and image it from there) and build a setup disk or use a 3-rd party disk imaging tool, like Norton Ghost.

Enjoy :hello:

Edited by dexter.inside
Link to comment
Share on other sites

Hi dexter.inside, thanks for your work.

I've created a wim file that works from command prompts, I'm just a bit confused how to implement it from the Ghost 12 Recovery CD.

I'd really like it to install like Vista or WinFLP, ie no interaction & nice GUI.

Any help appreciated.

Link to comment
Share on other sites

Hi dexter.inside, thanks for your work.

I've created a wim file that works from command prompts, I'm just a bit confused how to implement it from the Ghost 12 Recovery CD.

I'd really like it to install like Vista or WinFLP, ie no interaction & nice GUI.

Any help appreciated.

Okay, I will document both WinFLP (no interaction) and Norton Ghost 12 (Norton System Recovery Shell) scenarios.

Link to comment
Share on other sites

"WinFLP (no interaction)" would be great, I've installed WinFLP a few times and it's exactly the type of install I'm after.

Yes, that's my long term goal too for Designer Studio... it's too bad that so many good setup solutions were made and get discarded by Microsoft. WinFLP is the best solution yet for the First Boot Agent, perfectly suitable for Embedded technology, but nobody seems to care. Like I said before, Microsoft has no interest in improving a piece of technology that is already satisfactory (like textmode setup and SDI disks)

Link to comment
Share on other sites

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

I'm also impressed with this guide. Thanks for great work.

Now my question. WinFLP (Eiger) Setup allows choose Optional Components... Image from WIM can be applied only as whole, right? So, how Setup implements OC? He musts save configuration about components on disk and durning first boot First Boot Agent (or so) delete files and registry keys of non-choosed components. Is possible make installation of another Windows edition with ability of optional components?

(Excuse my English)

Mitch

Edited by Mitch.
Link to comment
Share on other sites

Eiger uses a more refined technique for doing this: the WIM has one base image containing the core of the OS and another 8 that have just those Embedded packages that provide the extra functionality. The core package is applied and then for each of the selected options files from its package are added to disk and registry gets imported from *.sav hives.

At this point there is no method to reproduce this procedure, unless you do it manually. The Windows Embedded development team does not appear to be interested in adopting this method to replace the old SDI technology.

And yes, it is possible, but just in theory for now. I am aiming for the same type of WIM usage in my app, but that will require another Windows Setup SDK to be written almost from scratch. Microsoft could have used a differential packaging system for storing all the Vista edition together, but instead they made it integral, relying on WIM single instance storage. The Eiger setup technology was made in 2005 but nobody seemed to care.

Link to comment
Share on other sites

Thanks. I should have look into WIM before asking. My concept of setup for one specific computer with specific hardware (sysprep isn't needed):

1. Install system, updates, SP, ... and remove components. Instead FBA write one batch file (for example addreg.bat) and set autorun after next reboot.

2. Create base image.

3. Create images of additionals components, but instead registry hive files (.sav) create .reg files, which they will be joined by addreg.bat at first boot.

4. Create PE system.

5. Create batch file, which (for testing purposes) deploy base image and all components on disk.

6. Burn PE, batch and WIM on CD (or create ISO).

7. Test solution... -> deploy -> reboot -> At first boot, addreg.bat silently runs regedit to join .reg files into registry.

If all will be OK, write own setup (Win32, .NET framework won't be necessary).

Edited by Mitch.
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...