freebsd-update 6.2-R -> 6.3-B1 rollback failed

Jan Henrik Sylvester me at janh.de
Wed Nov 14 12:39:42 PST 2007


I tried to rollback the freebsd-update 6.2-R -> 6.3-B1.

(The reason was to freebsd-update to 6.3-B2 with the possibility of 
doing a rollback to 6.2-R.)

It printed quite a few lines of

/libexec/ld-elf.so.1: grep: Undefined symbol "__sbmaskrune"

and

/libexec/ld-elf.so.1: sort: Undefined symbol "__sbmaskrune"

but finished with a 'done.' Thus I did a reboot.

It rebooted into 6.3-B1 and because of the missing symbol nothing but 
the stuff in /rescue works.

I guess it was my fault, because on some of my 6.2 machines I had a 
patch for libexec/rtld-elf/rtld.c adding the symbol _dlsym that was 
needed for linux-flashplugin-7 at some time. This was probably one of 
these machines that had a GENERIC/SMP kernel but modified elf loader.

Anyhow, if that really is the cause, IMHO the update should have 
complained about the incorrect file and not have the rollback fail. 
(6.3-B1 was running fine.)

Now, how do I get this machine running again? I tried to replace 
ld-elf.so.1 with a copy from a GENERIC 6.2-R, but this obviously cannot 
work, since the kernel booting is still 6.3-B1. I guess I need the file 
from that version, but I do not have another 6.3-B* here.

Could anybody send me ld-elf.so.1 from 6.3-B* via email? Or do I have it 
in some temporary directory from freebsd-update?

In case I get the machine to boot again, how should I proceed? Is the 
machine now a mixture of 6.2-R and 6.3-B1? Can I get it into a sane 
state without recompiling the kernel? (The machine is _really_ slow.)

If my modified 6.2-R version of ld-elf.so.1 was the cause of all this, 
freebsd-update should print a warning asking the user if really all of 
the kernel is GENERIC/SMP or better check for it. Otherwise, this really 
is a bug.

At least now I do know what /rescue is for...

Thanks,
Jan Henrik


More information about the freebsd-stable mailing list