How To: Switch a VirtualBox Windows Guest Hard Drive from IDE to SATA Mode

By default, any Hard Drives you create for your Virtual Machines use a virtual IDE controller, which takes more CPU to operate and is slower in operation than a virtual SATA controller. So, it’d be nice to just flick a switch and say Use a virtual SATA controller instead and get instantly higher disk performance, right? Only Windows will BSOD on you if you try that, so you have to do a bit of tweaking first for it to work.

1.) While Vista and Windows 7 come pre-installed with SATA drivers, XP does not – so if your virtual guest OS is XP you’ll need to go get the Intel Matrix Storage Driver from here. Note: Please see the bottom of this article for Windows 7 IDE to SATA instructions.

Update: Some people have reported that Intel have changed the version of the Matrix Manager and it no longer works with VirtualBox (see comments), so instead, why not try this, which is the version of the Intel SATA Matrix Manager driver I used when I did this originally. Launch the installer and slap Next/Next/Finish until it’s installed.

Install Intel Matrix Storage Driver

2.) Next we need to remove our current IDE/ATAPI Drive Controllers from the Device Manager, so right click on My Computer and select Manage from the pop-up menu, then click on Device Manager in the left pane of the Computer Management window and expand the IDE ATA/ATAPI controllers section in the right pane.

Manage My Computer

IDE ATA/ATAPI Controllers

3.) You should see Primary and Secondary IDE Channels, plus some other bits as pieces as shown in the screenshot above – now it’s time to delete them by selecting each one in turn and then pressing the delete key on the keyboard. It might look like a dodgy thing to do, but trust me – I found this trick out while working as a Subsystem Integration bod. If you’ve got one build running on one piece of hardware, and you want to transfer the entire build (via ghost or whatever you want) to another piece of hardware with different controllers, you’ll get a BSOD unless you first delete the drive controllers like this, backup your build, and then ghost it to your new hardware setup.

After you delete each one Windows will say you need to reboot for changes to take effect – don’t. Get rid of as many device controllers as you can, and don’t worry if the Primary IDE controller comes back on its own as soon as you’ve removed it, it’s just there to keep things ticking over until you finally do reboot.

Remove IDE Controller

Don't Reboot Windows Yet

4.) Power off (not suspend) your Virtual Machine then click on the Settings button with the machine you’re working on selected. Then, under the Storage item of the left pane remove your virtual machines hard drive from the IDE Controllers section, add a New Controller and choose SATA Controller, then add your virtual hard drive to the new SATA Controllers section as shown below:

Switch Virtual Hard Drive From IDE to SATA

5.) Boot up your virtual machine and once logged in let it thrash around setting up your new devices. Once it’s done that, it’s gonna be rather keen to reboot. Let it.

Windows is keen to reboot

6.) After you’ve rebooted from the above step, hover your mouse cursor over the drive activity icon and you’ll see it’s running under a SATA controller; lower cpu usage and faster disk throughput is deservedly yours :)

VirtualBox running SATA controller

Note: VirtualBox will set SATA Controllers 0 through 4 to work in IDE compatibility mode by default, so you might want to switch to SATA Controller port 5, or anything higher than 4 to run in true SATA mode, only when I tried this (after first leaving it as port 0 and booting, admittedly) the machine couldn’t find the drive if I switched it to 5. Could be try that before rebooting after IDE -> SATA controller change, but I’m not in the mood to go through all that again.

If you want more info, try: Understanding and Configuring Virtual Box Hard Disks

Cheers!

Credits: Article based on and adapted from Matt Bottrell‘s IDE -> SATA changeover technique found here.

Update for Windows 7 IDE to SATA migration: If you want to switch a drive from a IDE controller to a SATA controller in Windows 7, then you need to perform the following steps:

  1. Make sure that both a SATA and your current controller are being presented to Windows. The SATA controller doesn’t need to have any disks attached to it. Once you have done so boot up Windows.
  2. Remove the IDE controller as described in the above URL [which is Step 2 in this article -r3dux]. Shutdown Windows from inside the guest.
  3. Move the image over to the SATA controller by removing it from your current controller and adding it to the SATA controller
  4. Boot up Windows again and it should boot into Windows, detect the changes and prompt you to restart when done as per the above instructions

Props to NetMusician.org for the Win 7 adaptation!

37 thoughts on “How To: Switch a VirtualBox Windows Guest Hard Drive from IDE to SATA Mode”

  1. I found it was easier to simply add the SATA controller before booting. Then install the driver as suggested. Then shut down the machine, detach the disk from the IDE controller and add it to the SATA controller. Then boot! You don’t need to remove the IDE controller in device manager, as this is required for the CD-ROM drive and will only get reinstalled.

  2. I was in the process to switch IDE to SATA mode for some of my guest XP. For one of them, I did a little experiment:
    I moved the disk directly to SATA port 5 instead of port 0 but XP can’t boot up. So I was forced to move it to port 0.

    Maybe it’s not possible to avoid “IDE compatibility mode”??

    1. Yeah – that could well be the case, which would be a bit of a shame… So the only way to get true virtual SATA with maximum performance would be a clean install directly onto a virtual drive with SATA port 5 or higher. And this used to present its own issues because the original XP didn’t come with SATA drivers, although it’s likely that a copy of XP with SP3 slipstreamed in would have native SATA drivers.

      Hmm, I’ll give it a go and see what happens…

      1. New virtual machine with new virtual SATA drive on port 5 and TinyXP: Installs to drive, reboots machine to boot up… won’t reboot (can’t read drive) – Drats!

        However, when googling the issue to see if I could force it by offering some SATA drivers during install, I came across this:

        VirtualBox User Manual: If you enable the SATA controller, this will be shown as a separate, additional PCI device to the virtual machine. VirtualBox supports up to 30 SATA slots (numbered 0-29 in the graphical user interface). Of these, the first four (numbered 0-3 in the graphical user interface) are operated in IDE compatibility mode by default. IDE compatibility mode means just that the BIOS has access to the drives. Disks assigned to those slots will operate in full-speed AHCI mode once the guest operating system has loaded its AHCI device driver.

        So it seems that “IDE compatibility mode” doesn’t mean the drive’s running slower! Result!

  3. Hey guys when i try to install the drivers for the SATA it says that it does not meet the requirements…
    any idea whts happening
    thx

    1. Sorry – not seen that error crop up, could you provide the exact error message? Or better yet, just google the exact error message (that’s all I’d be doing if you told me it, anyway!)

      1. It means the current Intel Matrix Storage driver does not work as the one you used when you wrote this. I could follow your instructions before but now I get the same error as said above (requirements not met), and the only thing that has changed is the Intel download.

        1. Okay – thanks for the explanation – I’ve dug up the version of the Intel Matrix Manager SATA driver I used to originally do this, uploaded it, and linked to it in the article.

          Cheers!

          1. I experienced the same issue as well. Once I added the SATA controller, the error disappeared. I assume it didn’t want to install the drivers because there was no corresponding hardware present. I could be wrong but that solution worked for me.

  4. Requiring readers to download yet another zip program, with a file in a proprietary format, to open a file that’s already meant to be downloaded directly, is not very nice.

    But thanks for the article.

    1. You’ve lost me – what are you talking about? You don’t have to download any zip program, I’ve just provided a direct link to the version of the Intel Matrix SATA driver which I used, and which works.

      Please clarify your comment and I’ll make any changes necessary.

      Ah – I see what you mean – I’d 7zip’d the executable to save disk space and bandwidth. I’ve now extracted it and changed the link so it goes directly to the exe.

      Relatedly, 7zip uses a completely open format (not a proprietary format) and the 7zip client itself is free open-source software (FOSS) which is available for most all modern platforms including BeOS, Amiga and even Mac =P

    2. Bro, 7z is about as open as it gets. When I read your comment, I was scared it was like a powerISO or some junk. No, lzma is open, I’ve developed an app that uses lzma compression, because it’s just that good and that open. You do realize your name has the letters “pdf” in it, right? :P

      Thanks for the article r3dux. You made my day.

  5. I’ve tried this procedure with virtual Windows7, but it doesn’t work for me. After setting up SATA, Win7 booting halted with bluescreen.
    How can I change my virtual Win7 IDE to SATA?

  6. Hi VChris, Windows 7 should come with SATA drivers, so you shouldn’t need the Intel matrix drivers at all. Just make sure to delete the drives from the device manager as shown above before switching IDE to SATA and you should be fine.

    If you’ve already installed the Intel matrix driver then you should prolly uninstall and reboot first.

    To be fair, I’ve only ever used this technique myself on XP, but I’d expect it to work on Win7 – can any readers confirm/deny that it works on Win7?

  7. Hi r3dux, thanks for your reply. I’ve tried exactly the way you say, but it didn’t work :(
    I didn’t install intel driver, I didn’t install SATA driver, just remove the devices from the device manager, then shutdown virtual Win7, then I’ve removed the IDE storage from VB, then add the SATA storage, and reboot virtual Win7. It started, but on the boot it was frozen with bluescreen. :(
    Sorry for my bad english, I’m just Hungarian :)

    1. Hmm – could be the case that this particular trick doesn’t work with Win 7 then… As mentioned, I’ve only ever used it for XP virtual machines, and any Win 7 machines I just create as native SATA drives from the start, so you might have to create a new virtual machine and move things across to it!

  8. Hi,

    If you are getting the “hardware not supported by driver” error, then try this. First, check your driver supports your CPU and hardware (see the readme notes for the driver on the Intel download site). The latest Rapid Storage driver seems to support a more general range of CPUs than the Matrix Storage Manager, for instance.

    If you still get the error, then add the SATA interface to your VM before trying to install the Intel driver: 1) Power off the VM, 2) In the VM storage settings, add the SATA interface (leave empty for now), 3) Power on the VM, install the Intel driver, 4) Power off, move the VHDs to the SATA interface, 5) Power on, and you should be good to go!

    This worked for me, hope this helps.

    1. Hi

      I am following your comments on the article about switching the virtual box windows guest from IDE to SATA. I, too, was getting the error msg about the hardware not supported by the driver. I followed your instructions and added the SATA to the storage configuration in VB. My question concerns the next step (I am a newbie to VM’s, sorry :) ) Do I use an existing VM or create a new one?

      Thanks
      Todd

      1. Use whichever VM you want to add a SATA interface and SATA virtual hard drive to.

        So if you have a VM called TestXP which has a virtual hard drive called TestXPDrive, and you want to switch it from using a virtual IDE hard disk to a virtual SATA hard disk, you do the following:
        – Shut down the TestXP VM,
        – Add a SATA interface from the VirtualBox VM Storage Settings screen (but do NOT add a hard disk yet – just add the SATA interface),
        – Boot the TestXP VM,
        – Install the Intel Matrix Storage drive
        – Shut down the TestXP VM
        – Remove your TestXPDrive virtual hard drive from the virtual IDE interface and add it to the virtual SATA interface you just added to the VM,
        – Boot ‘er up – you’re good to go!

        Hope this helps.

  9. Thanks for hanging on to this driver!

    I did a p2v on my work xp system using vmware’s free converter but the performance was terrible. Thanks your handy driver I was able to get my image converted to sata. I never bothered doing any benchmarking before changing controllers, but it is definitely faster.

    1. You’re welcome – glad to be of use! =D

      Also, I agree – there’s a definite speed boost to using a virtual SATA drive over a virtual PATA/IDE one, and if you can move the virtual machine’s hard drive to a non-booting drive (so the physical disk doesn’t have to do both system and virtual things) then things seem to get even snappier again…

  10. Thank you so much. I spent one day long to do this. God, you save my life :)

    Thank you a lot, r3dux and Spode… Have a nice day :)

  11. Thanks so much for the article! I took suggestions from the above comments and have it all working just great now. This is what I did for reference:
    1. Power down the VM.
    2. Add empty SATA controller.
    3. Boot the virtual OS.
    4. When XP asks you to install new hardware, ignore it and run the Intel SATA drivers.
    5. Delete your IDE hard disk entry in Device Manager and shutdown your VM again.
    6. In the VM settings, delete your IDE controller, and add a hard disk to the SATA controller.
    7. Boot your VM and all is well.

  12. Thank you very much!

    I ran into a problem after migrating Win7 from KVM to VirtualBox. I converted the win7.qcow2 image to VirtualBox win7.vdi. Then I created a machine for it in VirtualBox. Got a BSOD. I had mistakenly used a SATA controller and KVM only emulates IDE. Then I moved the image over to the IDE controller (ICH6), BSOD again. I had to use the PII4 IDE controller to get it to boot. Following the tips on this page I sucessfully moved the image over to the SATA controller again. Nice.

  13. FYI – don’t try to move your CD/DVD device to the SATA controller. It might sound like a good idea, but at least for me, XP would stop booting at a plain black screen (no BSOD even) until I moved it back.

  14. Hi all…

    One question… There are an Intel SATA Matrix Manager equivalent with AMD-based?

    I’m trying to install this but i’m getting the error : “This computer does not meet the minimum requirements for installing the software.”

    Thanks.

    1. I don’t think it’s a processor issue – my best guess is that it’s about the chipset / features of the emulated mobo and/or drive controller.

      Do you have AHCI enabled on the SATA controller of your VM? To check, bring up the settings for your virtual machine and click on Storage | SATA Controller the Type field should have AHCI as the setting, if it doesn’t change it so that it does (the VM will have to be stopped to make this change).

      If it’s not that, it could be the chipset emulated in your VM – again in the VM settings look at System | Chipset – mine says PIIX3 – if yours says ICH9 then this could be the cause of your troubles – but I don’t know how well Windows will handle you changing the chipset – it might be the case that your VM won’t boot after the change. You could try changing the chipset and booting in safe mode for your best chance of success, but there’s no guarantees. If it doesn’t work, you’ll need to create a new VM from scratch using the PIIX3 chipset.

      The last option I can think of would be to try a newer version of the Intel SATA Matrix driver as opposed to the one linked in this article.

      With any luck, at least one of these three steps will help!

      Regards,
      r3dux

  15. I got the error that Eduardo got about “does not meet the minimum requirements”. But the I used the SATA matrix driver linked here by r3dux and it installed OK.

    Win XP took an age to come back up after switching from IDE to SATA though; Explorer crashed; then I got a BSOD …

  16. I can confirm that the above method works on Win 8.1 that was upgraded from XP-> w7-> w8.1.
    I did not receive a dialog box for new hardware detected, possibly w8.1 loaded the driver during install even though it wasn’t used.
    Thanks for posting this info.

Leave a Reply

Your email address will not be published.