I'm running Ubuntu 13.04. Yesterday I tried to install updates but there was an error, and it suggested running apt-get -f install
which I did.
Now when I try to boot, I get an error "Gave up waiting for root device". The text is almost identical to the text shown in this and this question. However, the "built-in shell" simply doesn't work! Nothing I type shows up on the screen or does anything.
Loading the previous kernel works (although there are a few graphics glitches) but as far as I can tell, it should be booting the exact same stuff. The new kernel is 3.8.0-31-generic and the previous working one is 3.8.0-25-generic.
I tried adding a rootdelay
to grub as suggested but it just waits longer and shows the same screen. Here is my entire /boot/grub/menu.lst
file, comments removed:
default 0
timeout 3
title Ubuntu 13.04, kernel 3.8.0-31-generic
uuid c690c1e6-beb9-46e7-85c2-145cd07d44ac
kernel /boot/vmlinuz-3.8.0-31-generic root=UUID=c690c1e6-beb9-46e7-85c2-145cd07d44ac ro quiet splash
initrd /boot/initrd.img-3.8.0-31-generic
quiet
title Ubuntu 13.04, kernel 3.8.0-31-generic (recovery mode)
uuid c690c1e6-beb9-46e7-85c2-145cd07d44ac
kernel /boot/vmlinuz-3.8.0-31-generic root=UUID=c690c1e6-beb9-46e7-85c2-145cd07d44ac ro single
initrd /boot/initrd.img-3.8.0-31-generic
title Ubuntu 13.04, kernel 3.8.0-25-generic
uuid c690c1e6-beb9-46e7-85c2-145cd07d44ac
kernel /boot/vmlinuz-3.8.0-25-generic root=UUID=c690c1e6-beb9-46e7-85c2-145cd07d44ac ro quiet splash
initrd /boot/initrd.img-3.8.0-25-generic
quiet
title Ubuntu 13.04, kernel 3.8.0-25-generic (recovery mode)
uuid c690c1e6-beb9-46e7-85c2-145cd07d44ac
kernel /boot/vmlinuz-3.8.0-25-generic root=UUID=c690c1e6-beb9-46e7-85c2-145cd07d44ac ro single
initrd /boot/initrd.img-3.8.0-25-generic
title Ubuntu 13.04, kernel 3.8.0-23-generic
uuid c690c1e6-beb9-46e7-85c2-145cd07d44ac
kernel /boot/vmlinuz-3.8.0-23-generic root=UUID=c690c1e6-beb9-46e7-85c2-145cd07d44ac ro quiet splash
initrd /boot/initrd.img-3.8.0-23-generic
quiet
title Ubuntu 13.04, kernel 3.8.0-23-generic (recovery mode)
uuid c690c1e6-beb9-46e7-85c2-145cd07d44ac
kernel /boot/vmlinuz-3.8.0-23-generic root=UUID=c690c1e6-beb9-46e7-85c2-145cd07d44ac ro single
initrd /boot/initrd.img-3.8.0-23-generic
title Ubuntu 13.04, memtest86+
uuid c690c1e6-beb9-46e7-85c2-145cd07d44ac
kernel /boot/memtest86+.bin
quiet
title --------------------------------
root
title Windows Vista
rootnoverify (hd0,2)
savedefault
makeactive
chainloader +1
With the rootdelay the line in the top section was:
kernel /boot/vmlinuz-3.8.0-31-generic root=UUID=c690c1e6-beb9-46e7-85c2-145cd07d44ac rootdelay=120 ro quiet splash
As you can see the UUID is the same for all kernels. Why am I getting this problem, and what can I do to fix it?
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-=====================================-=======================-=======================-===============================================================================
un linux-image-2.6 <none> (no description available)
rc linux-image-2.6.28-11-generic 2.6.28-11.42 i386 Linux kernel image for version 2.6.28 on x86/x86_64
rc linux-image-2.6.31-22-generic 2.6.31-22.65 i386 Linux kernel image for version 2.6.31 on x86/x86_64
rc linux-image-2.6.32-25-generic 2.6.32-25.44 i386 Linux kernel image for version 2.6.32 on x86/x86_64
rc linux-image-2.6.35-22-generic 2.6.35-22.35 i386 Linux kernel image for version 2.6.35 on x86/x86_64
rc linux-image-2.6.35-23-generic 2.6.35-23.41 i386 Linux kernel image for version 2.6.35 on x86/x86_64
rc linux-image-2.6.35-24-generic 2.6.35-24.42 i386 Linux kernel image for version 2.6.35 on x86/x86_64
rc linux-image-2.6.35-25-generic 2.6.35-25.44 i386 Linux kernel image for version 2.6.35 on x86/x86_64
rc linux-image-2.6.35-27-generic 2.6.35-27.48 i386 Linux kernel image for version 2.6.35 on x86/x86_64
rc linux-image-2.6.35-28-generic 2.6.35-28.50 i386 Linux kernel image for version 2.6.35 on x86/x86_64
rc linux-image-2.6.38-10-generic 2.6.38-10.46 i386 Linux kernel image for version 2.6.38 on x86/x86_64
rc linux-image-2.6.38-11-generic 2.6.38-11.50 i386 Linux kernel image for version 2.6.38 on x86/x86_64
rc linux-image-2.6.38-12-generic 2.6.38-12.51 i386 Linux kernel image for version 2.6.38 on x86/x86_64
rc linux-image-2.6.38-8-generic 2.6.38-8.42 i386 Linux kernel image for version 2.6.38 on x86/x86_64
un linux-image-3.0 <none> (no description available)
rc linux-image-3.0.0-13-generic 3.0.0-13.22 i386 Linux kernel image for version 3.0.0 on x86/x86_64
rc linux-image-3.0.0-14-generic 3.0.0-14.23 i386 Linux kernel image for version 3.0.0 on x86/x86_64
rc linux-image-3.0.0-15-generic 3.0.0-15.26 i386 Linux kernel image for version 3.0.0 on x86/x86_64
rc linux-image-3.0.0-16-generic 3.0.0-16.29 i386 Linux kernel image for version 3.0.0 on x86/x86_64
rc linux-image-3.0.0-17-generic 3.0.0-17.30 i386 Linux kernel image for version 3.0.0 on x86/x86_64
rc linux-image-3.2.0-24-generic 3.2.0-24.39 i386 Linux kernel image for version 3.2.0 on 64 bit x86 SMP
rc linux-image-3.2.0-25-generic 3.2.0-25.40 i386 Linux kernel image for version 3.2.0 on 32 bit x86 SMP
rc linux-image-3.2.0-26-generic 3.2.0-26.41 i386 Linux kernel image for version 3.2.0 on 32 bit x86 SMP
rc linux-image-3.2.0-27-generic 3.2.0-27.43 i386 Linux kernel image for version 3.2.0 on 32 bit x86 SMP
rc linux-image-3.2.0-29-generic 3.2.0-29.46 i386 Linux kernel image for version 3.2.0 on 32 bit x86 SMP
rc linux-image-3.2.0-30-generic 3.2.0-30.48 i386 Linux kernel image for version 3.2.0 on 32 bit x86 SMP
rc linux-image-3.2.0-31-generic 3.2.0-31.50 i386 Linux kernel image for version 3.2.0 on 32 bit x86 SMP
rc linux-image-3.2.0-32-generic 3.2.0-32.51 i386 Linux kernel image for version 3.2.0 on 32 bit x86 SMP
rc linux-image-3.2.0-33-generic 3.2.0-33.52 i386 Linux kernel image for version 3.2.0 on 32 bit x86 SMP
rc linux-image-3.2.0-34-generic 3.2.0-34.53 i386 Linux kernel image for version 3.2.0 on 32 bit x86 SMP
rc linux-image-3.2.0-35-generic 3.2.0-35.55 i386 Linux kernel image for version 3.2.0 on 32 bit x86 SMP
rc linux-image-3.5.0-21-generic 3.5.0-21.32 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
rc linux-image-3.5.0-22-generic 3.5.0-22.34 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
rc linux-image-3.5.0-23-generic 3.5.0-23.35 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
rc linux-image-3.5.0-25-generic 3.5.0-25.39 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
rc linux-image-3.5.0-26-generic 3.5.0-26.42 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
rc linux-image-3.5.0-27-generic 3.5.0-27.46 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
rc linux-image-3.8.0-19-generic 3.8.0-19.30 i386 Linux kernel image for version 3.8.0 on 32 bit x86 SMP
rc linux-image-3.8.0-21-generic 3.8.0-21.32 i386 Linux kernel image for version 3.8.0 on 32 bit x86 SMP
rc linux-image-3.8.0-22-generic 3.8.0-22.33 i386 Linux kernel image for version 3.8.0 on 32 bit x86 SMP
ii linux-image-3.8.0-23-generic 3.8.0-23.34 i386 Linux kernel image for version 3.8.0 on 32 bit x86 SMP
ii linux-image-3.8.0-25-generic 3.8.0-25.37 i386 Linux kernel image for version 3.8.0 on 32 bit x86 SMP
ii linux-image-3.8.0-31-generic 3.8.0-31.46 i386 Linux kernel image for version 3.8.0 on 32 bit x86 SMP
ii linux-image-3.8.0-32-generic 3.8.0-32.47 i386 Linux kernel image for version 3.8.0 on 32 bit x86 SMP
rc linux-image-extra-3.5.0-21-generic 3.5.0-21.32 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
rc linux-image-extra-3.5.0-22-generic 3.5.0-22.34 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
rc linux-image-extra-3.5.0-23-generic 3.5.0-23.35 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
rc linux-image-extra-3.5.0-25-generic 3.5.0-25.39 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
rc linux-image-extra-3.5.0-26-generic 3.5.0-26.42 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
rc linux-image-extra-3.5.0-27-generic 3.5.0-27.46 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
rc linux-image-extra-3.8.0-19-generic 3.8.0-19.30 i386 Linux kernel image for version 3.8.0 on 32 bit x86 SMP
rc linux-image-extra-3.8.0-21-generic 3.8.0-21.32 i386 Linux kernel image for version 3.8.0 on 32 bit x86 SMP
rc linux-image-extra-3.8.0-22-generic 3.8.0-22.33 i386 Linux kernel image for version 3.8.0 on 32 bit x86 SMP
ii linux-image-extra-3.8.0-23-generic 3.8.0-23.34 i386 Linux kernel image for version 3.8.0 on 32 bit x86 SMP
ii linux-image-extra-3.8.0-25-generic 3.8.0-25.37 i386 Linux kernel image for version 3.8.0 on 32 bit x86 SMP
ii linux-image-extra-3.8.0-32-generic 3.8.0-32.47 i386 Linux kernel image for version 3.8.0 on 32 bit x86 SMP
ii linux-image-generic 3.8.0.32.50 i386 Generic Linux kernel image
Ok, first of all, there is tons of scruff in your kernel list, purge them:
The problems seems to have different causes, from software to hardware, but some of them doesn't apply to you since you are able to boot other kernels. So, what to do?
While you use other kernels, remove and reinstall the both new kernel:
The first line will remove kernel packages in the local cache and make sure you have enough free space to install new kernels.
Now, if you see this block:
Then here the common "solutions" with their causes:
You attempted to fix the issue using
rootdelay=
, sadly that doesn't work in your case, since the problem could be elsewhere.If you are using a RAID (doubtful since other kernels boot) this could cause problems. Mooving the partition to a non-raid filesystem should do the trick. Or checking if
/etc/initramfs-tools/modules
has the correct modules then runningsudo update-initramfs -u
.While you use
(initramfs)
built-in shell, you could typeexit
and should boot too. Again, problems is elsewhere.Bad filesystems could cause this. Running
fsck
from a live system should help.If you remove
quiet splash
you could get even more details about what exactly fails. If you experience this issue, remove thequiet splash
from your grub script, that would really help.You might have simply forgotten to install
linux-image-extra-X.YY.Z-PP
for your kernel version, or the install is incomplete for some reason (rc
in output ofdpkg -l | grep linux-image
). The fierce thing is that/boot/initrd.img-X.YY.Z-PP
will get built in both cases, but for your hardware the extra modules inlinux-image-extra
might be absolutely necessary. In this case, you will have to interpret "Cannot find root device" as "Cannot find needed extra drivers or modules".This are some tips I collected here and there, if you experience the same problem, please use the 5 tip and give full output of the kernel messages.