This question came up on ServerFault a while back and a wanted to expand on the solution more. The basic problem that the person was having was that the iSCSI disks were taking a long time to come online which was causing the SQL Server to crash when the server was rebooted.
The solution that I came up with was to change the SQL Server service to make it depending on the disk drivers to ensure that the disk drivers were online before the SQL Server attempted to start. Fortunately this is a pretty quick registry change which can fix the problem.
To fix this, open the registry editor (regedt32) and navigate to HKEY_Local_MachinesystemCurrentControlSetServicesMSSQLSERVER and find the DependOnService key (if it isn’t there for some reason, create it just as shown with a type of REG_MULTI_SZ). Edit the DependOnService key and set the value to “Disk”. Click OK, close the registry editor and restart the server.
Once the key has been set the SQL Server will no longer start up until after the disk drivers have been started.
This will work for all version of SQL Server that are installed on a version of Windows which has the registry (so probably SQL Server 6.5 and up).
As this is a registry change, don’t be making this change on all your servers. Only tweak the registry if you know what you are doing. If you kill your system by editing the registry it’s your fault, not mine. I don’t want to hear about it if you delete a bunch of keys by accident, on purpose, because you didn’t read this correctly, etc.