El equipo de rescate está listo, operación rescatar el balanceador caído y sustituir la instalación de Suse por otra sana procedente de otro balanceador gemelo. Ya hemos copiado el tar con los datos del balanceador sano al otro y comenzamos a operar. Movemos los directorios menos problemáticos primero para pasar a los más quejicosos quedando para el final /lib. Desde que se comenzó a planear la operación sabiamos que nos encontrariamos con problemas al mover este directorio, pero no queriamos sobreescribirlo con el otro para que no quede porquería, el trabajo ha de ser completamente limpio.
Una vez movido /lib es obvio que todos los binarios dinámicos dejarán de poder acceder a sus librerías y los comandos de ficheros como cp y mv lo son, pero esperabamos que indicandoles la ruta a dónde hemos movido los directorios sería suficiente. Pero no es así, al parecer el propio bash que tenemos en ejecución tiene problemas al lanzar comandos que no son internos al propio bash. La primera conclusión es que al lanzar /orig/bin/ls estamos intentando lanzar una nueva shell y esta no encuentra sus librerias. Tras darle unas cuantas vueltas y consultar con los compañeros nos encontramos con una posible opción suicida, si funciona recuperamos el sistema, sino lo perdemos definitivamente. La idea era utilizar exec para sustituir el bash en ejecución por una llamada al comando /orig/bin/mv indicandole la nueva ruta de las librerías con LD_LIBRARY_PATH.
Cuando estábamos a punto de jugarnosla a una baza, el cabo Ismaelita se comunicó con nosotros por radio-gaim, se le había ocurrido una idea, utilizar a pelo la llamada a la librería ld para que esta cargue el binario. La primera prueba resultó fallida, pero mezclandola con parte de la solución anterior, es decir indicandole el path de las antigüas librerias pudimos ejecutar un ls.
LD_LIBRARY_PATH=/orig/lib/ ./ld-2.3.2.so /orig/bin/ls
Yiiihaaaaaaaa, estámos salvados. A continuación movimos el directorio nuevo de librerías y ya teniamos un sistema usable. Volvemos a cargar el grub en el MBR del servidor y asunto arreglado. Chicos volvemos a casa, buen trabajo.