Bug#640872: Acknowledgement (libc6: upgrade fails to mv /lib64.eglibc-new to /lib64; leaves system unusable)
Here's a work-around for anyone who can't boot because of this bug.
Boot into GRUB and edit your kernel command line to add break=init.
This should drop you to your initramfs. Your root partition should be
mounted read-only on /root, which should allow you to verify that
lib64 is gone, but that you have a lib64.eglibc-new. You'll need to
remount /root read-write using
(initramfs) mount -o remount,rw DEVICE /root
where DEVICE is your root device. If you don't happen to remember
what your root device is,
(initramfs) mount -t proc proc /proc
(initramfs) cat /proc/mounts
In theory, you shouldn't have to specify DEVICE for a remount, but it
didn't work for me. Finally,
(initramfs) cd /root
(initramfs) ln -s lib64.eglibc-new lib64
After this you should be able to boot your system.
The presence of lib64.eglibc-new will cause the libc6 package to fail
to unpack. When my system was back up, I did
$ cp -ra lib64.eglibc-new lib64.tmp
$ ln -sfn lib64.tmp lib64
After which I could safely remove lib64.eglibc-new. I advise keeping
a root shell around while messing with this. If you lose lib64 again,
you can still run commands in it using something like
$ /lib64.tmp/ld-linux-x86-64.so.2 /bin/ls
Reply to: