Excluído acidentalmente /usr/lib/*.so.*

8

Enquanto eu estava instalando o MRTG, por engano eu deletei /usr/lib/*.so.* e /usr/lib/*.so

Agora não consigo inicializar meu sistema agora, ele fica preso na tela inicial e, quando pressiono o botão PAGEDOWN, vejo várias coisas que não estão sendo carregadas.

No entanto, o DHCP e o WebMin estão em execução e do Webmin eu posso ver os logs do sistema que informam que os cups não estão sendo carregados porque libpipeline.so.1 está faltando e vários outros.

Meu computador está executando 11.04

    
por Ahsan 08.06.2011 / 11:27

5 respostas

5

Como você excluiu apenas /usr/lib/* e não /lib/* , provavelmente poderá recuperar. Eu acho que todos os programas que você precisa criticamente para recuperar seu sistema só usam bibliotecas de /usr/lib .

Inicialize em um prompt de login de texto. Se a inicialização normal não fornecer um prompt login: no modo de texto, inicialize apenas com serviços mínimos. Pressione e segure a tecla Shift quando o seu computador começar a mostrar o prompt do Grub; você precisa pressionar a tecla após o BIOS ter inicializado o teclado, mas antes do Grub ser carregado, o que em algumas máquinas deixa apenas uma pequena janela de tempo e pode exigir várias tentativas. No prompt do Grub, pressione Down para realçar a entrada de inicialização no modo de usuário único e inicializar isso.

Depois de ter uma linha de comando, execute apt-get --reinstall install PACKAGE1 PACKAGE2 … para reinstalar os pacotes que possuem arquivos em /usr/lib . Você pode executar este snippet de shell para obter a lista de nomes de pacotes a serem reinstalados:

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

Alguns scripts de instalação de pacotes podem exigir que bibliotecas de outros pacotes estejam presentes, portanto, talvez seja necessário executar as reinstalações em uma ordem específica. Se você achar que os scripts de instalação de um pacote estão tentando usar um programa específico, você pode descobrir quais bibliotecas este programa precisa com ldd . Por exemplo, isso indica que Python está faltando três bibliotecas que você precisa 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.1 revela que esse arquivo é proveniente de zlib1g e assim por diante.

Se você achar que apt-get não pode baixar os pacotes, primeiro faça o download de alguns pacotes importantes de um CD ao vivo. zlib1g e libssl0.9.8 são dois pacotes que você provavelmente precisará no começo.

    
por Gilles 09.06.2011 / 00:52
10

Você pode passar uma semana procurando tudo o que está faltando ou pode passar uma hora fazendo uma reinstalação do CD e recuperando todos os seus pacotes antigos.

Sugiro que você inicialize em um ambiente do LiveCD primeiro para obter os backups das coisas primeiro (copie-os para uma unidade USB externa ou outra partição) e, em seguida, inicie novamente.

    
por Oli 08.06.2011 / 12:49
3

/usr/lib continha as bibliotecas compartilhadas de, francamente, tudo exceto software crítico para inicialização (é isso que entra em /lib/ e coisas que você não instalou através do gerenciador de pacotes (geralmente /usr/local/lib ).

Versão curta, você acabou de limpar seu sistema.

Agora, se você ainda tem /var/cache/apt/archives cheio de coisas, com um pouco de magicka judiciosa você pode salvar a situação.

Verifique se ainda contém arquivos dos seguintes pacotes:

libxapian
libsigc++
apt
libcwidget
libsqlite
libboost-iostreams 

Esses pacotes contêm bibliotecas em /usr/lib que aptitude exige que funcionem Se você puder encontrar os pacotes em /var/cache/apt/archives , poderá reinstalá-los manualmente com dpkg -i <packagename e, uma vez instalados, o aptitude poderá para executar.

Em seguida, executando o comando aptitude reinstall ~i , você forçará uma reinstalação de todos os pacotes que já foram instalados, o que, esperamos, deve restaurar seu sistema. Eu não posso fazer garantias absolutas porque o dano que você fez é realmente espetacular neste caso ...

    
por Shadur 08.06.2011 / 11:52
1

Eu ficaria tentado a arrancar a partir de um live-CD Ubuntu 11.04 e tentar copiar os arquivos perdidos de volta.

Antes de fazer qualquer coisa, verifique se você tem bons backups de qualquer arquivo de dados gerado pelo usuário. Se não, inicializo um CD ao vivo para montar o HDD somente para leitura e fazer backups o mais rápido possível.

    
por RedGrittyBrick 08.06.2011 / 11:58
0

Quando fiz algo semelhante, tive a sorte de perceber antes de tentar reiniciar o sistema. Neste ponto, o seu sistema continuará funcionando. Minha abordagem foi criar uma caixa virtual com a mesma versão do sistema operacional e copiar os arquivos ausentes disso. Se você permitir o acesso ssh ao seu guest virtualbox você pode usar o rsync de um terminal no seu sistema principal para sugar apenas os arquivos e links que estão faltando. No meu caso, havia poucos arquivos suficientes faltando que era mais fácil / seguro copiar manualmente usando scp, então o seguinte não foi testado (!)

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

-a é o modo de arquivo (recursivo, copia links simbólicos e atributos, incluindo carimbos de data / hora, permissões, etc.)

-u ignora se a cópia de destino é mais recente

-v é detalhado

    
por Kim SJ 27.02.2014 / 20:55

Tags