I have a Linux system with kernels 3.10.17 and 4.8.4 installed, but only the older kernel can boot. Trying the newer one, "Gave up waiting for root device" occurs along with a bunch of "modprobe: Can't load module".
Since the root device in fact contains the modules, I am inclined to think the former causes the latter. Both GRUB Legacy menu.lst entries are identical, and blkid and /dev/disk-by-uuid/ confirm that they contain the correct UUID. Adding a rootdelay does not help (and is anyway not needed for the older kernel to boot).
The other common problem helpfully mentioned in the error text is missing modules. The location of usb-common.ko did change between these two kernels; but modinfo agrees that the usb-common module at the path given is for kernel 4.8.4. Also, if the disk is missing, how could the module format have even been assessed?
What's stopping the system from booting kernel 4.8.4?
Booting the kernel.
Loading, please wait...
modprobe: Can't load module usb_common (kernel/drivers/usb/common/usb-common.ko): invalid module format
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/f0b6aabc-433a-46b6-9e03-1aba89384d48 does not exist. Dropping to a shell!
modprobe: Can't load module usb_common (kernel/drivers/usb/common/usb-common.ko): invalid module format
modprobe: module ehci-orion not found in modules.dep
modprobe: Can't load module usb_common (kernel/drivers/usb/common/usb-common.ko): invalid module format
...