A machine that had been working perfectly under various Ubuntu versions had started throwing the "Gave up waiting for root device" error after having one of its IDE hard drives removed. The two remaining hard drives were a Western Digital IDE drive and and WD SATA drive. The remaining IDE drive was properly on the end of the ribbon (not the middle) but had it's jumper set to "Master with Slave". Removing the jumper put the drive in "Cable Select" mode and the "Gave up waiting for root device" error went away.
The usual workaround for the "Gave up waiting for root device" error is to increase the rootdelay or disable it. This is done by adding either "rootdelay=90" or "norootdelay" to the Grub kernel line. If the error catches you off guard you can simply wait a minute at the prompt, then type "exit" to get the system to boot. But in this case it was obvious that the system was capable of booting without an extended root delay, the question was what is holding it up? It didn't take me long to think it through!
The moral? Although obviously a hardware problem, the "Gave up waiting for root device" error is potentially an easy, no-cost fix. No forum and mailing list posts that I could find mention the actual cause of the error, only the root delay workaround is mentioned. Hence this post, I hope that it finds its way to those who need it.
Date Published: 2011-03-24