터미널 명령이 작동하지 않습니다

터미널 명령이 작동하지 않습니다

lib로 시작하는 모든 파일을 /../에서 다음과 같이 일부 폴더로 옮겼습니다. mv /../lib* /to/some/folder

그 후에는 다시 되돌릴 수 없습니다. -bash: /bin/mv: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory

심지어 ls그것은 다음과 같이 온다.-bash: /bin/ls: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory

답변1

busybox귀하가 설치한 대로 복원을 사용하여 귀하의 경우에 작동했습니다 busybox.

busybox는 정적으로 연결된 바이너리이며 이는 귀하의 경우에 도움이 되지만 이러한 종류의 결함을 복구하기 위해 정적으로 연결된 바이너리를 사용할 필요는 없습니다.

다음과 같이 할 수도 있습니다.

LD_LIBRARY_PATH=/some/path/where/the/libs/are mv ....

동적 런타임 링커도 이동한 경우 런타임 링커도 수동으로 호출해야 합니다. 이것이 어떻게 작동하는지 이해하려면 다음으로 전화하십시오.

man ld.so.1

아니면 리눅스에서

man ld.so

일반적으로 다음과 같은 명령줄이 생성됩니다.

LD_LIBRARY_PATH=/path/to/libs /path/to/libs/ld.so.1  mv ....

Linux에서는 시스템에서 실제로 사용되는 것으로 /path/to/libs/ld.so.1바꾸 십시오./path/to/libs/ld-linux-x86-64.so.2

일반적으로 호출하려는 바이너리가 32비트인지 64비트 바이너리인지 알아야 하고 올바른 동적 런타임 링커를 호출해야 합니다.

참고: 이것은 2004년부터 Solaris에 대해 문서화된 방법이며 그 해 이후로 Solaris에는 더 이상 정적으로 링크된 바이너리가 없습니다.

관련 정보