Nenhum dos programas linux funciona, exceto 'cd'

3

Antes de declarar a pergunta, aqui está o que eu fiz e observei antes do problema começar:

  1. Em um fedora 18 Xfce, eu tentei compilar o kernel 3.6.10 com um driver de cdv,
  2. Depois de várias tentativas, finalmente foi compilado sem erro, então fui em frente com make modules_install e make install .
  3. Então eu tive que instalar alguns binários de algumas tarballs. Tudo parecia bem até este momento. Eu poderia usar os comandos firefox , vi no terminal, yum , rpm etc.
  4. Eu instalei binários de poucos tarballs usando tar xvf e alguns arquivos desses tarballs foram movidos para diretórios como /usr , /usr/lib . Mesmo depois desse ponto, lembro-me de usar vi e rpm .
  5. Então finalmente instalei o último tarball usando o mesmo tar xvf e ele transferiu alguns arquivos para /lib , /lib/firmware etc.

Após o quinto passo acima, sem fazer mais nada, tentei abrir um arquivo usando o comando vi e recebi o seguinte erro:

bash: /usr/bin/vi /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

Eu tentei abrir o Firefox para solução, mas ele não foi aberto. Disparou mais alguns comandos do terminal, mas todos os comandos deram erro semelhante. Verifiquei algumas soluções que sugerem a instalação da glibc, mas nem yum funciona nem rpm . O que pode ter dado errado? Como pode ser corrigido agora quando nenhum comando, exceto cd , está funcionando, nem mesmo ls ?

Enquanto isso, o único outro problema que aconteceu foi que eu tinha que matar o Firefox em algum lugar, já que a máquina não estava respondendo muito bem e algum plugin estava consumindo recursos.

    
por Rahul 14.01.2014 / 23:26

4 respostas

5

/lib/ld-linux.so.2 é o carregador dinâmico para executáveis vinculados dinamicamente, que é quase todo deles. Especificamente, /lib/ld-linux.so.2 é o caminho padrão para o carregador dinâmico em sistemas i386 (32 bits). Este arquivo deve existir e ser válido (pode ser um link simbólico), caso contrário, quase nenhum programa poderá ser iniciado (programas que já estão em execução, como o shell, não são afetados).

Tente recriar o carregador dinâmico. Espero que você já o tenha em algum lugar, mas em um local errado. Procure por isso. Observe que você pode usar echo * para listar o conteúdo do diretório atual.

Se você encontrar o carregador dinâmico em algum lugar, poderá usá-lo para criar um link simbólico no local correto. Digamos que você ache que /lib32/ld-linux.so.2 parece válido, então você pode executar

/lib32/ld-linux.so.2 ln -s /lib32/ld-linux.so.2 /lib/ld-linux.so.2

Os diretórios plausíveis são /lib , /lib32 , /usr/lib , /usr/lib32 . Nomes plausíveis têm o formato ld-*.so .

Seu sistema ainda pode ser quebrado de outras maneiras, mas pelo menos você poderá continuar. Observe que você nunca deve copiar arquivos manualmente dentro de /lib ou /usr , exceto em /lib/modules e /usr/local .

    
por 15.01.2014 / 01:14
5

Depende muito do que exatamente você descompactou no seu sistema. Geralmente, usar tar para instalar coisas em um sistema com gerenciamento de pacotes é uma Bad Idea (TM). Meu palpite seria você usou um tarball para uma distribuição diferente ou não criou corretamente alguns links simbólicos. Em outras palavras, suponho que a raiz do problema seja a /usr - / merge . Mas muitas outras coisas poderiam ter corrido mal.

    
por 15.01.2014 / 00:04
1

O motivo cd funciona simplesmente porque é um comando interno de bash e não um programa externo. Outros comandos internos, como echo , também devem funcionar.

Isso, pelo menos, explica por que isso funciona, mas não resolve o problema de ter destruído sua configuração de comando externo. Para isso eu iria para restaurar a partir do backup após a inicialização da partição de resgate (ou CD, se você não tem isso).

    
por 15.01.2014 / 09:33
0

Quando você compilou, você incluiu o formato de arquivo elf e out? E compat32? Quando você compila, todas as opções "padrão" do kernel padrão são incluídas melhor maneira é

cd /usr/src/linux(must point to your new sources)
zcat /proc/config.gz > .config
make clean
make oldconfig
#answer only if sure and use a lot the ?
make,make install
etc etc

Claro, antes de compilar o kernel, um backup não é uma má idéia Desculpe meu inglês um pouco ruim

    
por 07.05.2015 / 01:12