Fixing Linux when it “gave up waiting for a root device”

Recently I was installing Kubuntu 9.10 (also known as Karmic Koala) when my system refused to boot. I was informed that my system had “given up waiting for a root device.”

But there’s a simple solution!

I suspect many of you may be in a similar situation and that’s why you’re here. Let’s first consider the “gave up waiting for root device” error.

What does it all mean? Well, your boot loader was trying to see if your main hard drive (i.e. “root device”) was starting up. But guess what? It didn’t start — probably because it wasn’t there.

“But I didn’t take it out!” you exclaim, because you’re not stupid enough to take your hard drive out of your computer and then be surprised when it doesn’t work.

No, the problem is because your computer couldn’t find your drive.

You’ve got to fix the boot loader, and you have two options. If you’re lucky like me, your computer drops to a “Busy box” shell on this type of error. This is a sort of bare minimum shell that does just enough to get your computer running. If this happens, you’ll see some instructions on the screen regarding Busy box.

Use Busy box to access your drive
Here’s what to do if you’re using the Busy box command line:

  1. Create a new folder to mount your hard drive.

mkdir /drive

  1. Mount your hard drive to the folder you just made.

mount /dev/sda1 /drive

  1. In my example, my hard drive was located at /dev/sda1 and I suspect this is pretty normal. Your drive may be sda2, sdb1, sdd0… who knows! It may take a few tries. If you guessed the number incorrectly, you can always try again by unmounting and then going back to step 2. Here’s how you unmount your drive:

    umount /drive

  2. Make your hard drive the root so we can fix it.

chroot /drive

From here you can use nano, emacs, or vi to fix your problem. Skip below for more info.

Without Busy box
If you’re not lucky enough to get Busy box prompt, you can always boot off of a Linux Live boot CD. The regular Ubuntu install CD can be used in live boot mode, as can Knoppix. When you boot off of that CD you’ll be taken to a full-fledged Linux environment where you can fix your problem in the same way. Your hard drive should be easily accessible, probably with a nice GUI and everything. Just open the drive and you’re ready to go.

What to do next
If you have a similar problem as me, the official Ubuntu 9.10 KarmicUpgrades doc has a resolution.

Otherwise, try Googling around some more. It’s probably a very similar boot loader issue that can be fixed easily once you’ve completed the above steps.