Recently, I consolidated several old, small hard drives in my server onto a single new, large hard drive. The problem was that this drive was not detected on any of the internal SATA ports but worked just fine in an external USB docking station.
How can that be?
SATA ports and cables are easy to test and were not the culprit. The cable harnesses in my server do not connect to 3.3V because of issues with shucked drives. So, the 3.3V pin should not be the issue here and, indeed, the new drive, a Toshiba MG07ACA, does not use the 3V3 rail at all as the manual states on page 11. So what gives?
As it turns out, the disk spins up too slowly! It is not ready when the BOIS/UEFI checks for disks and is therefore ignored once the disk is up to speed and responsive. Over USB hotplug is active, so it doesn’t matter if the disk starts a bit faster or slower. On internal SATA ports, the issue can therefore be mitigated by enabling SATA hotplug. Once enabled, the disk works just fine.
Enabling SATA hotplug on Asrock mainboards
In the manual of my Asrock mainboard it is not explained how or where in the UEFI hotplug can be enabled. You can find the option under Advanced ➡️ Storage Configuration ➡️ SATA_3_X ➡️ Hot Plug ➡️ Enable