I'm using ubuntu 12.04 LTS, everything was fine and few days ago I got following error:
Gave up waiting for root device. Common problems: - Boot args (cat /proc/cmdline) - Check rootdelay= (did the system wait long enough?) - Check root= (did the system wait for the right device?) - Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/disk/by-uuid/0c65a8c2-a7654613-aa98-16ff0119ceb9 does not exist.
Dropping to a shell!
and then comes (initramfs) prompt. Here I tried @ sudo update -initramfs -ubut it is not working.
How to overcome this problem?
2 Answers
Type exit at the prompt and the system should boot. You should then edit your /boot/grub/menu.lst to wait longer for the root device.
Your root device is not ready when /scripts/local in initrd trying to mount it. I've the same problem with one of my test servers. The general solution is to pass rootdelay=XXX to the kernel. However, it doesn't solve my problem.
My workaround for this is to add sleep NNN before maybe_break mount into /usr/share/initramfs-tools/init and update initrd:
sudo sed -i 's/maybe_break mount/sleep 5\nmaybe_break mount/g' /usr/share/initramfs-tools/initsudo update-initramfs -u