
我將所有以 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
或在 Linux 上
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 上就不再有靜態連結的二進位了。