
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에는 더 이상 정적으로 링크된 바이너리가 없습니다.