I've been trying to install Ubuntu 16.04 from a USB drive for the last few days and running into the following issue on boot:
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! UUID=<drive-uuid> does not exist.
Dropping to a shell!
BusyBox v.1.20.2 (Ubuntu 1:1.20.2-1ubuntu1) built-in shell (ash)
Enter 'help' for list of built-in commands.
(initramfs)
One thing to note from above: I can't use the shell (no response) after (initramfs)
above in comparison to some solutions I've seen
For some context, I'm installing it on hard drive on a computer that has two other hard drives: one with a Windows 7 install and the other that's just NTFS storage. The Ubuntu installation is on /dev/sdc1
and the boot loader the same.
Here are the things that I've tried to fix this, using a Live Ubuntu and chroot:
- Validated that the UUID that appears after
blkid
is the same as that in/etc/fstab
- Replaced the path in
/etc/fstab
with/dev/sdc1
. I get the same error of "Gave up waiting for root device" except the UUID is replaced with/dev/sdc1
- After doing 2, uncommenting
GRUB_DISABLE_LINUX_UUID=true
in/etc/default/grub
. Running update-grub afterwards. - Adding
rootdelay=40
and, separately,rootwait
to GRUB_CMDLINE_LINUX in/etc/default/grub
. Running update-grub afterwards.
I just don't understand how it's asying the device does not exist, since I have to go through the boot loader (on the same drive) to even start Ubuntu.
If it's an additional hint, when I try to run the Ubuntu recovery mode, it ends up looping on the line Begin: Running /scripts/local=block ... done.
before giving me the original "Gave up" error.
There are quite a few other posts about this, they've been helpful in debugging, but they don't seem to specifically apply to my situation: