Borrado accidentalmente /usr/lib/*.so.*

9

Mientras instalaba MRTG, por error he eliminado /usr/lib/*.so.*y/usr/lib/*.so

Ahora no puedo iniciar mi sistema, se atasca en la pantalla de inicio y cuando presiono el botón PAGEDOWN puedo ver que hay varias cosas que no se pueden cargar.

Sin embargo, DHCP y WebMin se están ejecutando y desde Webmin puedo ver los registros del sistema que me dicen que cups no se está cargando porque libpipeline.so.1falta y varios otros.

Mi computadora está ejecutando 11.04

Ahsan
fuente
1
Cross publicado en Unix y Linux
Marco Ceppi
use Ask Ubuntu para preguntas específicas de Ubuntu. y no cruce la publicación. Si no está seguro de si es específico de Ubuntu, pregunte aquí primero, y migraremos si es específico de Ubuntu.
2
también un consejo para el futuro ... si supieras que hiciste algo tan malo antes de reiniciar ... no reinicies. deje el sistema en funcionamiento y comience las reparaciones de inmediato. Me he recuperado /biny /etcde esa manera en el pasado

Respuestas:

5

Como solo has eliminado /usr/lib/*y no /lib/*, probablemente puedas recuperarte. Creo que todos los programas que necesita de manera crítica para recuperar su sistema solo usan bibliotecas /usr/lib.

Arrancar en un mensaje de inicio de sesión de texto. Si el arranque normal no le da un login:mensaje en modo texto, arranque solo con los servicios mínimos. Mantenga presionado Shiftcuando su computadora comience a mostrar el mensaje de Grub; debe presionar la tecla después de que el BIOS haya inicializado el teclado pero antes de que se cargue Grub, que en algunas máquinas deja solo un pequeño intervalo de tiempo y puede requerir varios intentos. Cuando se le solicite Grub, presione Downpara resaltar la entrada de inicio en modo de usuario único e inicie eso.

Una vez que tenga una línea de comando, ejecute apt-get --reinstall install PACKAGE1 PACKAGE2 …para reinstalar los paquetes que tienen archivos /usr/lib. Puede ejecutar este fragmento de shell para obtener la lista de nombres de paquetes para reinstalar:

egrep -l '/usr/lib/[^/]*\.so\.' /var/lib/dpkg/info/a*.list |
sed -e 's!^/var/lib/dpkg/info/!!' -e 's!\.list$!!'

Algunos scripts de instalación de paquetes pueden requerir que estén presentes bibliotecas de otros paquetes, por lo que es posible que deba ejecutar las reinstalaciones en un orden particular. Si encuentra que los scripts de instalación de un paquete intentan usar un programa en particular, puede averiguar con qué bibliotecas necesita este programa ldd. Por ejemplo, esto indica que a python le faltan tres bibliotecas que necesita reinstalar:

$ ldd /usr/bin/python | grep 'not found'
    libssl.so.0.9.8 => not found
    libcrypto.so.0.9.8 => not found
    libz.so.1 => not found

dpkg -S /usr/lib/libz.so.1revela que este archivo proviene zlib1g, y así sucesivamente.

Si encuentra que apt-getno puede descargar paquetes, primero descargue algunos paquetes clave de un CD en vivo. zlib1gy libssl0.9.8son dos paquetes que es muy probable que necesites desde el principio.

Gilles 'SO- deja de ser malvado'
fuente
10

Puede pasar una semana buscando todo lo que falta o puede pasar una hora simplemente reinstalando desde el CD y recuperando todos sus paquetes anteriores.

Le sugiero que inicie en un entorno LiveCD primero para obtener copias de seguridad de las cosas primero (cópielas en una unidad USB externa u otra partición) y luego comience nuevamente.

Oli
fuente
2
Exactamente, si no reinstalas todo, puedes esperar que surjan fallas extrañas, fallas, etc., durante meses después.
JanC
3

/usr/libcontenía las bibliotecas compartidas de, francamente, todo excepto el software crítico para el inicio (eso es lo que entra /lib/y cosas que no instaló a través del administrador de paquetes (generalmente /usr/local/lib).

Versión corta, acabas de limpiar tu sistema.

Ahora, si todavía tienes /var/cache/apt/archivesmuchas cosas, con un poco de magia juiciosa podrías salvar la situación.

Compruebe si aún contiene archivos de los siguientes paquetes:

libxapian
libsigc++
apt
libcwidget
libsqlite
libboost-iostreams 

Esos paquetes contienen bibliotecas /usr/libque aptituderequieren trabajar. Si puede encontrar los paquetes /var/cache/apt/archives, puede reinstalarlos manualmente y dpkg -i <packagename, una vez que estén todos instalados, aptitude debería poder ejecutarse.

Luego, al ejecutar el comando aptitude reinstall ~i, forzará la reinstalación de cada paquete que ya estaba instalado, lo que con suerte debería restaurar su sistema. No puedo hacer garantías absolutas porque el daño que hiciste es realmente espectacular en este caso ...

Shadur
fuente
1

Estaría tentado a arrancar desde un CD en vivo de Ubuntu 11.04 e intentar copiar los archivos que faltan.

Antes de hacer nada, verifique que tenga buenas copias de seguridad de los archivos de datos generados por el usuario. Si no, arrancaría un CD en vivo, montaría el HDD de solo lectura y realizaría copias de seguridad lo antes posible.

RedGrittyBrick
fuente
0

Cuando hice algo similar, tuve la suerte de darme cuenta antes de intentar reiniciar. En este punto, su sistema seguirá funcionando principalmente. Mi enfoque fue crear una caja virtual con la misma versión del sistema operativo y copiar los archivos que faltan. si permite el acceso ssh a su invitado de virtualbox, puede usar rsync desde una terminal en su sistema principal para absorber solo los archivos y enlaces que faltan. En mi caso, faltaban suficientes archivos que fueran más fáciles / seguros de copiar manualmente usando scp, por lo que no se ha probado lo siguiente (!)

sudo rsync -avu user@guestVB:/usr/lib /usr/lib

-a es el modo de archivo (recursivo, copia enlaces simbólicos y atributos que incluyen marcas de tiempo, permisos, etc.)

-u omite si la copia de destino es más reciente

-v es detallado

Kim SJ
fuente