I've been lurking for a while on these forums (mostly tring to find out how to get SATA support in XP ), anyway the last couple of days I've got round to doing some reasonably comprehensive tests of the different SATA drivers for XP, so I thought I post my findings here, and hopefully make a useful replacement for How to install Windows 2000/XP/2003 guests with SATA support, which is a few years old now.
I've only done these tests using Windows XP; they may also work on Windows 2003, but I haven't tested that.
First thing to say: the SATA controller that VirtualBox emulates is the Intel ICH8M AHCI controller.
Intel has 4 SATA drivers available:
- 126.96.36.1992: Installer
- 188.8.131.523: Installer F6 Floppy files
- 184.108.40.2064: Installer F6 Floppy Files
- 10.1.0.1008: Installer F6 Floppy Files
There are two ways you can try install XP with SATA support:
- you can install directly to a SATA drive by giving XP the drivers prior to installation (which can be done by using an F6 floppy or by integrating using nLite, instructions below)
- or you can install it to an IDE drive, install the SATA drivers afterwards, and move the virtual hard disk to a SATA controller.
- Code: Select all Expand viewCollapse view
F6? nLite? Installer? Supports
220.127.116.112 Y Y Y HDD only
18.104.22.1683 N N Y HDD only
22.214.171.1244 N N Y HDD+CD
10.1.0.1008 N N Y HDD+CD
The first three columns say what ways you can install the driver (the Ns indicate a bluescreens occurs at ~34 minutes remaining on the installation), and the last column what virtual hardware the driver supports (if you add a virtual CD drive to one of the drivers that doesn't support it, it doesn't bluescreen, it just boots incredibly slowly and hangs before the start menu appears)
Method 1: Installing using the driver installer after XP installation
This is pretty simple, and can be done to existing installations. Once you have XP installed as per usual, add a SATA controller (you don't have to add a hard disk to it, in fact I'm not even sure if it needs to be there; but it definitely works if you do! Perhaps someone else can do some tests on that; I've already done enough XP installs in the last few days to last a lifetime...), boot the virtual machine, run the installer, shut down the virutal machine, remove the virtual hard disk from the IDE controller, and add it to the SATA controller. This can be done through the GUI in Settings -> Storage as per normal.
Method 2: Installing using F6 floppy/integrating using nLite
Only the 126.96.36.1992 drivers work for this, the rest give bluescreens. This driver is also older, and doesn't support SATA CD drives (wasn't a problem before VirtualBox 4.0, as before then VirtualBox didn't have virtual SATA CD drives), so I would probably recommend against this method; installing to IDE first works absolutely fine, even if it doesn't feel as "clean" a way of doing things. However, if you still want to, I'll provide the rough instructions here.
Extracting the drivers
Irritatingly, the one driver that does work with F6 install/nLite integration isn't available from Intel as a zip with the drivers in, so you have to extract them from the installer, which is a Windows program so you'll need an existing Windows operating system somewhere (I haven't yet found a way of extracting them without actually running the program). Thankfully this is easy; just run
replacing C:\xpsata with wherever you want to extract the drivers to.
Method 2a: F6 floppy install
What you need for this is a floppy image with the files you've just extracted on it.
- On any operating system, you can use an existing virtual machine and floppy image: If you have an existing virtual machine and any existing floppy image, just make a copy of the floppy image, attach the copy to the virtual machine, format the floppy and copy the driver files to the floppy.
- On Windows you can use MagicISO: Go to File -> New -> Disk image -> 1.44MB, browse to where the driver files are in the bottom pane, and drage to the top pane, and save the floppy image. (See here)
Press F6 if you need to install a third party SCSI or RAID driver.... Press F6 at this point. Nothing will happen for about 30 seconds; this is normal. At some point, a screen looking like this will appear:
Press S, and press up and down to find
Intel(R) ICH8M-E/M SATA AHCI Controller(there are more than 4 options, there just isn't a scroll bar displayed, keep pressing up and you'll find it). Press Enter to select, and then Enter to continue, and install XP as normal.
Method 2b: Integrating using nLite
See this guide for general information as to how to use nLite. To integrate the SATA drivers, make sure you choose Integrate Drivers and Create Bootable ISO on the Task Selection Screen. When you get to the Drivers screen, click Insert -> Single Driver, and find where you extracted the drivers, and open iastor.inf. A screen will come up like this:
Select "Intel(R) 82801HEM/HBM SATA ACHI Controller (Mobile ICH8M-E/M)", and press OK. Proceed with nLite as normal, and use the ISO you created to install XP. Remember you'll need to use an IDE CD drive in the virtual machine, as this driver doesn't support SATA CD drives.
I hope this is helpful!