Jump to content
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble

MSFN is made available via donations, subscriptions and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. Alternatively, register and become a site sponsor/subscriber and ads will be disabled automatically. 


bdwilcox

Slipstreaming Intel Matrix Storage Drivers in XP Pro

Recommended Posts

I was hoping someone on this board could help me with slipstreaming Intel's latest Matrix Storage driver into an unattended XP install CD. I am looking to slipstream the files as TEXTMODE drivers, which should make the task easier. Unfortunately, all efforts to do this so far have resulted in failure.

First, before I tried anything, I slipstreamed SP3 into XP, copied my WINNT.SIF file to the I386 directory of the CD, and created a bootable XP unattended install disk that works like a charm. So I know the basic disk works.

Second, I modified this base XP install CD as such:

-At the root of the CD I created a directory called $OEM$ and then created a folder within that called TEXTMODE. Inside this $OEM$\TEXTMODE folder I copied the files from Intel's latest Matrix Storage F6 floppy driver (f6flpy3286.zip):

http://downloadcenter.intel.com/Detail_Des...amp;PrdMap=2842

TXTSETUP.OEM

iaahci.cat

iaAHCI.inf

iastor.cat

iaStor.inf

IaStor.sys

-In the I386 directory of the CD, I created a folder called $OEM$ and once again, copied the contents of Intel's latest F6 floppy (f6flpy3286.zip).

Note: So I now have two directories that hold the contents of Intel's latest F6 floppy: $OEM$\TEXTMODE and I386\$OEM$

-Then I modified the WINNT.SIF by changing the line OEMPreinstall=NO to OEMPreinstall=YES

-Finally, I added the [MassStorageDrivers]* and [OEMBootFiles] sections to the WINNT.SIF as below:

[MassStorageDrivers]
"Intel(R) ESB2 SATA AHCI Controller" = OEM
"Intel(R) ICH7R/DH SATA AHCI Controller" = OEM
"Intel(R) ICH7M/MDH SATA AHCI Controller" = OEM
"Intel(R) ICH8R/DH/DO SATA AHCI Controller" = OEM
"Intel(R) ICH8M-E/M SATA AHCI Controller" = OEM
"Intel(R) ICH9R/DO/DH SATA AHCI Controller" = OEM
"Intel(R) ICH9M-E/M SATA AHCI Controller" = OEM
"Intel(R) ICH10D/DO SATA AHCI Controller" = OEM
"Intel(R) ICH10R SATA AHCI Controller" = OEM
"Intel(R) ESB2 SATA RAID Controller" = OEM
"Intel(R) ICH7R/DH SATA RAID Controller" = OEM
"Intel(R) ICH7MDH SATA RAID Controller" = OEM
"Intel(R) ICH8R/ICH9R/ICH10R/DO SATA RAID Controller" = OEM
"Intel(R) ICH8M-E/ICH9M-E SATA RAID Controller" = OEM
"IDE CD-ROM (ATAPI 1.2)/PCI IDE Controller" = "RETAIL"

[OEMBootFiles]
TXTSETUP.OEM
iaahci.cat
iaAHCI.inf
iastor.cat
iaStor.inf
IaStor.sys

*The OEM entries under [MassStorageDrivers] came from the [sCSI] section of the TXTSETUP.OEM file.

-After all this, I make a bootable CD like before and test it.

Now, technically, this should work. But each time I've tried it, I get the following error during XP's TEXTMODE setup period:

File TXTSETUP.OEM caused an unexpected error (18) at line 1747 in d:\xpsp\base\boot\setup\oemdisk.c.

Does anyone know what needs to be modified to get this to work? I'd rather not use a program like nLite since it makes changes I'm not aware of and I would like to keep this as simple and straightforward as possible.

Share this post


Link to post
Share on other sites

Your method is overly complicated and unnecessary.

Do yourself a favor and use nLite. It will slipstream the Intel mass storage/sata controller drivers and they will be installed during text mode setup and you won't have to edit anything.

I just did this to a brand new Compaq Presario CQ50-209WM laptop yesterday when I dumped Vista and installed XP. Works like a charm.

Edited by SyntaxError

Share this post


Link to post
Share on other sites

Actually, my method is the Microsoft prescribed method (see Microsoft's Deploy.chm) and is the simplest of all the methods described on these boards. The reason I don't want to use nLite is that this is a business build that I will be 100% responsible for and I need to know all the changes made to the installation folders; nLite makes undocumented changes which I can't have with such an important build.

Share this post


Link to post
Share on other sites
In the I386 directory of the CD, I created a folder called $OEM$ and once again, copied the contents of Intel's latest F6 floppy (f6flpy3286.zip).

Run IsoBuster, open the ISO image.

Choose files system ISO9660 : the red ISO label.

Does exist file \I386\$OEM$\TXTSETUP.OEM ?

Case is importand and watch for $ sign.

Share this post


Link to post
Share on other sites
Actually, my method is the Microsoft prescribed method (see Microsoft's Deploy.chm) and is the simplest of all the methods described on these boards. The reason I don't want to use nLite is that this is a business build that I will be 100% responsible for and I need to know all the changes made to the installation folders; nLite makes undocumented changes which I can't have with such an important build.

MS's method is hardly simple. If it's so simple, then why are you having such trouble with it?

The only thing nLite does in this case is adds a couple folders (\i386\NLDRV\001) with the drivers cab-compressed and adds the appropriate entries in \i386\TXTSETUP.SIF as shown below.

[sourceDisksNames.x86]

1984 = %cdname%,%cdtagfilei%,,"\i386\NLDRV\001"

[WinntDirectories]

1984 = NLDRV\001

[sourceDisksFiles.x86]

iaahci.cat = 1984,,,,,,,1984,0,0

iaahci.inf = 1984,,,,,,,1984,0,0

iastor.cat = 1984,,,,,,,1984,0,0

iastor.inf = 1984,,,,,,,1984,0,0

iastor.sys = 1984,,,,,,,1984,0,0

and a comment at the very end of the file:

; Customized by nLite - www.nliteos.com

So what "undocumented changes" are you referring to?

I can understand that your work might prefer using the MS way and that you are responsible for the results, but even a chimp can see that MS's way is overly complicated and unnecessary.

The fact that MS's method requires 2 copies of the driver files and the trouble you are having with such an allegedly "simple" method should have clued you in to this.

nLite will do the job in 4 seconds. Try it out on your own and you will see. Then show your boss how fast it is and how good it works. He or she might then allow you to use nLite and make your job a little bit easier.

Edited by SyntaxError

Share this post


Link to post
Share on other sites

nLite adds a lot more than what you're showing. I used CDCheck to do a comparison between the XP source files and XP with the slipstreamed nLite driver; nLite changed a whole host of source files as well as installing a custom executable helper file.

Microsoft's method is simple, but unfortunately it's also broken (as usual). I guess at this point I shouldn't really be surprised by that, coming from Microsoft and all.

These machines are being loaded for government certification and compliance. I can't let any non-official Microsoft process run on them, especially one I'm not aware of and can't document.

Oh, well, it was worth a try. Thanks anyway. -bw

Share this post


Link to post
Share on other sites

I followed the instructions in the sticky here and it worked fine for me. It takes a bit of time and requires editing txtsetup.sif but if you are documenting the process then it should be OK for you.

Edit: this is not a Microsoft documented process but I don't know what else you can do.

Edited by krose

Share this post


Link to post
Share on other sites
nLite adds a lot more than what you're showing. I used CDCheck to do a comparison between the XP source files and XP with the slipstreamed nLite driver; nLite changed a whole host of source files as well as installing a custom executable helper file.

Microsoft's method is simple, but unfortunately it's also broken (as usual). I guess at this point I shouldn't really be surprised by that, coming from Microsoft and all.

These machines are being loaded for government certification and compliance. I can't let any non-official Microsoft process run on them, especially one I'm not aware of and can't document.

Oh, well, it was worth a try. Thanks anyway. -bw

The gov't bit explains it. I wasn't aware an entire cd could be compared. I'll definitely check out that tool. Thanks. I seem to learn something new everyday.

At any rate, you could try the method krose linked to. It's the same as nLite's method, without those undocument changes. I might try it myself sometime.

**holy crap, you weren't kidding about those undocumented changes. I just compared an nLite'd share and a non-nLite'd share. Most of the differences were just where nLite uncabbed about 100 files in \i386, but there were changes in the registry hive files and a few other places as well that nLite had no business messing with. It's time I learn a few manual tricks I guess. Thanks.

Edited by SyntaxError

Share this post


Link to post
Share on other sites
Microsoft's method is simple, but unfortunately it's also broken (as usual).

Method does work. However there are addional requirements.

Setupldr.bin read CD at textmode setup.

Setupldr.bin read file system ISO9660 only. A Joliet file system is ignored that early.

$ is a invalid char according to ISO9660 Level 1.

You have to break ISO9660 anyway, to create a NT based boot CD.

cdimage -j:

This creates two file systems: ISO9660 and Joliet. A $ flips to a _ at ISO9660.

\I386\_OEM_\TXTSETUP.OEM : ISO9660

\I386\$OEM$\TXTSETUP.OEM : Joliet

Setupldr.bin read ISO9660 file system and dosn't find \I386\$OEM$\TXTSETUP.OEM.

Create \I386\$OEM$\TXTSETUP.OEM at ISO9660 file system.

Don't use cdimage -j.

Edited: Quote changed

@SyntaxError

Sorry for the quote confusion. It's a kind of syntax error.

Edited by cdob

Share this post


Link to post
Share on other sites

To cdob,

To make the CD I used the following steps:

I used ISOBuster to extract the Microsoft Corporation.img file.

I then used Nero Burning Rom version 6.6.1.115d with the following settings to burn the XP files to a CD:

On the Boot tab of Nero Burning ROM:

-"Image File" is pointed to the Microsoft Corporation.img file

-Under Expert Settings, Emulation is set to No Emulation, Load Segement of Sectors is set to 07C0, and Number of Loaded Sectors is set to 4

On the ISO tab of Nero Burning ROM:

-Data Mode is set to Mode 1

-File System is set to ISO 9660: 1999 since this is the only one that would allow "$" to show up instead of "_" when I looked at the final CD under ISOBuster. After selecting this setting, every option becomes greyed out except the "Allow more than 255 characters in path".

So let me tell you what I tried.

I tried the above settings with the "Allow more than 255 characters in path" both checked and unchecked. It still failed.

I then tried changing the the File System from ISO 9660: 1999 to both ISO 9660 and ISO 9660+Joliet. With both I set "File Name Length (ISO)" to "Max. of 31 chars (Level 2)". I left "Character Set (ISO)" on ISO 9660 (standard ISO CD-ROM). All ungreyed "Relax Restrictions" checkboxes were also selected. All of these attempts failed.

What settings in Nero should I be using? Or should I be using something other than Nero or a different version of Nero to burn the final CD?

Share this post


Link to post
Share on other sites

Interestingly, I just tested a number of Nero configurations for CDs containing folder names with dollar signs ("$") and filenames with spaces. At the root of the CD I used a file called Office 2003 Updates.txt. I then created an $OEM$ folder and added the same file. Here's my results:

These tests were conducted on Nero Burning ROM version 6.6.1.115d. Data Mode was set on Mode 1 for all tests. File Name Length (ISO) was always set on Max. of 31 chars (Level 2) when the box was ungreyed. Any ungreyed "Relax Restrictions" checkboxes were checked.

File System: ISO 9660 only

Character Set: ISO 9660 (Standard ISO CD-ROM)

Results: ISO File System Only (No Joliet), "$"s changed to "_"s, and spaces in file names changed to "_"s.

File System: ISO 9660 only

Character Set: DOS

Results: ISO File System Only (No Joliet), "$"s remain intact, but spaces in file names changed to "_"s.

File System: ISO 9660 only

Character Set: ASCII

Results: ISO File System Only (No Joliet), "$"s and spaces in file names unchanged and intact.

File System: ISO 9660+Joliet

Character Set: ISO 9660 (Standard ISO CD-ROM)

Results: For ISO File System, "$"s changed to "_"s, and spaces in file names changed to "_"s. For Joliet File System, "$"s retained intact and spaces in file names untouched.

File System: ISO 9660+Joliet

Character Set: DOS

Results: For ISO File System, "$"s left intact, but spaces in file names changed to "_"s. For Joliet File System, "$"s retained intact and spaces in file names untouched.

File System: ISO 9660+Joliet

Character Set: ASCII

Results: For ISO File System, "$"s retained intact and spaces in file names untouched. For Joliet File System, "$"s retained intact and spaces in file names untouched.

File System: ISO 9660:1999

Character Set: Greyed Out

Results: For ISO File System, "$"s and spaces in file names unchanged and intact. Joliet file system not present.

Seems like the only Nero Burning ROM settings that won't tinker with dollar signs ("$") and spaces in filenames and foldernames for both the ISO and Joliet File systems is a "File System" set at "ISO 9660+Joliet" and a "Character Set (ISO)" set on"ASCII" .

I'll try these out when I get home.

Share this post


Link to post
Share on other sites
I then used Nero Burning Rom version 6.6.1.115d with the following settings to burn the XP files to a CD:

I don't use Nero Burning Rom. I don't dare to burn italian capital city ;)

On the Boot tab of Nero Burning ROM:

-"Image File" is pointed to the Microsoft Corporation.img file

-Under Expert Settings, Emulation is set to No Emulation, Load Segement of Sectors is set to 07C0, and Number of Loaded Sectors is set to 4

On the ISO tab of Nero Burning ROM:

-Data Mode is set to Mode 1

-File System is set to ISO 9660: 1999

Sounds reliable, should work.

Break, let me try myself again:

Previous mentioned iastor v8.6 floppy files.

Your settings to winnt.sif

[Unattended]
OemPreinstall=Yes
DriverSigningPolicy=Ignore
NonDriverSigningPolicy=Ignore
DriverSigningPolicy=Ignore
OemSkipEula=Yes

[Data]
MsDosInitiated="0"

[MassStorageDrivers]
"Intel(R) ESB2 SATA AHCI Controller" = OEM
"Intel(R) ICH7R/DH SATA AHCI Controller" = OEM
"Intel(R) ICH7M/MDH SATA AHCI Controller" = OEM
"Intel(R) ICH8R/DH/DO SATA AHCI Controller" = OEM
"Intel(R) ICH8M-E/M SATA AHCI Controller" = OEM
"Intel(R) ICH9R/DO/DH SATA AHCI Controller" = OEM
"Intel(R) ICH9M-E/M SATA AHCI Controller" = OEM
"Intel(R) ICH10D/DO SATA AHCI Controller" = OEM
"Intel(R) ICH10R SATA AHCI Controller" = OEM
"Intel(R) ESB2 SATA RAID Controller" = OEM
"Intel(R) ICH7R/DH SATA RAID Controller" = OEM
"Intel(R) ICH7MDH SATA RAID Controller" = OEM
"Intel(R) ICH8R/ICH9R/ICH10R/DO SATA RAID Controller" = OEM
"Intel(R) ICH8M-E/ICH9M-E SATA RAID Controller" = OEM
"IDE CD-ROM (ATAPI 1.2)/PCI IDE Controller" = "RETAIL"

[OEMBootFiles]
TXTSETUP.OEM
iaahci.cat
iaAHCI.inf
iastor.cat
iaStor.inf
IaStor.sys

XP files are at directory Thinkpad.

Iastor floppy files copied to I386\$OEM$. Read: there is a I386\$OEM$\TXTSETUP.OEM

Boot sector file (Microsoft Corporation.img) copy and renamed to Thinkpad\bootsect.bin.

That's file bootsect.bin, not BOOTSECT.BIN.

ISO image created: mkIsoThinkpad.cmd

mkisofs -iso-level 3 -U -D -force-uppercase -volid "XP_SLP_LENOVO" ^
-b bootsect.bin -hide bootsect.bin -hide boot.catalog ^
-no-emul-boot -boot-load-size 4 ^
-graft-points ^
-o Lenovo_OEM.iso ^
Thinkpad /$OEM$/Textmode/=Thinkpad\I386\$OEM$

Read directory Thinkpad goes to CD root.

And directory Thinkpad\I386\$OEM$ goes to CD \$OEM$\TEXTMODE.

http://smithii.com/files/cdrtools-2.01-bootcd.ru-w32.zip

Virtual machine does boot. Iastor files are copied to hard disk.

Real machine does boot. There is a hard disk connected to iastor. Installation F3 aborted at partition menu.

Share this post


Link to post
Share on other sites

Woohoo! Nailed it. My settings in Windows were correct, but my settings in Nero Burning ROM were off. After that tip-off from cdob and a little experimentation, I figured out that I had to set Nero to burn in the ISO 9660+Joliet "File System" and the ASCII "Character set (ISO)" on Nero's "ISO" tab. Otherwise, either the dollar signs in the $OEM$ directory name were changed to underscores, the spaces in file/directory names were changed to underscores, or the Joliet file system was omitted completely. It works now and works well. And it wasn't Microsoft's fault...shocking!

So cdob, thank you very much for all the help and pointing me in the right direction. Major kudos to you, sir!

krose, thanks for the tip. I would have tried it next if this didn't work, but was a little leery since it wasn't officially Microsoft sanctioned.

SyntaxError, yeah I was kind of shocked by how much nLite tinkered with. I might use it for my own personal work, but not for sensitive installs.

Thanks all

-bd

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...