Bug#640872: Acknowledgement (libc6: upgrade fails to mv /lib64.eglibc-new to /lib64; leaves system unusable)

2011-09-08 Thread Austin Clements
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))

2011-09-08 Thread Austin Clements
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))

2011-09-08 Thread Sven Joachim
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