mv: não é possível abrir o arquivo de objeto compartilhado “libstdc ++. so.6”: aninhamento muito grande de links simbólicos

0

O erro pode ser um pouco diferente daquele do tópico - eu estava traduzindo do meu idioma nativo.

Depois que tudo falhou, tentei fazer como mjp apontado neste post: GLIBCXX_3. 4.20 não encontrado, como corrigir esse erro?

Mas, como resultado, todo comando-apt-get, mv, cp retorna o erro do título do tópico. Não posso voltar para a versão de backup do arquivo.

No momento, não consigo nem fazer login no Ubuntu. Eu fiquei lopped dentro da tela de login. Toda vez que tento fazer login, a tela fica preta e eu volto ao login. Eu só posso usar o comando via ctrl + alt + F3

O que devo fazer?

Responder por steeldriver (por favor, olhe para o comentário):

lrwxrwxrwx 1 root root 40 Jun 17 21:37 /usr/lib/x86_64-linux-gnu/libstdc++.so.6 -> /usr/lib/x86_64-linux-gnu/libstdc++.so.6

-rw-r--r-- 1 root root 979056 May 7 2016 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.19

lrwxrwrwx 1 root root 19 May 7 2016 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.old -> libstdc++.so.6.0.19
    
por Kokos34 17.06.2017 / 22:06

1 resposta

0

[Devo admitir que estou um pouco confuso por que utilitários básicos como mv ou cp iriam quebrar por causa de libstdc++.so.6 , mas supondo que essa seja a razão, aqui está o que eu tentaria]

Sua saída busybox ls indica que você conseguiu vincular recursivamente /usr/lib/x86_64-linux-gnu/libstdc++.so.6 a ela mesma. Felizmente, parece que você não excluiu ou substituiu a biblioteca /usr/lib/x86_64-linux-gnu/libstdc++.so.6.19 real. Então você deve ser capaz de recuperar recriando o link simbólico.

A pegadinha será se sudo ou ln ou ambos dependerem da biblioteca libstdc++ . (Presumivelmente, bash não, já que você é capaz de logar com um shell no terminal virtual Ctrl + Alt + F3 .)

Se sudo estiver corrompido, você ainda poderá inicializar em um shell de root a partir do modo de recuperação, como descrito em Como inicializo em um shell de root? . Você precisará então remontar o sistema de arquivos raiz no modo de leitura / gravação

mount -o remount,rw /

Depois disso, você pode tentar corrigir o link quebrado

ln -sf libstdc++.so.6.19 /usr/lib/x86_64-linux-gnu/libstdc++.so.6

(isso deve criar um symlink relativo que seja resolvido em relação ao caminho de destino /usr/lib/x86_64-linux-gnu/ , semelhante ao seu link .old ).

Assumindo que falha porque ln depende de libstdc++.so , você pode tentar novamente usando o executável busybox vinculado estaticamente, que possui um ln :

/bin/busybox ln -sf libstdc++.so.6.19 /usr/lib/x86_64-linux-gnu/libstdc++.so.6

Se isso funcionar, você pode exit o shell de root para prosseguir com a inicialização normal.

    
por steeldriver 18.06.2017 / 15:39