11

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.

4 Answers 4

8

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.

3
  • once I try to mount sda5, I get a response stating that is a swap file and cannot be mounted (?)
    – user57807
    Apr 28, 2012 at 16:02
  • @TurboWald sda5 was my root partition. You need to discover which one is your root partition. Try to mount sda1, then check its contents, then try to mount sda2 and check its contents, and so on. Your root partition should contains files like /lib, /usr, /bin, etc.
    – pzanoni
    Apr 28, 2012 at 18:06
  • I am seeing the same error while trying to upgrade to 13.04 and after copying the libc-2.17.so and creating a symlink I am seeing the following error ` error while loading shared libraries __vdso_time` Jul 14, 2013 at 23:24
1

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".

3
  • Where do I do that because I can't get into a terminal and nothing I type comes up on the other screens.
    – Curt
    Apr 27, 2012 at 0:19
  • can you still boot into recovery mode and does it give you a # (root) prompt?
    – Brett
    Apr 27, 2012 at 0:46
  • If you can get your hands on a live cd or usb of ubuntu I would recommend the answer that Andrew gave below.
    – Brett
    Apr 27, 2012 at 20:39
0

You can boot from a cd or usb then mount the file system chroot to the mount point and run sudo apt-get install -f --fix-missing.

  1. Boot from usb
  2. open terminal
  3. cd /mnt
  4. sudo mkdir /mnt/brokesystem
  5. sudo mount /dev/*sda1* /mnt/brokesystem * note /dev/sda1 may be something else /dev/...
  6. sudo chroot /mnt/brokesystem
  7. sudo apt-get install -f --fix-missing (you may be prompted to restart service and get errors that service is not able to be restarted, this is ok)
  8. When update is done reboot (remove alternate boot device cd/usb)
  9. Should load normally (it may take a little longer to boot the first time)
1
  • @Vipul Gupta You cannot chroot sda1 directly. You need to mount sda1. You need to create a directory best place would be /mnt, then sudo mkdir brokesystem , then sudo mount /dev/sda1 /mnt/brokesystem then continue from 6.
    – Andrew
    Apr 27, 2012 at 23:27
-1

See if you can boot off your 12.04 media and perform a CD upgrade of the system. (Assuming it still thinks it is 11.10 hopefully)

2
  • I bought the laptop from System76 so I don't have any boot CDs. I have since been able to get it to start in Recovery Mode but when I try I run the dpkg option it says: dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct the problem.
    – Curt
    Apr 26, 2012 at 22:52
  • @Curt Are you able to run the dpkg --configure -a ?
    – belacqua
    May 3, 2012 at 18:01

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .