não é possível executar: muitos níveis de links simbólicos

0

Por engano, executei estes comandos:

sudo ln -sf bash /bin/sh 
sudo ln -sf bash /bin/bash

Quando reiniciei o servidor Linux no modo de recuperação, recebi esta mensagem:

init : Failed to spawn friendly-recovry pre-start process: unable to execute: Too many levels of symbolic links

E o Linux não funciona.

qualquer ajuda é muito apreciada

    
por Ellouze Anis 25.09.2014 / 17:57

1 resposta

2

Eu acho que você de alguma forma acabou com

sh -> bash
bash -> bash

Quando o sistema tentar executar um shell pela primeira vez, ele entrará em loop resolvendo bash , que é, de acordo com o symlink,
o mesmo que bash , que é o mesmo que bash , que é o mesmo que bash , que é o mesmo que bash ... até que a memória permita que isso acabe.

Para corrigir o problema, precisamos saber o que era /bin/sh , normalmente ele aponta para bash ou para dash . Qual distribuição Linux você usa?

Existem outros shells instalados normalmente, como dash ou zsh , mas como o sistema procura sh ao iniciar, não vejo como usar esses recursos sem ajuda externa.

Acho que você precisará inicializar um sistema ao vivo a partir de um CD ou conectar o disco rígido a outro computador; E a partir daí, monte o disco raiz e corrija o link.
Se o shell foi realmente excluído pela "força" em ls -sf , você precisa obter o binário do shell de algum lugar.

Poderia também trabalhar para vincular /bin/sh a um shell similar, não àquele para o qual ele estava apontando - (mas isso parece ser o que você estava fazendo por último).

O

sudo ln -sf bash /bin/bash

poderia ter excluído /bin/bash , mas quando tento algo semelhante, recebo um erro:

ln: bash and /bin/bash are the same file

Você tem certeza sobre os comandos? Em qual diretório você os executou?

    
por 25.09.2014 / 18:17