Ubuntu – Reboot during update, glibc error: libc.so.6: version ‘GLIBC_2.14’ not found


While upgrading from 11.10 to 12.04 the upgrade stalled because it said xscreensaver needed to be uninstalled. I tried to open a terminal but the system wouldn't respond. So I did a hard boot and now I can't get past the Ubuntu loading screen. When I got to the root screen I get a message:

mountall: /lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.14' not found (required by /lib/libpllibply.so.2

I don't really know what to do from this point on.

Best Answer

I had this problem today and solved it a few minutes ago.

Short answer:

  • Download Ubuntu's 12.04 live-cd
  • Boot it an "Try it"
  • Open terminal
  • Mount your broken partition
  • Copy the live cd's libc (version 15) into your partition
  • Fix your partition's libc.so.6 symlink
  • mount sysfs, bind and proc on your partition
  • chroot it
  • apt-get -f install
  • apt-get dist-upgrade

Here's a list of commands (copy/pasted, not sure I missed something, make sure you use the appropriate device instead of sda5, I'm using 64bit linux):

sudo -i
cd /mnt
mkdir sda5
mount /dev/sda5 sda5
cp /lib/x86_64-linux-gnu/libc-2.15.so sda5/lib/x86_64-linux-gnu/
cd sda5/lib/x86_64-linux-gnu
rm libc.so.6
ln -s libc-2.15.so libc.so.6
cd /mnt
mount -t sysfs sys sda5/sys
mount -o bind /dev sda5/dev
mount -t proc proc sda5/proc
chroot sda5
ls # make sure ls does not complain about libc!
apt-get -f install
apt-get dist-upgrade

The system told me there are 400 packages to upgrade and now it's upgrading... After it finishes I'll reboot and check if everything is fine.

If I need to do something else after the dist-upgrade I'll edit this post.

[EDIT]: The upgrade went fine. Then I rebooted and could log in (I use Xfce). Wireless was not working, but a single modprobe brcmsmac made it work. Now I'm running the system janitor to remove the old packages.