
Ich habe alle Dateien, die mit lib beginnen, von /../ in einen Ordner verschoben,
mv /../lib* /to/some/folder
danach kann ich es nicht mehr zurück verschieben.Es kommt als
-bash: /bin/mv: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
Auch für ls
es kommt als-bash: /bin/ls: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
Antwort1
Die Wiederherstellung busybox
hat bei Dir so geklappt wie Du busybox
es installiert hast.
busybox
ist eine statisch verknüpfte Binärdatei und dies hat in Ihrem Fall geholfen, aber es besteht keine Notwendigkeit, statisch verknüpfte Binärdateien zu verwenden, um diese Art von Defekten zu reparieren.
Sie könnten auch Folgendes tun:
LD_LIBRARY_PATH=/some/path/where/the/libs/are mv ....
Wenn Sie auch den dynamischen Runtime-Linker verschoben haben, müssen Sie den Runtime-Linker auch manuell aufrufen. Um zu verstehen, wie das funktioniert, rufen Sie Folgendes auf:
man ld.so.1
oder unter Linux
man ld.so
Das Ergebnis ist normalerweise eine Befehlszeile wie:
LD_LIBRARY_PATH=/path/to/libs /path/to/libs/ld.so.1 mv ....
Ersetzen Sie es unter Linux /path/to/libs/ld.so.1
durch /path/to/libs/ld-linux-x86-64.so.2
oder was auf Ihrem System tatsächlich verwendet wird.
Im Allgemeinen müssen Sie wissen, ob die Binärdatei, die Sie aufrufen möchten, eine 32-Bit- oder eine 64-Bit-Binärdatei ist, und den richtigen dynamischen Laufzeitlinker aufrufen.
Übrigens: Dies ist die Methode, die seit 2004 für Solaris dokumentiert ist und seit diesem Jahr gibt es unter Solaris keine statisch verknüpften Binärdateien mehr.