This entry was originally posted on 2 Sep 2006 - a hack the Windows XP Recovery Console to include the SATA driver, as it applied to a Hewlett-Packard Pavilion dv5201tx notebook.

The Windows Recovery Console is, to me, an essential install. Normally, from the Windows XP/2000/2003 CD, just run X:\i386\winnt32.exe /cmdcons to install (where X: is the CD drive, or alternatively, C: since most pre-installed notebooks include all the setup files in C:\i386)

So imagine my horror when upon re-booting to test it, I was greet with a Blue Screen of Death and a STOP error! Testing with the Recovery Console directly off the CD also gave the same result.

A little research found me the reason: SATA hard disks require a driver that is not included with XP!

Normally, when the Windows CD boots, it's possible to install the driver at the "Press F6 if you need to install a third party SCSI or RAID driver..." prompt, but this will load the drivers of a floppy drive. But of course, modern notebooks have no floppy drives!

Again, I couldn't find the solution on the web, but fortunately, by examining the Recovery partition, I managed to figure this out.

First, in the Device Manager, display the SATA Controller properties. In my case, its an Intel(R) 82801GBM SATA AHCI Controller. The Driver Details... button on the Driver tab will show the driver filename (iaStor.sys for me). Next, check the Matching Device Id in the Details tab to find the string the uniquely identifies the hardware (PCI\VEN_8086&DEV_27C5&CC_0106).

Intel(R) 82801GBM SATA AHCI Controller Driver Properties

Okay, now, in the \cmdcons folder, edit txtsetup.tif. In the section [SourceDisksFiles] add:

[SourceDiskFiles]
iaStor.sys = 1,,,,,,4_,4,1,,,1,4

In the section [HardwareIdsDatabase] add the following (most will not be needed, only the one matching the ID previously is required):

[HardwareIdsDatabase]
PCI\VEN_8086&DEV_25B0&CC_0104= "iaStor"
PCI\VEN_8086&DEV_24DF&CC_0104= "iaStor"
PCI\VEN_8086&DEV_2652&CC_0104= "iaStor"
PCI\VEN_8086&DEV_27C5&CC_0106= "iaStor"
PCI\VEN_8086&DEV_2653&CC_0106= "iaStor"
PCI\VEN_8086&DEV_2652&CC_0106= "iaStor"
PCI\VEN_8086&DEV_27C3&CC_0104= "iaStor"
PCI\VEN_8086&DEV_27C1&CC_0106= "iaStor"

In [SCSI.Load] and [SCSI] sections respectively, add:

[SCSI.Load]
iaStor = iaStor.sys,4
[SCSI]
iaStor = "Intel(R) SATA RAID Controller"

Finally, from command line, use makecab to compress the driver file:

C:\windows\system32\drivers\iaStor.sys C:\cmdcons\iaStor.sy_

And that worked for me!

Do this at your own risk! I disclaim any responsibility for anything that may (or may not) happen.