Blogs‎ > ‎Tech Stuff‎ > ‎

2015.11.15 Native IDE vs AHCI (SSD Upgrade Gone Wild)

posted Nov 15, 2015, 4:40 PM by Troy Cheek   [ updated Nov 17, 2015, 1:55 PM ]
Back when I put together my latest computer just a few short years ago, Solid State Drives (SSD) were expensive.  They were more than $1 a GB, meaning that a 1 TB drive would set you back more than $1000 (if you could find one that big) whereas a mechanical Hard Disk Drive (HDD) that size was much less expensive.  A more reasonable 250 or 500 GB SSD would still cost you $250 or $500.  I paid well over $100 for a 120 GB SSD and well over $100 for a 2 TB HDD.  I installed my OS and frequently used programs/games on the SSD and put my music, videos, and less frequently used stuff on the HDD.  It seemed like a good trade off between speed and capacity at the time.  As the years went by, I found more and more stuff I wanted to install, leading to my frequent complaint that I was spending more time moving data around to make room for the latest games than I did playing the latest games.

But recently some family members were complaining how slow their laptop computers seemed, taking forever just to boot up in the first place, then taking forever to load programs, forever to shut down, etc.  I hadn't experienced that in quite a while.  I did some checking around and found that the average SSD was much cheaper than it used to be, was about the same size as a standard laptop HDD, and had the same connectors.  It looked like a simple replacement job.  So, I ordered a couple of new SanDisk SSDs (along with a generic USB-to-SSD adapter cable), and set out to migrate a couple of laptops.  I used Macrium Reflect to clone the old HDDs onto the SSDs.  A few minutes with a screwdriver and the drives were swapped.  A couple of reboots later (Windows needed to pick up some new drivers for the new drives) and we were in business.  Boot times went from 40 seconds to 20 seconds, shut down times weren't worth measuring, and overall the laptops just seemed "peppier."  You don't realize it, but pretty much every time you open a window, click on a button, change a setting, etc Windows accesses the disk to read or write some file or another.  Reading those files from RAM chips instead of spinning metal platters made a noticeable difference.

Somewhere along the line, I realized that I was upgrading loved ones' computers with faster drives with more capacity while I was still limping along with the tiny SSD I'd first bought with my computer.  I ordered an extra drive and got ready to trade my 100 GB SSD for a 500 GB SSD.  (Technically, 120 GB to 480 GB, but whatever).  I'd already been imaging and swapping from HDD to SSD, a whole different technology.  Surely, swapping from an SSD to a larger capacity SSD would be simple.

Sometimes, the universe just waits for me to get cocky.

Cloning the drive was simple enough and took only an hour.  (Cloning the first laptop took 12:09:48.  We don't know if that was a slow USB port or a software glitch or what).  Swapping out the drives physically took about that long.  Whereas the laptops had one little panel with a couple of screws, to get at the SSD on the main tower computer I had to remove both side panels, reroute some wires, and do the standard contortion gag of twisting my body so I could see the screw I was supposed to be turning or actually being able to reach the screw I was supposed to be turning, but of course never both at the same time.  I think the guys who assembled the computer for me put the drives in before they mounted the graphics card, because there was no way that thing was going to slide out of there.  Luckily, the 2.5" SSD was mounted in a 3.5" bay with a couple of brackets, so I was able to unscrew the drive from the brackets and get it out of there on its side.  It wasn't easy, but it was doable.  I left one side panel off because completely sealing up a computer is a guarantee that you will have left a wire unhooked somewhere.  I powered up and waited to see how fast Windows would load.

A disk read error has occurred.
Press ctrl-alt-del to restart.

Surprisingly enough, this did not bother me.  From Day One I've had this problem pop up from time to time.  Literally the first time I booted the computer when I got it home, this happened.  Pressing the three keys always made the computer boot fine the next time.  I don't know why it happened, why it only happened sometimes, or why restarting (or power cycling) always fixed it.  I pressed the three keys in question and waited for Windows to load.

A disk read error has occurred.
Press ctrl-alt-del to restart.

After several attempts with the same results, this did bother me.  I checked all the wiring, double-checked my BIOS settings (swapping the hard drive had changed the boot order, but I'd already fixed that), and tried again.  Same error.  I plugged in the old drive.  It booted right up.  New drive.  Read error.  I re-cloned the drive two more times, using different settings.  Read error.  Thinking maybe it was a SATA problem, I booted from both drives using the USB-to-SSD cable.  The old drive loaded fine.  The new drive, read error.  This was ridiculous.  I'd already performed this procedure twice on ancient laptops.  Why was I having difficulty with a relatively new tower system?  To the Internet!

According the various geniuses whose wisdom you find when you search for that error, this problem is that the SATA ports are trying to use the old IDE protocol when they need to be using the newer AHCI protocol.  The Advanced Host Controller Interface works with newer hardware, which apparently the old Integrated Drive Electronics doesn't, and offers many more advantages that I didn't care about.  I also didn't care that the crappy old laptops could apparently talk to the brand new SSDs just fine.  I just wanted my computer to boot again.  I found the BIOS setting to enable AHCI, rebooted again when this apparently changed boot order of the hard drives, and watched the new drive almost load Windows before briefly showing a BSOD (Blue Screen of Death) and shutting down.  I hooked up the old drive, had to change the boot order again, and found that the old drive did the same thing.  This concerned me, because my previous train of thought had been that I had a perfectly fine operating system on the old drive, so if all else failed I could always just put it back in and go about my business.  Luckily, switching back to IDE (which was called Native IDE for some reason) let the old drive boot.  To the Internet!

Apparently, Windows needs special drivers to talk to IDE or AHCI devices.  Since Windows had been installed when the computer was in IDE mode, it had loaded the IDE drivers but had not loaded the AHCI drivers.  Halfway through boot when enough of Windows had loaded so that it took over, it tried to speak IDE to the AHCI port and bad things happened.  The trick was to either re-install Windows (Ha!) or change the registry so that Windows realized it was missing a driver.  I went for the latter solution, which it turns out even Microsoft admits is necessary sometimes.  I soon had the old drive booting in both IDE and AHCI mode.  The new drive still didn't work.  When I cloned the old drive, it didn't have the AHCI drivers loaded.  I had to clone the old drive again, hook the new drive up again, change the boot order of the drives again, and finally I could boot the new drive.  After a couple of reboots, all the drivers and settings and whatnot settled down.  I pulled up my Windows Experience Index.  For Windows 7, it goes from 1.0 to 7.9 and allegedly tells you how kick-ass your computer is.  With the old SSD, my Windows Experience Index was a paltry 5.9 possibly because I was in Native IDE mode or possibly because I had bad drivers or possibly because the Moon was in the wrong phase.  With the new SSD and new mode and new drivers, well, see for yourself:
I think I can go to bed now.