- - - By CrazyStat - - -

11. December 2012

VIA VT6421 SATA RAID Controller: Hardware Initiate Failed (HDD)

Filed under: Uncategorized — Tags: , , , , , , , , , , , , , , — Christopher Kramer @ 21:24

My home-server’s motherboard is quite old and does not have onboard SATA. Therefore, when I bought a new hard drive for the server, I connected it to a PCI SATA controller card. Performance doesn’t matter much with this server (I am the only user, it mostly only runs cronjobs and the-like). The SATA card had a VIA VT6421 chip on it. From time to time, I had the problem that the computer wouldn’t boot failing with this error message:

Hardware Initiate failed. Please check Device.
The BIOS does not be installed. Press g to Continue.

Nice error message 😉
If you google this, you’ll find lots of people with this problem.

When I pressed CTRL+ALT+DEL to reboot the pc, it always detected the drive then. On the internet I found out that the problem is caused by SATA 300 (3Gbit/s) hard drives attached to the VT6421, which only supports SATA 150 (1,5Gbit/s). The Samsung drive I had at this time (a Samsung F2 EcoGreen 1500GB HD154UI 5400/m) didn’t have a jumper to change to SATA 150 (like some drives have), but Samsung provided a bootable tool to change the speed setting of the drive. (Samsung does not produce hard drives any longer, so I couldn’t find the software on the Samsung site anymore. I have it burnt on a CD, though. Contact me in case Samsung doesn’t publish it any longer and you really need it.)

Using the tool with the Samsung drive didn’t really solve the problem for me. But as it only occurred from time to time, I did not invest any more time to solve the problem.

Then one day the Samsung drive died 🙁 and I bought a new drive. This time it was a Seagate drive (Seagate 2000GB Barracuda Green ST2000DL003). With this drive, the problem occurred every time I booted the pc. As before, restarting the computer made it detect the drive, but it was very annoying. This drive has a jumper to set the speed to SATA 150. I inserted the jumper as described on the Seagate website (attention! look at the graphic twice because it is drawn upside-down!). The problem remained unchanged :(.

Finally, I found the solution to my problem while googling forums again. Somebody wrote that he could not make the SATA controller detect the drive since he disconnected the dvd drive (sorry I cannot give the link, I do not remember where I read it. Thanks a lot to the guy who wrote this nevertheless!). So I connected an unused dvd drive to the IDE port of the sata controller board (I did not use the IDE ports of the VT6421 card at all before, only the sata ports). And from now on, the controller detected the drive correctly! 🙂

So the short story is: Connect some additional device like a dvd drive to the IDE port of the controller card to solve the SATA problem!
At lest it worked for me. Maybe you additionally need the jumper as well (I did not remove it).

Kind of weird. I guess detecting the IDE device makes the controller busy for a moment so the drive is ready once the controller tries to detect it. But that’s only guessing.

I hope this helps somebody with the same problem. Please share your experience in the comments if it helped you.


Try my Open Source PHP visitor analytics script CrazyStat.