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.


Solution 1:

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.

Solution 2:

So if you run sudo dpkg --configure -a does it finish the upgrade? Another option to try if it will let you sudo apt-get install --fix-missing. To get into recovery mode....

Got this on the Ubuntu wiki here: https://wiki.ubuntu.com/RecoveryMode

Switch on your computer Wait until the BIOS finishes loading (you will probably see a logo of your computer manufacturer) The following messages will show up:

Grub loading stage1.5

Grub loading, please wait...

Press ESC to enter the menu Quickly press the Escape key, which will bring up a boot menu. (If you see the Ubuntu logo, you've Select the line ending with '(recovery mode)', probably the second line, something like:

Ubuntu, kernel 2.6.17-10-generic (recovery mode) Press enter and your machine will begin the boot process. After a few moments, your workstation should display a menu with a number of options. One of the options (you may need to scroll down to the bottom of the list) will be "Drop to root shell prompt".