Linux SATA Drive is Being Displayed as /dev/hda Instead Of /dev/sda

Q. My SATA drive is being displayed as /dev/hda instead of /dev/sda. How do I fix this problem and make sure I get /dev/sda and speed of SATA under Linux operating systems? A. This is usually related to BIOS settings. Reboot your system and enter into BIOS setup:

Check BIOS settings

Make sure Parallel ATA is "Enabled"

Make sure "Native Mode Operation" is set to "Serial ATA"

Also, set SATA Controller Mode option to "Enhanced"

Save the changes and reboot the server. Now Linux should rename the SATA drive from /dev/hda to /dev/sdb.

Make sure kernel is compiled with SATA support

Usually vendor kernel from Debian/RHEL/Rehat/Fedora comes with SATA enabled. Sometime you may compile custom kernel. If this is case run following command to find out if SATA kernel support is compiled:grep -i SATA /boot/config-$(uname -r) Sample output:

Thanks Vivek, I just installed centos 5.5 which was running like a dog until I spotted I had the same problem you describe above. My bios options for SATA were a bit different to yours but after playing with those, it’s all working. Nice one! :) Ed.

I was having the same symptoms as you, but none of your solutions helped because my hard drive was corrupted. It took almost 3 hours to get to 50% formatted — I wasn’t really paying attention. I’ve formatted IDE133 drives in less than a minute with centos — so I figured something was up. I popped another SATA drive into my box, and I was installing centos, and past formatting in no time.