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 -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#640872: Info received (Bug#640872: Acknowledgement (libc6: upgrade fails to mv /lib64.eglibc-new to /lib64; leaves system unusable))
I probably don't understand all of the nuances of that code, but one potential fix is simply to pass a benign argument to mv. Something like if ! $ldfile /bin/mv --version /dev/null 2/dev/null; then ... Alternatively, it may be more robust for the script to simply create a file to mv (for example, if it's possible to have a /bin/mv that doesn't accept --version). -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#640872: Info received (Bug#640872: Acknowledgement (libc6: upgrade fails to mv /lib64.eglibc-new to /lib64; leaves system unusable))
On 2011-09-08 08:35 +0200, Austin Clements wrote: I probably don't understand all of the nuances of that code, but one potential fix is simply to pass a benign argument to mv. Something like if ! $ldfile /bin/mv --version /dev/null 2/dev/null; then ... Alternatively, it may be more robust for the script to simply create a file to mv (for example, if it's possible to have a /bin/mv that doesn't accept --version). That is possible, for instance if you divert it and replace it with a symlink to busybox. The original code in 2.13-17 checked /bin/true instead of /bin/mv, and somebody who replaced /bin/true with a statically linked binary complained (#640753). Sven -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org