Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Upon trying to upgrade from 10.10 to 11.04 all seemed to go well until the restart. This error message is what comes up:

Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

How do we fix that?

share|improve this question
Your troubles might having nothing to do with your main system, but rather with your install media (USB stick)... ➪ see here: – Frank N Dec 4 '15 at 18:00
up vote 18 down vote accepted

You are missing the initramfs for that kernel. Choose another kernel from the grub menu, or run update-initramfs -u -k version to generate the initrd for version then update-grub.

share|improve this answer
poor answer.... – user204653 Dec 7 '13 at 9:58
what if the kernel panic is being shown when selecting the unique kernel option that exists for that OS (in a multi-boot scenario), how does one go to launch update-initramfs? – knocte Jan 29 '14 at 9:04
@Dew, poor comment... – psusi Jan 29 '14 at 14:06
@knocte, See Tomeu Roig's answer. – psusi Jan 29 '14 at 14:07
It looks like poor answer but it's the truth! – user3215 May 2 '14 at 16:56

Start with a livecd, open a a terminal

sudo fdisk -l
sudo mount /dev/sdax /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /dev/pts /mnt/dev/pts
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt 

and now you can make update-initramfs and update-grub without errors

update-initramfs -u -k 2.6.38-8-generic (or your version)

And reboot your system

share|improve this answer
I have added sudo mount --bind /dev/pts /mnt/dev/pts and sudo mount --bind /sys /mnt/sys in my edit; without this, update-grub2 complained. – Hbf Nov 8 '12 at 15:51
how can I found out the exact version? – knocte Jan 29 '14 at 9:05
None of the mount points exist beyond the first one /dev/sdax if you're using EFI. – Paul Gregoire Jul 28 '14 at 14:36
@knocte try ls /mnt/boot and look for the latest kernel version. Or if you want to do it properly, read the menuentry 'Ubuntu' from /mnt/boot/grub/grub.cfg – Ciro Santilli 巴拿馬文件 六四事件 法轮功 Oct 1 '15 at 7:10
Worked on Ubuntu 14.04! The initrd was missing from /boot. The question is: how is it possible that the file simply disappeared? I did nothing that seemed dangerous. – Ciro Santilli 巴拿馬文件 六四事件 法轮功 Oct 1 '15 at 7:11

In my situation the problem was that /boot was at 100% capacity, so the last 2 kernel updates had not completed successfully, hence on reboot when GRUB2 selected the latest Kernel, it failed.

I resolved the issue by booting into the oldest kernel installed, and removing some unused kernels using aptitude. By using aptitude, after the uninstall had happened, dpkg automatically tried to configure the broken packages, and this time succeeded.

share|improve this answer
This was the closest to my solution; just running dpkg --configure -a was enough to trigger the update-initramfs hook, and fix the broken kernel. – Symmetric May 11 '13 at 19:44
You mean you had a separate /boot partition is that it? – Ciro Santilli 巴拿馬文件 六四事件 法轮功 Oct 1 '15 at 7:00
It was a server set up prior to my arrival, and it was configured with /boot on it's own partition and unattended-upgrades – sheepeatingtaz Oct 1 '15 at 14:24
You can use sudo apt-get autoremove to remove old kernels in case your running out of space on /boot. – Florian Brucker Jul 21 at 5:42

In addition to Tomeu's instructions, before chroot I needed to:

sudo mount --bind /dev /mnt/dev

Additionally, after the chroot:

cp -r /usr/lib/i386-linux-gnu/pango /usr/lib/

(Got this from here.)

share|improve this answer
Tomeu already mentioned mounting /dev on /mnt/dev. – Lekensteyn Oct 16 '11 at 8:59

You can also boot the server in rescue mode, and reinstall only the grub

share|improve this answer

I got this problem due to my /boot partition was full so my kernel updates had failed. I managed to fix this by booting from an old kernel in the GRUB menu.

When managed to boot I began purging old kernels, but I had manage to get some dependency issues so first I had to uninstall linux-server package

apt-get remove linux-server
apt-get update
apt-get -f install
apt-get upgrade

Then I rebooted and everything was working fine!

share|improve this answer

protected by Community Sep 22 '15 at 11:24

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.