mv: 공유 개체 파일 "libstdc++.so.6"을 열 수 없습니다: 기호 링크 중첩이 너무 큽니다.

mv: 공유 개체 파일 "libstdc++.so.6"을 열 수 없습니다: 기호 링크 중첩이 너무 큽니다.

오류는 주제와 약간 다를 수 있습니다. 모국어로 번역한 것입니다.

모든 것이 실패한 후, 나는 이 게시물에서 mjp가 지적한 대로 시도해 보았습니다. GLIBCXX_3.4.20을 찾을 수 없습니다. 이 오류를 해결하는 방법은 무엇입니까?

그러나 결과적으로 모든 명령 apt-get, mv, cp는 주제 제목에서 오류를 반환합니다. 파일의 백업 버전으로 돌아갈 수 없습니다.

현재 우분투에 로그인조차 할 수 없습니다. 로그인 화면에서 멈췄습니다. 로그인을 시도할 때마다 화면이 검게 변하고 다시 로그인으로 돌아옵니다. Ctrl+Alt+F3을 통해서만 명령을 사용할 수 있습니다.

어떻게 해야 하나요?

steeldriver에 대한 답변(댓글을 확인하세요):

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

답변1

mv[왜 기본 유틸리티가 와 같은 또는 cp로 인해 중단되는지 의아해한다는 것을 인정해야 합니다 libstdc++.so.6. 그러나 그것이 이유라고 가정하면 다음과 같이 시도할 것입니다.]

출력 결과는 자신에게 busybox ls재귀적으로 연결되었음을 나타냅니다 . /usr/lib/x86_64-linux-gnu/libstdc++.so.6다행히 실제 라이브러리를 삭제하거나 덮어쓰지 않은 것으로 보입니다 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.19. 따라서 심볼릭 링크를 다시 생성하여 복구할 수 있어야 합니다.

sudo문제는 둘 중 하나 또는 ln둘 다 라이브러리에 의존하는 경우입니다 libstdc++. (아마도 그렇지 않을 것입니다. + + 가상 터미널 bash에서 쉘로 로그인할 수 있기 때문입니다 .)CtrlAltF3

깨진 경우 sudo에도 설명된 대로 복구 모드에서 루트 셸로 부팅할 수 있습니다.루트 쉘로 어떻게 부팅합니까?. 그런 다음 읽기-쓰기 모드에서 루트 파일 시스템을 다시 마운트해야 합니다.

mount -o remount,rw /

그 후에는 깨진 링크를 수정해 볼 수 있습니다.

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

(이렇게 하면상대 심볼릭 링크/usr/lib/x86_64-linux-gnu/이는 링크 와 유사하게 대상 경로를 기준으로 해결됩니다 .old.

ln에 의존하기 때문에 실패한다고 가정하면 다음 이 내장된 libstdc++.so정적으로 링크된 실행 파일을 사용하여 다시 시도할 수 있습니다 .busyboxln

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

작동한다면 exit루트 셸에서 일반 부팅을 진행할 수 있습니다.

관련 정보