Recuperando o ubuntu danificado

6

Situação: Um dia, meu disco rígido falhou e excluiu muitos arquivos aleatoriamente, consistindo em alguns arquivos do sistema operacional. O dano era grande o suficiente para tornar o sistema operacional incapaz de inicializar e até incapaz de fazer chroot.

Felizmente, eu tinha outro Ubuntu em outro disco e consegui recuperar chroot e, em seguida, a funcionalidade de inicialização e rede do SO danificado. Então inicializei o SO danificado e executei um script que reinstalou todos os pacotes instalados nele (com apt-get install <package> --reinstall ) não foi tão fácil quanto eu estou descrevendo, havia muitos pacotes que precisavam de atenção específica.

Depois disso, quase tudo está bem, exceto executar binários de 32 bits, como vinho e adb. Eu preciso de um especialista neste campo para me dizer o que devo fazer para recuperar a execução de binários de 32 bits.

Por exemplo, suponha que eu queira executar o vinho: Primeiro, vamos executá-lo em fish :

# wine
Failed to execute process '/usr/bin/wine'. Reason:
The file '/usr/bin/wine' does not exist or could not be executed.

Agora vamos executá-lo em bash :

# wine
bash: /usr/bin/wine: No such file or directory

Permite inserir o local completo:

# whereis wine
wine: /usr/bin/wine /usr/bin/X11/wine /usr/share/wine /usr/share/man/man1/wine.1.gz
# /usr/bin/wine
bash: /usr/bin/wine: No such file or directory

Vamos ver se o arquivo realmente existe:

# ls -l /usr/bin/wine
-rwxr-xr-x 1 root root 9748 Dec 18 05:11 /usr/bin/wine

O que ldd e file dizem:

# ldd /usr/bin/wine
    not a dynamic executable
# file /usr/bin/wine
/usr/bin/wine: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0xe4e2fb58bdbbbc2dedf7483825900ed35a6dc989, stripped

Como resolver isso?

SO danificado é o Ubuntu 13.10 amd64.

    
por Sassan 27.12.2013 / 14:18

3 respostas

1

Os resultados ldd são esperados, já que o "binário" é apenas um script:

$ file /usr/bin/wine
/usr/bin/wine: POSIX shell script, ASCII text executable
$ head /usr/bin/wine 
#!/bin/sh

set -e

wine=/usr/bin/wine32
if test "$(file -b -L "" | cut -d\  -f1)" = "PE32+" -o "$WINEARCH" = "win64"; then
    wine=/usr/bin/wine64
fi

if test -f $wine; then

Então, qual é a solução? Remova-os completamente e instale-os. Nós realmente não sabemos quanto dano existe, então remover e reinstalar é o mais seguro:

sudo apt-get autoremove --purge wine

O mesmo acontece com qualquer pacote que não funcione. Você pode verificar o pacote que corresponde ao binário usando dpkg -S :

➜  ~  dpkg -S /usr/bin/wine
wine: /usr/bin/wine
    
por Braiam 27.01.2014 / 14:04
0

Executar

sudo apt-get install libopenal1:i386

ou

sudo apt-get install --reinstall libopenal1:i386

Pelo menos isso deve fazer com que ldd se comporte bem. Não sei se isso resolverá os outros problemas. Se não, então eu iria apenas olhar para a saída ldd , e instalar / reinstalar os pacotes que contém essas bibliotecas.

por falconer 27.01.2014 / 15:31
0

Você pode usar o Rescatux para reparar sua máquina quebrada. Você pode acessá-lo usando o Unetbootin . Espero que isso possa resolver seu problema.

    
por Vishnu N K 30.01.2014 / 07:27