Jump to content

$OEM$ single directory


Jito463

Recommended Posts

Greetings. I've been kind of lurking here recently, helping out when I can, now I wonder if I could get some help myself. I've recently discovered this command that lets you centralize your $OEM$ directories for network installs, requiring only one instead of several:

[unattended]

OEMFilesPath="\\server\preinstall\generic"

Where Generic would be the directory containing the $OEM$ directory. While I'm sure this works for a network install using WinPE, I'm trying to use it to combine them on my multi-boot DVD. Here is my current directory structure (using only XP Pro just to avoid wasting time):

\ROOT

|_1PPR (Pro Preinstall boot folder)

|_1OPR (Pro OEM boot folder - non preinstall)

|_Setup

|___XPPro

|_____OEM

|_______$OEM$ (used strictly for SATA drivers)

|_______i386 (etc, all other related directories included)

|_____Preinstall

|________$OEM$ (full preinstall directory)

|________i386 (same as above)

|___XPHome

|_____OEM

|_______$OEM$ (used strictly for SATA drivers)

|________i386 (same as above)

|_____Preinstall

|________$OEM$ (full preinstall directory)

|________i386 (same as above)

The reason for having a split OEM and Preinstall directories is so I can use the same DVD to do a regular repair install or to do a preinstall (I don't want the $OEM$ directory parsed during a repair install). The downside is, I have multiple files now that aren't needed. My preferred directory structure:

\ROOT

|_1PPR

|_1OPR

|_Setup

|___XPPro

|_____i386

|___XPHome

|_____i386

|___Preinstall

|_____$OEM$ (full preinstall OEM Dir for all installs)

|___OEM

|_____$OEM$ (SATA drivers loading)

This would benefit me two ways.

1) Only a single i386 directory taking up space on my DVD

2) Only one $OEM$ directory to make modifications to when I change my preinstall

I've tried the following in my winnt.sif:

[unattended]

OEMFilesPath="\Setup\Preinstall" (from root of drive)

[unattended]

OEMFilesPath="..\Setup\Preinstall" (from boot dir, move up one folder then switch)

[unattended]

OEMFilesPath="%CurrentDrive%\Setup\Preinstall" (However, %CurrentDrive% wasn't a set variable)

[unattended]

OEMFilesPath="/Setup/Preinstall" (thinking maybe for local files it had to be /, worth a shot).

So far, nothing has worked. I'll keep fiddling with it, but if anyone can make a suggestion that will get this working I would greatly appreciate it. Thanks for your time. I've also posted in the MS Preinstall newsgroup and waiting to hear back from there. If they post something before I hear from here, I'll let you guys know. I'm sure there are others who would find this equally useful.

*EDIT*

If I get this part working, I'll explain what I did to create batch files so I can create standalone iso's even with the directories stretched out like they are :)

But it's a moot point if this doesn't work in the first place.

Edited by Jito463
Link to comment
Share on other sites


Heyas,

Dunno if this ist what you want to achieve, but i will try to explain my way of having different $OEM$ Paths.

I use a new winnt.sif for every PC with different Drivers, etc. I have a winnt.sif for my first, my second PC with different OEMFilesPaths. I use another winnt.sif for a clean XP Install without third party drivers.

My DISKEMU.cmd main part looks like this:

print
print ------------------------------------------------------------------------------
print                           XP BOOT CD
print                          
print ------------------------------------------------------------------------------
print F1=Help
print                
print       1)   WINXP PRO MR SP1 UA (K7S5A/SBLive/Detonator 5214/AT2500TX NIC)
print       2)   WINXP PRO MR SP1 UA FLAT (K7S5A/SBLive/Detonator 5214/AT2500TX NIC)
print       3)   WINXP PRO MR2 SP1 UA (KK7VTA3/AC97/Detonator 5214/Compex NIC)
print
print       4)   WINXP PRO SP1 Standard Unattended
print       5)   WINXP PRO SP1 Standard Unattended FLAT !!
print       6)   WINXP PRO SP1 Standard
print
print
print       9)   Windows 98 Bootdisk
print       b)   Ghost Boot CD MR
print       c)   Ghost Boot CD MR2
print
print       g)   Ghost Tools
print       q)   Quit to command prompt
print       r)   Reboot
print
print       Esc) Boot first harddisk
print
print Hit the key of choice:
:mainkey
; timeout is 30 seconds, default key is escape
getkey 30 esc
onkey 1 run XPP1.DAT
onkey 2 run XPF1.DAT
onkey 3 run XPP2.DAT
onkey 4 run XPP3.DAT
onkey 5 run XPF3.DAT
onkey 6 run XPP4.DAT

onkey 9 run 98SE.ima
onkey b run gmr.IMA
onkey c run gmr2.IMA
onkey g goto ghost
onkey x goto dev

onkey q quit
onkey r reboot
onkey f1 goto help
onkey esc boot 80

I dunno if this goal can be achieved more easily, but this works fine for me, and you can easily change the diskemu.cmd to add more different driver paths. As far as i know the installation only parses the oemfilespath included in the winnt.sif. If not, my whole typing work for these configurations was just a waste of time :blink:

Link to comment
Share on other sites

Umm, I already know how to do multiple versions of WinXP on the same disc. What I'm referring to is using one $OEM$ directory for all the preinstalls.

*EDIT*

I suppose, looking at my chart above, I may not have been fully clear. The two $OEM$ directories were one for Preinstall and one not preinstall. The two $OEM$'s could then be shared between XP Home OEM, XP Pro OEM, XP Home Retail and XP Pro Retail without having 8 different $OEM$ directories between them.

Edited by Jito463
Link to comment
Share on other sites

Well, I finally got my answer from MS. Erik (SBST - System Builder Support Team) told me in order to specify a location that's not through the network, I have to give a drive letter. So, I'd have to specify D:\Setup\Preinstal and make sure that there was only one HDD and one optical drive. I may still do it, but I'm not sure if it's worth the hassle. We'll see.

Link to comment
Share on other sites

i've do some tests for OEMFilesPath, with these settings in WINNT.SIF

[Unattended]
OEMFilesPath="Geek"
OemPreinstall = Yes

or

[Unattended]
OEMFilesPath="\Geek"
OemPreinstall = Yes

or

[Unattended]
OEMFilesPath="..\Geek"
OemPreinstall = Yes

the sample directory structure as attached picture.

make sure every $1 directory has a text file with full-path-to-text-file in it.

by use of OemPreinstall=Yes and $OEM$\$1, if OEMFilesPath works on CD install, after XP setup complete there should be at least one text file in %SystemDrive%, and we can check the content of the text file to know which directory XP setup use.

unfortunately, there's no text file as it should be there. this test comply with your answer, on a CD install OEMFilesPath without a drive letter.

after that i go with multiple $OEM$ directory.

post-82-1095515332_thumb.jpg

Link to comment
Share on other sites

I have OEMPreinstall=Yes in all my Winnt.sif files, unfortunately it doesn't seem to recognize my $OEM$ dir no matter where I put it if I don't specify the drive letter. I actually don't even need to let it finish installing to find out. During the file copy phase, when it does recognize the $OEM$ (using traditional structure) it gets to 100% then I see it copy my additional files. If I don't see them copy, then I know it failed. I'm going to try now to specify D:\Setup\Preinstall and see if that works.

Link to comment
Share on other sites

  • 2 weeks later...

He Guys,

There is a little util that give you the cdrom letter see attached file.

Now you can set the %CDROM% variable easy with following code:

@echo off
cls
for /f "Tokens=*" %%a in ('getcd.exe') do set CDROM=%%a

hope this helps.

Redman

getcd.exe

Link to comment
Share on other sites

Try one of those things:

1) as OEMFilesPath parameter write that:

[Unattended]
OEMFilesPath=".:\Setup\Preinstall"
OemPreinstall = Yes

2) Try to move all $OEM$ directories into coresponding i386 directories and delete OEMFilesPath parameter form winnt.sif

So your structure should look like that:

\ROOT

|_1PPR (Pro Preinstall boot folder)

|_1OPR (Pro OEM boot folder - non preinstall)

|_Setup

|___XPPro

|_____OEM

|_______i386 (etc, all other related directories included)

|_________$OEM$ (used strictly for SATA drivers)

|_____Preinstall

|________i386 (same as above)

|__________$OEM$ (full preinstall directory)

|___XPHome

|_____OEM

|________i386 (same as above)

|__________$OEM$ (used strictly for SATA drivers)

|_____Preinstall

|________i386 (same as above)

|__________$OEM$ (full preinstall directory)

and in winnt.sif in [unattended] section use just that OemPreinstall = Yes

ref.chm file says that:

OemFilesPath

Specifies the path to the \$OEM$ folder (containing OEM files) if it does not exist under the i386 folder of the distribution share point.

Hope it will work

Link to comment
Share on other sites

@khostri

Have you tested what is said above? If it works, I'm all ears! :lol:

Well, the location refers to hard-disk. I must've tried this hundreds of times - doesn't work on CD!

OEMFilesPath=".:\Setup\Preinstall"

That path will get interpreted as

C:\.:\Setup\Preinstall

Nopes, the only solution was to keep the multiple $OEM$ folders, and optimize the CD-image.

Link to comment
Share on other sites

Nope, didn't try. Just wanted to add some possible ways to work it out. :D

Didn't try that second way?

If I understand that explanation from ref.chm fiel right

OemFilesPath

Specifies the path to the \$OEM$ folder (containing OEM files) IF it does not exist under the i386 folder of the distribution share point.

It should mean, that if there is any $OEM$ folder inside i386 and there is no path specified in winnt.sif, it should be copied normaly as $OEM$.

Just another way "I have heard something but didn't try" :D

Link to comment
Share on other sites

Something slightly different then what you have been doing but it just might work. Tell me what you think i'm considering trying the same on my CD

Instead of booting to the text based portion of setup and letting that run how about a windows PE install.

So maybe something like this. Create an HTA file to run inside of windows PE giving you the different options for install example

1.) Windows XP Pro Unattended

2.) Windows XP Pro OEM

etc

but just before the line of

winnt32.exe /

make it call the getcd.exe first thus giving you the correct drive letter?

Link to comment
Share on other sites

Well, what I finally ended up doing was to create a directory structure like so:

\
|_1OHO <-- OEM Home Setup
|_1OPR <-- OEM Pro Setup
|_1PHO <-- Preinstall Home Setup
|_1PPR <-- Preinstall Pro Setup
|_Setup
|___XPHome
|______$OEM$
|______I386
|___XPPro
|______$OEM$
|______I386

Then, in my 1OHO, 1OPR, 1PHO and 1PPR directories, I either placed or did not place a winnt.sif to do a preinstall. However, regardless of whether OEMPreinstall is set to yes, the cmdlines.txt is parsed, so I added this command at the top of my batch file:

IF NOT EXIST %SystemRoot%\DITOEM GOTO END
blah, blah
blah, blah
:END
EXIT

Where DITOEM is a file that I had it copy from the $OEM$\$1 directory if OEMPreinstall was set to yes. If set to no, it would not be copied, so the batch file would just exit without trying to run the installers.

Not quite a "single" $OEM$ directory, but as close as I'm going to get without straining myself.

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...